Cracker Handbook 1.0 part 360 potx

7 127 1
Cracker Handbook 1.0 part 360 potx

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

Thông tin tài liệu

Nhấn F9. Chương trình dừng ở đây. Nhấn F9 lần nữa. Chương trình dừng ở 00AC430A. Ở trên một dòng chúng ta thấy giá trị của ECX được đưa vào IAT. Xoá HardWare Breakpoint bằng cách vào menu Debug -> Hardware Breakpoints Nhấn nút Delete 1 để xoá Hardware Breakpoints. Nhấn OK. Chúng ta sẽ trace để tìm ra Magic Jump. Trace với F8. Các bạn chú ý những cái JE, JNZ. Các bạn nên ghi ra giấy với những cái JE, JNZ đó nó nhảy hay không nhảy. 00AC4059 JE 00AC431E Không nhảy 00AC4080 JNZ SHORT 00AC40C6 Nhảy 00AC40D4 JNZ 00AC4164 Nhảy 00AC408E JE SHORT 00AC4201 Không nhảy 00AC41B7 JE SHORT 00AC4201 Không nhảy 00AC41EC JNZ SHORT 00AC41FF Nhảy Tại đây chúng ta sẽ rơi vào vòng lặp. Đặt Breakpoint tại 00AC4201 và nhấn F9 để thoát khỏi vòng lặp. Chúng ta sẽ ở 00AC4201. Tiếp tục trace với F8 và ghi chú tiếp. 00AC4208 JNZ SHORT 00AC4249 NHẢY 00AC4250 JNZ 00AC42EE NHẢY Trace tới 00AC430A thì dừng. Bắt đầu từ đây các bạn trace với F8 (không cần ghi giấy) và so sánh các lệnh nhảy với những điều chúng ta ghi ở trên coi có gì thay đổi không. Ở đây tôi ghi lại cho dễ theo dõi. 00AC4059 JE 00AC431E Không nhảy 00AC4080 JNZ SHORT 00AC40C6 Nhảy 00AC40D4 JNZ 00AC4164 Nhảy 00AC408E JE SHORT 00AC4201 Không nhảy 00AC41B7 JE SHORT 00AC4201 Không nhảy 00AC41EC JNZ SHORT 00AC41FF Nhảy Cũng đặt breakpoint tại 00AC4201 và nhấn F9 để thoát khỏi vòng lặp. Trace tiếp 00AC4208 JNZ SHORT 00AC4249 KHÔNG NHẢY >>>>>> Chú ý : Đây khác với ở trên. Vậy 00AC4208 là Magic Jump. Chúng ta sẽ sửa 00AC4208 JNZ SHORT 00AC4249 thành 00AC4208 NOP V. Fix Magic Jump, Dump và Fix IAT : Nhấn Ctrl-F2 để khởi động lại crackme.exe . Trong DUMP Window nhấn Ctrl-G. Nhập vào địa chỉ bắt đầu RVA : 0045E118, đánh dấu 4 bytes và đặt Hardware Breakpoint như trong hình Nhấn F9. Chương trình dừng ở đây. F9 lần nữa dừng ở đây. Tới đây chúng ta sẽ sửa Magic Jump. Nhấn Ctrl-G. Nhập vào địa chỉ Magic Jump. Nhấn OK. Sửa 00AC4208 thành NOP NOP. Chú ý 2 bytes tô đỏ. Nhấn F9 và chương trình crash ? ;) Chúng ta mong đợi chương trình chạy bình thường với IAT còn nguyên vẹn. Nhưng chương trình lại bị crash. Vậy làm sao dump và fix IAT ? Nói như bài hát của nhạc sĩ Tuấn Khanh là : Chuyện nhỏ ? Các bạn chú ý mặc dù chương trình bị crash nhưng IAT của chúng ta vẫn còn nguyên vẹn. Các bạn mở một OllyDbg khác lên (gọi là Olly2 và cái chúng ta mở trước là Olly1) và trong Olly2 mở file crackme.exe. Đặt breakpoint memory on access tại section CODE để tới OEP (nếu không hiểu thì xem lại ở trên). Nhấn F9. Trong Olly2 chúng ta sẽ ở tại OEP là 0045A15C. Bây giờ chúng ta sẽ copy nguyên phần IAT trong Olly1 đem sang Olly2. Trong Olly1 đánh dấu nguyên khối từ điểm bắt đầu RVA cho đến điểm kết thúc RVA (từ 0045E118 đến 0045E72C) Nhấn phải chuột chọn Binary -> Binary copy Trong Olly2 cũng đánh dấu nguyên khối từ 0045E118 đến 0045E72C. Nhấn phải chuột chọn Binary -> Binary Paste Đóng Olly1 lại. Dùng LordPE dump file crackme.exe thành dump.exe Mở Imprec lên. Chọn crackme.exe . Điền vào các thông số như hình sau : Nhấn nút Get Imports. Vẫn còn vài Invalid Thunks. Nhấn nút Show Invalid. Nhấn phải chuột chọn Cut Thunks. Bây giờ IAT chúng ta đã đầy đủ . Nhấn nút Fix Dump chọn file dump.exe . File dump_.exe sẽ được tạo ra. Chạy thử file dump_.exe  Good! Dùng PEID xem lại. Bonus) Enable Button Check : . nhảy. 00 AC 405 9 JE 00 AC431E Không nhảy 00 AC 408 0 JNZ SHORT 00 AC40C6 Nhảy 00 AC40D4 JNZ 00 AC 416 4 Nhảy 00 AC 408 E JE SHORT 00 AC42 01 Không nhảy 00 AC41B7 JE SHORT 00 AC42 01 Không nhảy 00 AC41EC JNZ. dõi. 00 AC 405 9 JE 00 AC431E Không nhảy 00 AC 408 0 JNZ SHORT 00 AC40C6 Nhảy 00 AC40D4 JNZ 00 AC 416 4 Nhảy 00 AC 408 E JE SHORT 00 AC42 01 Không nhảy 00 AC41B7 JE SHORT 00 AC42 01 Không nhảy 00 AC41EC JNZ. 00 AC42 01 . Tiếp tục trace với F8 và ghi chú tiếp. 00 AC4 208 JNZ SHORT 00 AC4249 NHẢY 00 AC42 50 JNZ 00 AC42EE NHẢY Trace tới 00 AC430A thì dừng. Bắt đầu từ đây các bạn trace với F8 (không

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

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan