1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracker Handbook 1.0 part 365 ppsx

6 73 1
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 173,29 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ẹ.. 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

Trang 1

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ị

Trang 2

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:

Trang 3

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 :

Trang 4

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õ :

Trang 5

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 :

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

TỪ KHÓA LIÊN QUAN