Hãy thử SPACE BAR trên 00401000 PUSH 0, để thử thay đổi thành JMP 450000 Đó chính là sự thay đổi, nhưng nếu dùng VIEW EXECUTABLE FILE thì sẽ không có sự thay đổi nào cả: Để có sự thay
Trang 1Hãy thử SPACE BAR trên 00401000 PUSH 0, để thử thay đổi thành JMP 450000
Đó chính là sự thay đổi, nhưng nếu dùng VIEW EXECUTABLE FILE thì sẽ không có sự thay đổi nào cả:
Để có sự thay đổi như vậy, bạn phải dùng tính năng SAVE FILE của OLLY Giờ thì hãy nhìn xuống những địa chỉ cuối cùng của EXECUTABLE trên đĩa cứng:
Bạn sẽ thấy vị trí kết thúc là AFFE, trong khi đó chúng ta đã thêm 3000h BYTES rồi kia mà? Thậm chí bạn dùng HEX WORKSHOP thì cũng chỉ thấy tới AFFE thôi Hì hì, vậy là sao hỉ Vậy là ta phải thêm 3000h BYTEs vào file trên đĩa đây Dùng ULTRAEDIT đề mở file dump và tìm đến cuối file:
Trang 2Ừm, dĩ nhiên là chỉ thế thôi AFF0, hãy thêm 3000h BYTES vào file Nhấp phải chuộc trên vùng này, và chọn INSERT- DELETE HEX:
Nên nhớ 3000h tượng ứng 12288 decimal
Rồi hãy SAVE lại sự thay đổi (nhớ save vói tên khác)
Giờ thì nó sẽ thay đổi và kết thúc ở DFF0
Giờ thì hãy thay đổi section này bằng PEEDITOR
Trang 3Chúng ta hãy thay đổi RAW SIZE thành 3000h
Ừm, tốt tố, Bạn hãy mở OLLY, load file vừa mới chỉnh sửa trên Rồi nhìn trong VIEW-EXECUTABLE và bạn sẽ thấy vị trí kết thúc file sẽ là DFFE
Giờ bạn hãy BINARY COPY danh sách ở trên và BINARY PASTE vào trong vị trí 0040B000 trong O2, sẽ không có vấn đề gì xảy ra nữa
Chúng ta vừa mới chỉnh sửa SECTION được thêm vào heng, từ SECTION này, bạn có thể tạo ra một trình LOADER bên trong fiel này, rất đơn giản, bạn hãy dùng LoadLibrary để lấy chỉ số điều khiển tới DLL, sau đó bạn dùng hàm
GetProcAddress chúng ta s4 thu thập được địa chỉ của các APIs trên bộ nhớ, và cất giữ chúng trong bảng IAT, rồi tiếp tục vòng la95p tìm kiếm này đối với DLL và các APIs khác heng Sau cùng , LOADER của chúng ta sẽ nhảy đến ENTRY
POINT của chương trình, và khởi động chương trình thôi
Xong heng, tới phần 4 chúng ta sẽ nghiên cứu về SCRIPT mà chúng ta sử dụng để thu thập danh sách tên DLL, và tên APIs
Until part 4
Ricardo Narvaja
This document was poorly translated into English by Innocent
Cám ơn bạn đã đọc
TOOLCRACKING
exe32pack 142 OEP Finder
Quote:
/*
exe32pack 142 OEP Finder
by deux (deux@surfy.net)
www.reaonline.net
Trang 4*/
var oep
start:
tocnd "esp == 0012FFB4"
bphws 0012FFB4, "r"
run
mov oep,eax
bphws oep, "x"
run
cmt eip,"OEP found!now, dump it and fix IAT!"
msg "Script by Deux from www.reaonline.net!"
ret
PEComPact ver 2.55
Code:
/*
PEComPact ver 2.55 OEP Finder
by deux (deux@surfy.net)
www.reaonline.net
*/
var oep
start:
msg "Check ignore memory access violation in debug option before run this
script."
mov oep,eip
sto
bphws oep, "x"
run
cmt eip,"OEP found!now, dump it and fix IAT!"
msg "Script by Deux from www.reaonline.net!"
ret
WUPack ver 2.7
Code:
/*
WUPack ver 2.7 OEP Finder
Trang 5by deux (deux@surfy.net)
www.reaonline.net
*/
var oep
start:
//eob break
findop eip, #50#
bp $RESULT
run
break:
mov oep,eax
bphws oep, "x"
run
cmt eip,"OEP found!now, dump it and fix IAT!" msg "Script by Deux from www.reaonline.net!" ret
Packman ver 1.0.0.1:
Quote:
/*
Packman ver 1.0.0.1 OEP Finder
by deux (deux@surfy.net)
www.reaonline.net
*/
var oep
start:
sto
bphws esp, "r"
run
sto
sto
cmt eip,"OEP found!now, dump it and fix IAT!" msg "Script by Deux from www.reaonline.net!" ret