68 70F97100 PUSH dumped_.0071F970 ; SE handler installation _nhấp chuột phải và chọn Search For\All Intermodular Calls và gõ “GetModuleHandleA” và nhấp đôi vào dòng “kernel32.GetModuleHa
Trang 100719593 >/$ 55 PUSH EBP
00719594 | 8BEC MOV EBP,ESP
00719596 | 6A FF PUSH -1
00719598 | 68 C8EB6300 PUSH dumped_.0063EBC8
0071959D | 68 70F97100 PUSH dumped_.0071F970 ; SE handler installation _nhấp chuột phải và chọn Search For\All Intermodular Calls và gõ
“GetModuleHandleA” và nhấp đôi vào dòng “kernel32.GetModuleHandleA” Đầu tiên và ta tới đây
Quote:
006407FA 837D D8 00 CMP DWORD PTR SS:[EBP-28],0
006407FE 74 49 JE SHORT dumped_.00640849
00640800 813D B0706300>CMP DWORD PTR DS:[6370B0],416E6454
0064080A 75 2F JNZ SHORT dumped_.0064083B
0064080C 6A 00 PUSH 0 ; /pModule = NULL
0064080E FF15 E8D17300 CALL NEAR DWORD PTR
DS:[<&kernel32.GetModuleHandleA>] ; \GetModuleHandleA
00640814 8B0D BC706300 MOV ECX,DWORD PTR DS:[6370BC]
0064081A 03C8 ADD ECX,EAX
0064081C 890D E8485D00 MOV DWORD PTR DS:[5D48E8],ECX
_Đưa trỏ chuột tới 006407FE và Patch JE thành JNZ Sau đó nhập chuột phải chọn Copy to executable\Section\Save File (nên đặt 1 tên khác cho File) Run thử File vữa Save, Oh, không còn Nag nhắc nhở đăng ký nữa coi như chúng ta đã Crack luôn gòi!! He he…
_Dùng PeiD scan thấy chương trình được Code bằng “Microsoft Visual C++ 6.0”
_Unpack Done!!! Bye
Trang 2Why not bar(REA)
NsPack v3.7[Manual UnPack]
Target :
http://www.tuts4you.com/index/index Pack%203.7.rar
Phương pháp unpack cho NsPack giống hệt với UPX chỉ khác ở chỗ nó dùng PUSHFD chứ không dùng PUSHAD Cách thức như sau :
1.Load target vào trong Olly, chọn No analysis code :
Code:
0046D3A3 > 9C PUSHFD <== Entry point
0046D3A4 60 PUSHAD
0046D3A5 E8 00000000 CALL UnPackMe.0046D3AA
0046D3AA 5D POP EBP
0046D3AB 83ED 07 SUB EBP,7
0046D3AE 8D8D D9FCFFFF LEA ECX,DWORD PTR SS:[EBP-327]
0046D3B4 8039 01 CMP BYTE PTR DS:[ECX],1
0046D3B7 0F84 42020000 JE UnPackMe.0046D5FF
0046D3BD C601 01 MOV BYTE PTR DS:[ECX],1
0046D3C0 8BC5 MOV EAX,EBP
0046D3C2 2B85 6DFCFFFF SUB EAX,DWORD PTR SS:[EBP-393]
0046D3C8 8985 6DFCFFFF MOV DWORD PTR SS:[EBP-393],EAX
0046D3CE 0185 9DFCFFFF ADD DWORD PTR SS:[EBP-363],EAX
0046D3D4 8DB5 E1FCFFFF LEA ESI,DWORD PTR SS:[EBP-31F]
2 Nhấn F8 1 lần để thực hiện lệnh PUSHFD, sau đó nhìn sang phía cửa sổ
Regissters ta có được như sau :
Code:
EAX 00000000
ECX 0012FFB0
EDX 7FFE0304
EBX 7FFDF000
ESP 0012FFC0
EBP 0012FFF0
ESI 77F51778 ntdll.77F51778
EDI 77F517E6 ntdll.77F517E6
EIP 0046D3A4 UnPackMe.0046D3A4
Trang 33 Chuột phải lên thanh ghi ESP và chọn Follow in Dump Trong cửa số Dump ta highlight 4 bytes và chọn BreakPoint>Hardware, on access> Dword
4 Sau đó nhấn F9 để run, chúng ta sẽ break tại đây :
Code:
0046D615 - E9 969BFBFF JMP UnPackMe.004271B0 <== break here (jump to OEP)
0046D61A 8BB5 65FCFFFF MOV ESI,DWORD PTR SS:[EBP-39B] 0046D620 0BF6 OR ESI,ESI
0046D622 0F84 97000000 JE UnPackMe.0046D6BF
0046D628 8B95 6DFCFFFF MOV EDX,DWORD PTR SS:[EBP-393] 0046D62E 03F2 ADD ESI,EDX
0046D630 833E 00 CMP DWORD PTR DS:[ESI],0
0046D633 75 0E JNZ SHORT UnPackMe.0046D643
0046D635 837E 04 00 CMP DWORD PTR DS:[ESI+4],0
0046D639 75 08 JNZ SHORT UnPackMe.0046D643
0046D63B 837E 08 00 CMP DWORD PTR DS:[ESI+8],0
0046D63F 75 02 JNZ SHORT UnPackMe.0046D643
0046D641 EB 7A JMP SHORT UnPackMe.0046D6BD
5 Chúng ta dừng lại tại lệnh nhảy tới OEP thực nhiện lệnh Jump này bằng F8 Ta
sẽ ở tại OEP của target :
Code:
004271B0 55 PUSH EBP <== OEP
004271B1 8BEC MOV EBP,ESP
004271B3 6A FF PUSH -1
004271B5 68 600E4500 PUSH UnPackMe.00450E60
004271BA 68 C8924200 PUSH UnPackMe.004292C8
004271BF 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
004271C5 50 PUSH EAX
004271C6 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
004271CD 83C4 A8 ADD ESP,-58
004271D0 53 PUSH EBX
004271D1 56 PUSH ESI
004271D2 57 PUSH EDI
004271D3 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
004271D6 FF15 DC0A4600 CALL DWORD PTR DS:[460ADC] ; kernel32.GetVersion
Trang 4004271DC 33D2 XOR EDX,EDX
004271DE 8AD4 MOV DL,AH
004271E0 8915 34E64500 MOV DWORD PTR DS:[45E634],EDX
004271E6 8BC8 MOV ECX,EAX
004271E8 81E1 FF000000 AND ECX,0FF
004271EE 890D 30E64500 MOV DWORD PTR DS:[45E630],ECX
=
6 Cuối cùng tiến hành Dump bằng Olly và dùng Import Rec để fix lại IAT Sau đó nhần fix dump
7 Chạy thử file sau khi unpack okie run tốt !!!
Best Regards
kienmanowar
Manual Unpack PESpin 0.7 by Kagra
Translate and Edit : tlandn
Tut này tui dịch của Kagra Tut của Kagra ngắn và không giải thích rõ ràng nên hơi khó hiểu Tui thêm vào các hình ảnh, và ghi chú để các bạn dễ hiểu hơn
Target : Unpackme ?? của hacnho (kèm theo trong file)
Đầu tiên các bạn phải che giấu OllyDbg đi Kagra dùng HideOlly Plugin tuy nhiên các bạn có thể dùng IsDebugPresent plugin cũng được
Nạp chương trình vào Olly Nhấn Alt-O để vào “Debugging Options” và chỉnh giống như hình sau :
Trang 6Bây giờ nạp lại chương trình bằng cách nhấn Ctrl-F2 Các thông báo lỗi hiện lên
cứ nhấn OK
Nhấn Ctrl-F9 Chương trình sẽ dừng tại 00401029 Nhấn Ctrl-A để “analyse …” Một thông báo hiện lên chọn YES Bây giờ nhìn xuống cửa sổ phía dưới sẽ thấy như sau :
Tức là chúng ta đã nhảy tới 00401029 từ 004070DC Nhấn Ctrl-G Gõ vào 004070DC Nhấn OK Bây giờ cuộn cửa sổ lên một chút chúng ta sẽ thấy như hình sau :