Cracker Handbook 1.0 part 366 ppt

7 81 1
Cracker Handbook 1.0 part 366 ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

Giờ ô dưới dùng, New Base, ta sẽ điền gì đây? Như đã giới thiệu ở phần đầu, các bạn có thể chọn section .adata vì size nó dư sức chứa phần IAT này . Nhưng kì này, chúng ta phá lệ, đi tìm những thứ gọn gàng hơn .Chuyển qua Olly, mở Memory Map : Ta thấy phần tô vàng chính là các section sẽ bỏ đi sau khi unpack DLL. Xem lại size của phần chứa IAT chỉ là 3DC (có nhiều khoảng trống vô nghĩa ở giữa), tức size thực của nó còn nhỏ hơn 3DC sau khi redirect. Còn section .reloc có size 3000, tricky nghi nó còn khá nhiều khoảng trống, Double Click vào nó thử xem (chọn HexASCII 16 Bytes) : Kéo xuống cho tới khi thấy khoảng trống : Còn rất nhiều khoảng trống tính cho tới cuối section này. Và dĩ nhiên nó lớn hơn 3DC. Tricky chọn địa chỉ bắt đầu để redirect IAT là tại 8A2D60. Nhớ là trên máy các bạn, các offset nãy giờ sẽ khác đấy nhé. Quay lại ArmInline, điền New Base vừa chọn được vào : Có thể nhấn Rebase IAT được rồi .Redirect ngon lành : Close ArmInline đi, quay lại phần Dump của section .reloc hồi nãy, ta thấy các Byte của IAT đã được redirect vào : Okie, mọi việc đều ngon lành, ta mở LordPE lên và dump đi các bạn .Chọn process là loaddll.exe và phần module ở dưới, chọn UKHook40.dll (tương tự cách chọn ở ArmInline). Click phải -Dump full tại module này . Save file. (vẫn giữ nguyên Olly nhé) V- Rebuild Import: Mở ImportREC lên .Chọn trong list process loaddll.exe : Sau đó Click nút Pick DLL : Ta thấy lúc này ImageBase trong memory của UKHook40.dll là 870000. Nhưng sau khi OK thì lại là : ImageBase = 10000000. Rất đơn giản, đây là ImageBase ban đầu của file này. ImportREC đã lấy thông tin này từ PE Header của file nằm trên disk chứ ko phải của module trong memory, do đó khi tính toán RVA để Fix Import, nó dễ bị khùng và hay báo lỗi. Thường các bạn cũng hay gặp rắc rối tại đây đúng ko ? Okie ,ta mở Option ImportREC lên : Tại chỗ tô đỏ, các bạn uncheck đi. Nếu ta check ở đó, ImportREC luôn lấy thông tin từ PE header trên disk và sẽ tính toán sai. Ta chỉ check ở đó khi unpack file .exe .Vì sao ? Vì .exe thường được load vào memory đúng với ImageBase ban đầu của nó, còn DLL thì ko. OK, giờ ta Pick DLL lại nào : Giờ lại tới thông báo này. Dễ hiểu thôi, khi unpack file .exe , ta check ở Option trên và nó luôn lấy thông tin từ PE Header của file trên disc, còn PE Header trong memory lúc này đã bị Armadillo hủy đi khi ta tới OEP. Do đó ImportREC ko lấy được ImageBase nữa , giờ ta phải load file UKHook40.dll vào một Olly khác , mở memory map , chọn PE Header còn nguyên xi : Double-Click vào nó, tô hết các byte của section này, click phải  Binary Copy : Close Olly mới này đi, quay lại Olly cũ , Mở memory map, chọn section tại 870000 ,tô hết section này và Click phải Binary paste vào .PE header đã quay lại : Những điều nói trên rất quen thuộc với các bạn từng coi các tut đầu của cụ hacnho. Giờ chuyển qua ImportREC ,Pick DLL lần nữa: Điền OEP = 8807E9 – 870000 = 107E9.Nhấn IAT Autostart , rồi Get Import, nó lấy ngon lành : Giờ khoan Fix Dump vội. ta để ý chỗ này : ImportREC sẽ add thêm 1 section . mackt mới vào file Dump nếu ta check Add New section ở đây . Section do ImportREC add vào thuờng có size 4000, dư sức chứa phần Import sau khi fix và cả phần IAT mà ArmInline redirect (nếu ta có check Create New IAT ). Nhưng thật sự ta ko cần check Option này . Giờ để ý thấy size mà ImportREC cần để fix cho file dump là AC4. Ta quay qua memory map trong Olly, chọn lại section .reloc (từ đầu đến giờ, Olly này ko hề Close nhé): Double-Click vào nó. Lúc nãy ta đã cho ArmInline redirect IAT vào phần trống của section này, ta tiếp tục kéo xuống tìm phần còn trống : Ở đây chọn 8A3000 cho chẵn . Từ đây đến cuối section, size vẫn lớn hơn AC4 nên ta có thể lấy nó làm nơi “đẻ trứng vàng “ cho ImportREC. Quay lại ImportREC điền vào : 8A3000 – ImageBase :870000 = 33000, đúng ko nào ? Okie, giờ Fix Dump, chọn file đã dump khi nãy , Save ngon lành .Close hết đi (kể cả Olly). VI- Fix ImageBase & Relocation : . : Ta thấy lúc này ImageBase trong memory của UKHook 40. dll là 8 700 00. Nhưng sau khi OK thì lại là : ImageBase = 10 000 000 . Rất đơn giản, đây là ImageBase ban đầu của file này. ImportREC. 8A 300 0 cho chẵn . Từ đây đến cuối section, size vẫn lớn hơn AC4 nên ta có thể lấy nó làm nơi “đẻ trứng vàng “ cho ImportREC. Quay lại ImportREC điền vào : 8A 300 0 – ImageBase :8 700 00. Điền OEP = 8 807 E9 – 8 700 00 = 10 7E9.Nhấn IAT Autostart , rồi Get Import, nó lấy ngon lành : Giờ khoan Fix Dump vội. ta để ý chỗ này : ImportREC sẽ add thêm 1 section . mackt

Ngày đăng: 03/07/2014, 18:20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan