Đặt HBPWD ở 4 byte tại 3F7D60. Xong goi`, tắt các Olly đi, lại load target vô Olly mới,
separate Child & father, Attach child, patch changed bytes, Shift + F9, chúng ta dừng ở đây :
Shift + F9 :
Shift + F9:
Đúng là nó gòi, chỗ ghi điều khiển hướng đây mà, code của vòng lặp này :
00AB28B4 8B85 58E6FFFF MOV EAX,DWORD PTR SS:[EBP-19A8]
00AB28BA 3B85 6CE6FFFF CMP EAX,DWORD PTR SS:[EBP-1994]
00AB28C0 0F83 26010000 JNB 00AB29EC
00AB28C6 8B85 58E6FFFF MOV EAX,DWORD PTR SS:[EBP-19A8]
00AB28CC 8B00 MOV EAX,DWORD PTR DS:[EAX]
00AB28CE 8985 38E6FFFF MOV DWORD PTR SS:[EBP-19C8],EAX
00AB28D4 8B85 58E6FFFF MOV EAX,DWORD PTR SS:[EBP-19A8]
00AB28DA 83C0 04 ADD EAX,4
00AB28DD 8985 58E6FFFF MOV DWORD PTR SS:[EBP-19A8],EAX
00AB28E3 8B85 58E6FFFF MOV EAX,DWORD PTR SS:[EBP-19A8]
00AB28E9 8B00 MOV EAX,DWORD PTR DS:[EAX]
00AB28EB 8985 34E6FFFF MOV DWORD PTR SS:[EBP-19CC],EAX
00AB28F1 8B85 58E6FFFF MOV EAX,DWORD PTR SS:[EBP-19A8]
00AB28F7 83C0 04 ADD EAX,4
00AB28FA 8985 58E6FFFF MOV DWORD PTR SS:[EBP-19A8],EAX
00AB2900 8B85 58E6FFFF MOV EAX,DWORD PTR SS:[EBP-19A8]
00AB2906 8B00 MOV EAX,DWORD PTR DS:[EAX]
00AB2908 8985 3CE6FFFF MOV DWORD PTR SS:[EBP-19C4],EAX
00AB290E 8B85 58E6FFFF MOV EAX,DWORD PTR SS:[EBP-19A8]
00AB2914 83C0 04 ADD EAX,4
00AB2917 8985 58E6FFFF MOV DWORD PTR SS:[EBP-19A8],EAX
00AB291D A1 3092AC00 MOV EAX,DWORD PTR DS:[AC9230]
00AB2922 0385 34E6FFFF ADD EAX,DWORD PTR SS:[EBP-19CC]
00AB2928 8B8D 38E6FFFF MOV ECX,DWORD PTR SS:[EBP-19C8]
00AB292E 8B95 18E7FFFF MOV EDX,DWORD PTR SS:[EBP-18E8]
00AB2934 8D4C0A 04 LEA ECX,DWORD PTR DS:[EDX+ECX+4]
00AB2938 2BC1 SUB EAX,ECX
00AB293A 8985 40E6FFFF MOV DWORD PTR SS:[EBP-19C0],EAX
00AB2940 8B85 18E7FFFF MOV EAX,DWORD PTR SS:[EBP-18E8]
00AB2946 0385 38E6FFFF ADD EAX,DWORD PTR SS:[EBP-19C8]
00AB294C 8B8D 5CE6FFFF MOV ECX,DWORD PTR SS:[EBP-19A4]
00AB2952 8901 MOV DWORD PTR DS:[ECX],EAX
00AB2954 8B85 5CE6FFFF MOV EAX,DWORD PTR SS:[EBP-19A4]
00AB295A 83C0 04 ADD EAX,4
00AB295D 8985 5CE6FFFF MOV DWORD PTR SS:[EBP-19A4],EAX
00AB2963 8B85 5CE6FFFF MOV EAX,DWORD PTR SS:[EBP-19A4]
00AB2969 8B8D 40E6FFFF MOV ECX,DWORD PTR SS:[EBP-19C0]
00AB296F 8908 MOV DWORD PTR DS:[EAX],ECX
00AB2971 8B85 5CE6FFFF MOV EAX,DWORD PTR SS:[EBP-19A4]
00AB2977 83C0 04 ADD EAX,4
00AB297A 8985 5CE6FFFF MOV DWORD PTR SS:[EBP-19A4],EAX
00AB2980 8B85 38E6FFFF MOV EAX,DWORD PTR SS:[EBP-19C8]
00AB2986 8B8D 18E7FFFF MOV ECX,DWORD PTR SS:[EBP-18E8]
00AB298C 8D4401 04 LEA EAX,DWORD PTR DS:[ECX+EAX+4]
00AB2990 8B8D 3CE6FFFF MOV ECX,DWORD PTR SS:[EBP-19C4]
00AB2996 8B15 3092AC00 MOV EDX,DWORD PTR DS:[AC9230]
00AB299C 8D4C0A 04 LEA ECX,DWORD PTR DS:[EDX+ECX+4]
00AB29A0 2BC1 SUB EAX,ECX
00AB29A2 8985 40E6FFFF MOV DWORD PTR SS:[EBP-19C0],EAX
00AB29A8 A1 3092AC00 MOV EAX,DWORD PTR DS:[AC9230]
00AB29AD 0385 3CE6FFFF ADD EAX,DWORD PTR SS:[EBP-19C4]
00AB29B3 8B8D 5CE6FFFF MOV ECX,DWORD PTR SS:[EBP-19A4]
00AB29B9 8901 MOV DWORD PTR DS:[ECX],EAX
00AB29BB 8B85 5CE6FFFF MOV EAX,DWORD PTR SS:[EBP-19A4]
00AB29C1 83C0 04 ADD EAX,4
00AB29C4 8985 5CE6FFFF MOV DWORD PTR SS:[EBP-19A4],EAX
00AB29CA 8B85 5CE6FFFF MOV EAX,DWORD PTR SS:[EBP-19A4]
00AB29D0 8B8D 40E6FFFF MOV ECX,DWORD PTR SS:[EBP-19C0]
00AB29D6 8908 MOV DWORD PTR DS:[EAX],ECX
00AB29D8 8B85 5CE6FFFF MOV EAX,DWORD PTR SS:[EBP-19A4]
00AB29DE 83C0 04 ADD EAX,4
00AB29E1 8985 5CE6FFFF MOV DWORD PTR SS:[EBP-19A4],EAX
00AB29E7 ^ E9 C8FEFFFF JMP 00AB28B4
Ngắn gọn: dòng màu xanh là chỗ ghi địa chỉ đặt spliced code, cái bảng code splicing cũng được
ghi trong vòng lặp này dựa trên địa chỉ đặt spliced code.
Nói chung là các bác đọc tut #4 để biết rõ hơn về lý do mà nó làm zậy, muộn goi`, kết thúc sớm
còn ngủ để mai đi học, vì vậy em chỉ nêu cách làm thui.
Bây giờ thì các bác đặt HBPE vô dòng hightlight xanh, xóa HBPWD đi, close all Olly, load
target vô Olly mới, separate, attach child, patch changed bytes, Shift + F9, chúng ta dừng lại tại
:
Ta có :
DS:[00AC9230]=01300000
EAX=00BAB014
Như vậy [00AC9230] chứa địa chỉ đặt spliced code là 01300000, chúng ta redirect nó về vùng
.text1 (bắt đầu tại 411000). Nhấp phải vô DS:[00AC9230]=01300000, => follow address in
dump, Ctrl + E, edit thành
00AC9230 00420000 UnPackMe.00420000
Xóa HBPE đi, đặt 1 HBPE khác tại dòng lệnh (dưới lệnh JMP) :
00AB29EC 8B85 5CE6FFFF MOV EAX,DWORD PTR SS:[EBP-19A4]
F9, stop there, vô dump windows, Ctrl + G, 003F7C98, go: (hình này và bảng ở dưới em
redirect về địa chỉ 411000, các bác đừng như em nha, hãy redirect về 0042000, do em ko có
thời gian sửa lại nên đành để nguyên )
Cuộn lên thấy rằng bảng này bắt đầu tại : 003F7C30
003F7C30 004041EF UnPackMe.004041EF
003F7C34 0000CE0D
003F7C38 0041101D UnPackMe.0041101D
003F7C3C FFFF31D2
Kết thúc tại : 3F856C
003F8560 00405854 UnPackMe.00405854
003F8564 0000C8FA
003F8568 00412172 UnPackMe.00412172
003F856C FFFF36E2
Bây giờ “bôi trắng” (select) tất cả bảng đó, nhấp phải => binary => binary copy :