Wipe hết các section của armadillo .text1, .adata, .data1, .pdata :... Chỉnh Base of code và base of data: Option LordPE: rebuildPE:... Cách II: xài ArmInline: cơ chế hoạt động của ArmIn
Trang 1Wipe hết các section của armadillo (.text1, adata, data1, pdata) :
Trang 2Chỉnh Base of code và base of data:
Option LordPE:
rebuildPE:
Trang 3Run thử:
Done
Cách II: xài ArmInline: cơ chế hoạt động của ArmInline các bác xem qua Tut Tomo #5 :
Trong armInline ở trên, điền thêm thông tin vào mục codeSplicing:
Start of SplicedCode:
Length of spliced code: 12000
=> remove splices
Hiện thông báo lỗi :
OK, lại hiện lỗi:
Trang 4OK :
Như vậy có 2 chỗ mà ArmInline ko fix được Vô CPU windows, Ctrl + B, gõ vô E92 (có thể máy các bác khác), tại mấy câu lệnh jump to spliced code của em có dạng:
0040505A - E9 2ABDFA02 JMP 033B0D89
0040434D - E9 2EBFFA02 JMP 033B0280
OK, Olly dừng lại, Ctrl + L để search tiếp, cứ thế các bác tìm được các chỗ mà ArmInline chưa fix, ta fix bằng tay > <
Jump 1 chưa fix :
0040434D - E9 2EBFFA02 JMP 033B0280
00404352 0FCE BSWAP ESI
00404354 0FCE BSWAP ESI
00404356 90 NOP
Trang 500404357 C3 RETN
Như vậy có 10 bytes bị armadillo nó thịt, JMP đến 33B0280 :
033B0280 8B00 MOV EAX,DWORD PTR DS:[EAX]
033B0282 89C0 MOV EAX,EAX
033B0284 5E POP ESI
033B0285 5F POP EDI
033B0286 5B POP EBX
033B0287 96 XCHG EAX,ESI
033B0288 66:91 XCHG AX,CX
033B028A 66:87F9 XCHG CX,DI
033B028D 66:87F9 XCHG CX,DI
033B0290 66:91 XCHG AX,CX
033B0292 7D 02 JGE SHORT 033B0296
033B0294 7D 05 JGE SHORT 033B029B
033B0296 96 XCHG EAX,ESI
033B0297 89EC MOV ESP,EBP
033B0299 5D POP EBP
033B029A - E9 B34005FD JMP UnPackMe.00404352
1 đống câu lệnh vô nghĩa được thêm vô, những byte bị arm thịt là
8B 00 89 C0 5E 5F 5B 89 EC 5D
Copy đống byte này và paste binary vô cái đống chết dịch 40434D – 404356 Sau khi paste:
0040434D 8B00 MOV EAX,DWORD PTR DS:[EAX]
0040434F 89C0 MOV EAX,EAX
00404351 5E POP ESI