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

Cracker Handbook 1.0 part 382 potx

5 89 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 5
Dung lượng 341,31 KB

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

Nội dung

Rồi các bạn nhìn xuống một chút, chúng ta sẽ thấy 00416245 JMP EDI, Hãy đến 00416245, àh các bạn nên đặt Hardware breakpoints executation đừng nên đặt F2 tại địa chỉ trên, và nhớ xóa các

Trang 1

Rồi các bạn nhìn xuống một chút, chúng ta sẽ thấy 00416245 JMP EDI, Hãy đến

00416245, àh các bạn nên đặt Hardware breakpoints executation (đừng nên đặt F2 tại địa chỉ trên), và nhớ xóa các breakpoints khi mà trace xong, ta sẽ đến đoạn mã sau:

Các bác nên F8 từng cái thì mới có được hình dạng như trên Ta ngưng ở

00378353:

JMP 0040400F - lệnh nhảy tới FALSE OEP

Ừm F7, ta tới đây:

Trang 2

Nếu có ai đó chưa hiện đúng như vậy thì hãy dùng chức năng plugin Analyze this! Của OLLY

OEP thì tại 00404000, những chỉ lệnh trên là những junk code, Chúng sẽ làm rối

mù chúng ta Bây giờ ta tiến hành DUMP (trong crackme này thì crackme vẫn làm việc tốt)

3 IMPORTS

Các bạn hãy tìm chuỗi nhị phân sau: FF 25, rồi chọn đại một lệnh nhảy, Enter, các bạn sẽ thây như sau:

Trang 3

Các lệnh nhảy lúc này sẽ nhảy đến những thủ tục của Obsidium.Ở đó, Obsidium không dùng hàm GetProcAddress mà thay vào đó, những imports được lưu trữ như:

- dll image base (handle),

- some flag (FFFFFFFF is good one),

- import code (which is 2,4,1,80, or 40),

- first character of import,

- CRC32 hash

Obsidium sẽ lấy thông tin mà chương trình cần dùng dll, sau đó nó sẽ dùng một vài

kỹ thuật kiểm tra bên trong (đây có phải là import cần hay không,…), sau đó nó sẽ tìm kiếm trong export Dll mà ký hiệu đầu tiên sẽ phù hợp với một cái gì đó trong bảng “obsidium import info", sau đó nó sẽ tìm kiếm cho cái import đó dựa vào CRC32 hash bằng với một giá trị trong bảng này

Giờ thì xem ví dụ của chúng ta:

Trang 4

Ta hãy xem phân tích sau:

003E00B4 60 PUSHAD

003E00B5 66:BE 25A2 MOV SI,0A225 < - Đây là 2giá trị mà chứa thông

003E00B9 B7 67 MOV BH,67 < -/ tin về Dll

003E00BB -E9 695389FF JMP 00395429

Sau đó, ta enter vào địa chỉ 003E00BB:

Xem:

00375467 CMP DWORD PTR DS[EDI+EAX+4]  kiểm tra, nếu là DLL được load, giá trị là FFFFFFFF Tôi gọi đây là [1]

00375477 MOVZX EAX,WORD PTR DS:[ESI] < - Nó sẽ lấy từ bảng

“import code” (2,4,1,80,40) [2]

003754AA CALL DWORD PTR DS:[EBX+50] < - Nếu "import code" is 2,

nó tìm kiếm import đó ở đây

TEST EAX,EAX < - [3] EAX sẽ là API value [3]

Hầu hết các import thì ở trong “code 2” loại

Trang 5

Tôi đã dùng script để chỉnh sửa imports Đầu tiên, ta xem xét bảng Imports trong file gốc :

Giờ thì ta tiến hành fix Imports bằng tay heng

Đặt “New Origin here” tại vị trí đầu tiên 003E0000, sau đó F7 đến

003E0007 Jmp 00375421

Rồi F7 tới 00375421, rồi đặt điểm ngắt tại 3 vị trí [1], [2],[3]:

Ta shift+F9, dừng tại 003754AD TEST EAX,EAX để xem API, rồi điền vào bảng IAT,lần lượt như sau:

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN