Khi Mole unpack code xong thì ta sẽ Break tại câu lệnh CALL EAX này trước khi nó gọi tới OEP .Và đây cũng chính là nơi bắt đầu để Patch Inline nếu bạn thích.. Qua tut của MaDMAn_H3rCuL3s
Trang 1Tiếp tục Enter vào nó, tới đây :
Tại chỗ khoanh vùng ,ta set một BP lên nó (F2) Khi Mole unpack code xong thì
ta sẽ Break tại câu lệnh CALL EAX này trước khi nó gọi tới OEP Và đây cũng chính là nơi bắt đầu để Patch Inline nếu bạn thích
Qua tut của MaDMAn_H3rCuL3s bên ARTeam thì Mole 2.5x sẽ Extract ra 2 Module trong quá trình unpack code Và ở 2.6 cũng thế Ta dùng hàm CreateFileA
để tóm các Module này Set bp CreateFileA đi nào:
Shift-F9 lần đầu Break, ngó xuống cửa sổ STACK :
Vẫn chưa phải lúc Mole extract ra Module ,tiếp tục Shift-F9 Break :
Trang 2Thế là ta lại phải Shift-F9 Break Vẫn chưa phải , và thêm 1 lần Shift-F9 Break nữa :
Àh há ,đây là lúc Mole chuẩn bị extract Module thứ nhất vào thư mục TEMP đây .Click phải lên dòng FileName và Follow In Dump nó:
Nhìn qua cửa sổ dump là các Byte của Name file đã bị mã hóa:
Từ đây ta kéo lên trên cho đến khi thấy :
Vậy list các file mà Mole có thể sẽ Extract là :
- msvcp60.dll
- MSkinCore.dll
- mbox2_bootupltdemo
- mbox2_bootupdbgltdemo
- mbox2_blacklist.txt
Trang 3Ở các bản trước ,khi extract Module đầu tiên ra ,ta dễ dàng tìm ra Name file là msvcp60.dll ,tuy nhiên ở đây do các Byte bị ghi đè nên ta ko thấy được tên file trước khi mã hóa :
Không sao ,theo thứ tự quen thuộc mà Mole hay làm, msvcp60.dll vẫn là module đầu tiên được extract ra Ta quay lại dòng Follow In Dump khi nãy , Edit name file lại thành : (Chọn Binary Edit hoặc nhấn Space Bar, hoặc Ctrl-E)
Giờ ta mò tới OEP của module này ngay sau khi code của nó được load vào memory , set bp GetModuleHandleA :
Nhớ là BP tại CreateFileA vẫn được giữ nguyên trước đó nhé Shift-F9 một phát .Àh tại sao cứ Shift-F9 mà ko phải là F9 ? vì F9 thì hay bị ngưng lại đột ngột bởi
Trang 4Bỏ Break Point tại đây đi (F2 ngay chỗ Break) Mở memory map sẽ hiện 1 thông báo nhưng do trick dùng plugin OllyAdvanced để bỏ qua thông báo đó nên ko bị
nó hỏi han nhiều Ta tìm xuống phần section của module msvcp60.dll :
Set MBOA tại section text như trong hình Ấy, chớ vội nhấn F9 hay Shift-F9 .Không hiểu tại Olly trên máy trick chạy nhanh quá hay do OEP nằm ngay đầu section text mà khi ta nhấn F9 ngay thì nó ào ào qua luôn module này, ko kịp Break miếng nào Vậy bạn nào bị như thế thì làm thế này ,thường khi code được unpack, hay mượn tới nhiều hàm ,trong đó ẻm VirtualProtect hay được dùng Thử dùng nó để làm chậm quá trình thực thi lại ,may ra sẽ break đúng tại OEP của module trên Ta bp VirtualProtect đi :
Giờ thì Shift-F9 để break từ từ tại hàm này ,lần đầu ,ta dòm xuống cửa sổ
STACK :
Trang 5Àh, nó đang set thuộc tính READWRITE lên section chứa PE Header của
module , tiếp tục Shift-F9 :
Set thuộc tính EXECUTE_READ lên section text của module Cứ tiếp tục Shift-F9 cho đến khi nó set hết thuộc tính lên các section thì ta sẽ Break tại OEP :
Vậy OEP của module này đúng là ngay đầu section text RVA = 780C1000 ,hèn
gì nó hay bị lướt qua quá nhanh Ta bỏ ngay MBOA tại section này đi nhé Sau đó thì dump module này ra ,trick dùng LordPE để dump:
Save lại với name : msvcp60_dump.dll chẳng hạn.Sau đó fix IAT bằng
ImportREC Mở ImportREC ,chọn process cần xử lý, Pick DLL nó :