Tiế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 : Thế 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 Ở 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 nhiều lý do. Shift-F9 giúp trình debug chạy suôn sẻ hơn . Sau khi Shift-F9, ta Break tại hàm GetModuleHandleA : Bỏ 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 : À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ó : . RVA = 780C 100 0 ,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 : msvcp 60_ dump.dll. .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 msvcp 60. dll : Set MBOA. msvcp 60. dll - MSkinCore.dll - mbox2_bootupltdemo - mbox2_bootupdbgltdemo - mbox2_blacklist.txt Ở các bản trước ,khi extract Module đầu tiên ra ,ta dễ dàng tìm ra Name file là msvcp 60. dll