Giờ goto tới hàm CreateThread, Ctrl-G: Để hạn chế Anti-Debug ,ta ko set BP ở đầu hàm mà nên set ở cuối hàm, tức lệnh RETN: F9 cho Break tại đó. Nếu có máy nào chạy script và sau đó bị crash thì các bạn tự giải quyết nhé ,có thể dùng Trial Reset Scan file .TMP của Armadillo và delete nó đi rồi thử chạy lại script xem sao. Bỏ BP đi ,F7 (hay F8) để return về : Đây là vùng code dành cho việc decrypt của Armadillo .Ta ko cần quan tâm nhiều, cũng ko cần trace chi cho mệt ,bởi vì sau khi ra khỏi vùng code này, giá trị đầu tiên mà nó access tới là OEP. Do đó, mở Memory Map lên , set memory breakpoint on access tại section .text : F9 một phát, ngay OEP : Vậy đã hoàn thành việc fix Magic Jump để lấy IAT Full và tìm OEP nhanh lẹ. III-Find & Fix CodeSplicing: Giờ ta sẽ tìm xem DLL này có protect bằng CodeSplicing (CP) hay ko? Cách tìm rất dễ ,khi dừng ở OEP ,các bạn cứ Enter vào các lệnh CALL gần đó, nếu thấy một lệnh - JMP tới một offset nằm ngoài file thì tức là nó có CP. Ở đây ta enter vào ngay lệnh CALL dưới OEP và thấy : Hai lệnh JMP thấy trong hình chính là 2 trong số nhiều các lệnh JMP tới section nằm ngoài file chứa các phần code bị đá ra. Ta thấy địa chỉ có dạng 22Dxxxx , mở memory map lên và tìm nơi section này lưu trong Memory: Vậy địa chỉ bắt đầu của section này là 22D0000 và size là 1B000 . Có nhiều bạn hay hiểu máy móc là CodeSplicing luôn nằm ở vị trí dưới cùng và size luôn là 20000 .Ở đây các bạn đã biết được cách tìm chính xác rồi đó. Giờ mở ArmInline lên để fix ,version tricky dùng là 0.95 .Đợi ArmInline lấy list process ,chọn loaddll.exe ,bên phần modules ,chọn UKHook40.dll . Sau đó bên phần CP ,lấy thông tin mà ta tìm được so với của ArmInline, ở đây nó đã lấy sai phần size ,ta fix lại : Giờ nhấn Remove Splices được rồi. Fix ngon lành, ko sót lệnh JMP nào : Okie, theo trình tự ta luôn fix CP trước rồi mới tới IAT Elimination. Giờ tiếp tục nhé . IV-Find & Fix IAT Elimination : Để kiểm tra xem có IAT Elimination hay ko, Ta mon men theo các lệnh CALL gần OEP, cho tới khi thấy một lệnh dạng JMP [IAT] hoặc CALL [IAT]. Ở đây, tính từ OEP xuống, Enter vào lệnh CALL thứ 3: Ta thấy một lệnh CALL [IAT] : Địa chỉ chứa IAT ở đây đã nằm ngoài vùng memory mà file load vào. Xem Memory để thấy rõ : Do đó, có thể kết luận rằng ở đây có IAT Elimination .Quay lại lệnh CALL trên ,Click phải, Follow In Dump nó, kéo lên xuống để tìm IAT Start và End : Vậy IAT Start ở C611E8 , và End ở C615C0. Nhưng để tính chiều dài phần code chứa IAT, ta phải lấy địa chỉ dưới IAT End để trừ đi , tức Length = C615C4 – C611E8 = 3DC Quay lại ArmInline, điền vào phần IAT Elimination những chỗ mà nó tự lấy chưa chính xác , ở đây là Base(Start IAT) và Length : . địa chỉ bắt đầu của section này là 22D 000 0 và size là 1B 000 . Có nhiều bạn hay hiểu máy móc là CodeSplicing luôn nằm ở vị trí dưới cùng và size luôn là 200 00 .Ở đây các bạn đã biết được cách tìm. Vậy IAT Start ở C 611 E8 , và End ở C 615 C0. Nhưng để tính chiều dài phần code chứa IAT, ta phải lấy địa chỉ dưới IAT End để trừ đi , tức Length = C 615 C4 – C 611 E8 = 3DC Quay lại ArmInline,. Giờ mở ArmInline lên để fix ,version tricky dùng là 0. 95 .Đợi ArmInline lấy list process ,chọn loaddll.exe ,bên phần modules ,chọn UKHook 40. dll . Sau đó bên phần CP ,lấy thông tin mà ta tìm