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ở M
Trang 1Giờ ô 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 HexASCII 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
Trang 2má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 :
Trang 3Okie, 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
Trang 4phả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 :
Trang 5Double-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 :
Trang 6ImportREC 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 :
Trang 78A3000 – 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 :