目标壳:
ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov
(Version: ASProtect 1.23 RC4 - 1.3.08.24 [1])
参考帖子:
http://bbs.pediy.com/showthread.php?t=32917
目标文件:
f92K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0t1H3x3W2)9J5k6e0p5H3x3W2)9J5k6e0j5@1i4K6u0W2x3e0u0Q4x3V1k6U0k6$3W2Q4x3X3c8T1K9h3&6Q4x3V1k6V1L8q4)9K6c8U0q4Q4x3V1j5H3y4V1j5%4x3V1j5#2z5e0W2q4x3@1y4p5b7@1x3%4c8V1q4p5x3f1t1%4y4U0y4n7c8p5g2p5z5e0j5%4b7U0j5@1y4K6x3#2c8f1u0r3x3f1f1^5b7e0b7@1z5p5q4p5b7e0b7K6x3U0k6q4b7@1k6m8y4K6t1J5x3o6y4q4z5f1c8p5y4e0f1&6c8e0c8r3b7K6q4p5z5e0W2q4y4V1b7I4y4o6f1#2x3o6y4m8y4e0g2o6z5e0t1%4x3p5j5I4y4o6x3@1b7V1b7%4b7K6b7J5b7e0y4r3b7e0W2m8z5p5k6n7x3K6k6p5y4U0p5H3c8f1q4o6x3f1p5%4y4f1p5#2b7f1b7K6z5e0N6q4x3V1c8r3x3K6R3^5x3U0M7$3y4K6p5@1x3e0m8p5b7e0M7@1y4e0S2r3b7K6l9$3x3p5t1%4z5f1f1#2c8o6x3^5x3e0S2q4x3K6f1#2c8e0R3K6x3K6p5I4i4K6u0r3k6$3q4E0k6g2)9J5k6i4u0S2M7R3`.`.打开解压包 用OllDbg载入文件game.exe.
压缩代码? 点 否.
选项 -> 调试设置 -> 异常页 去掉 非法访问内存 处的勾. 确定.
程序停在
00401000 > 68 01602102 PUSH game.02216001
00401005 E8 01000000 CALL game.0040100B
0040100A C3 RETN
0040100B C3 RETN
F9,运行. 停在.
029F41A4 3100 XOR DWORD PTR DS:[EAX],EAX
029F41A6 EB 01 JMP SHORT 029F41A9
029F41A8 68 648F0500 PUSH 58F64
029F41AD 0000 ADD BYTE PTR DS:[EAX],AL
029F41AF 00EB ADD BL,CH
029F41B1 02E8 ADD CH,AL
029F41B3 0158 68 ADD DWORD PTR DS:[EAX+68],EBX
029F41B6 6C INS BYTE PTR ES:[EDI],DX ; I/O 命令
15次 Shift + F9 到达.
029F39EC 3100 XOR DWORD PTR DS:[EAX],EAX
029F39EE 64:8F05 0000000>POP DWORD PTR FS:[0]
029F39F5 58 POP EAX
029F39F6 833D B07E9F02 0>CMP DWORD PTR DS:[29F7EB0],0
029F39FD 74 14 JE SHORT 029F3A13
029F39FF 6A 0C PUSH 0C
029F3A01 B9 B07E9F02 MOV ECX,29F7EB0
029F3A06 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
029F3A09 BA 04000000 MOV EDX,4
029F3A0E E8 2DD1FFFF CALL 029F0B40
029F3A13 FF75 FC PUSH DWORD PTR SS:[EBP-4]
029F3A16 FF75 F8 PUSH DWORD PTR SS:[EBP-8]
029F3A19 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
029F3A1C 8338 00 CMP DWORD PTR DS:[EAX],0
029F3A1F 74 02 JE SHORT 029F3A23
029F3A21 FF30 PUSH DWORD PTR DS:[EAX]
029F3A23 FF75 F0 PUSH DWORD PTR SS:[EBP-10]
029F3A26 FF75 EC PUSH DWORD PTR SS:[EBP-14]
029F3A29 C3 RETN
单击029F3A29处F2下断点, Shift + F9 运行到断点.
029F3A29 C3 RETN
029F3A2A 5F POP EDI
029F3A2B 5E POP ESI
029F3A2C 5B POP EBX
029F3A2D 8BE5 MOV ESP,EBP
029F3A2F 5D POP EBP
029F3A30 C3 RETN
按F2取消029F3A29处断点.
右下角堆栈为:
0012FF5C 02A06294
0012FF60 00400000 game.00400000
0012FF64 CB6EF46A
0012FF68 0012FFA4
左下角命令中 hr 0012FF68 下断点
F9 运行到断点处.
02A063E7 /EB 44 JMP SHORT 02A0642D
02A063E9 |EB 01 JMP SHORT 02A063EC
02A063EB |9A 51579CFC BF0>CALL FAR 00BF:FC9C5751 ; 远调用
02A063F2 |0000 ADD BYTE PTR DS:[EAX],AL
02A063F4 |00B9 00000000 ADD BYTE PTR DS:[ECX],BH
02A063FA |F3:AA REP STOS BYTE PTR ES:[EDI]
02A063FC |9D POPFD
02A063FD |5F POP EDI
02A063FE |59 POP ECX
02A063FF |C3 RETN
F8往下走跳到
02A0642D 03C3 ADD EAX,EBX ; game.00400000
02A0642F BB BA020000 MOV EBX,2BA
02A06434 0BDB OR EBX,EBX
02A06436 75 07 JNZ SHORT 02A0643F
02A06438 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
02A0643C 61 POPAD
02A0643D 50 PUSH EAX
02A0643E C3 RETN
02A0643F E8 00000000 CALL 02A06444
02A06444 5D POP EBP
02A06445 81ED 4DE14B00 SUB EBP,4BE14D
02A0644B 8D85 F2E04B00 LEA EAX,DWORD PTR SS:[EBP+4BE0F2]
02A06451 8D8D 94E14B00 LEA ECX,DWORD PTR SS:[EBP+4BE194]
02A06457 03CB ADD ECX,EBX
02A06459 8941 01 MOV DWORD PTR DS:[ECX+1],EAX
02A0645C 8D85 36E14B00 LEA EAX,DWORD PTR SS:[EBP+4BE136]
02A06462 8D8D FAE04B00 LEA ECX,DWORD PTR SS:[EBP+4BE0FA]
02A06468 8901 MOV DWORD PTR DS:[ECX],EAX
02A0646A B8 5E140000 MOV EAX,145E
02A0646F 8D8D FFE04B00 LEA ECX,DWORD PTR SS:[EBP+4BE0FF]
02A06475 8901 MOV DWORD PTR DS:[ECX],EAX
02A06477 8D8D 94E14B00 LEA ECX,DWORD PTR SS:[EBP+4BE194]
02A0647D 8D85 94F34B00 LEA EAX,DWORD PTR SS:[EBP+4BF394]
02A06483 51 PUSH ECX
02A06484 50 PUSH EAX
02A06485 E8 76FFFFFF CALL 02A06400
F7一直走到 02A06485 处 进入CALL
02A06400 55 PUSH EBP
02A06401 8BEC MOV EBP,ESP
02A06403 53 PUSH EBX
02A06404 56 PUSH ESI
02A06405 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C]
02A06408 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
02A0640B EB 11 JMP SHORT 02A0641E
02A0640D 0FB703 MOVZX EAX,WORD PTR DS:[EBX]
02A06410 03C6 ADD EAX,ESI
02A06412 83C3 02 ADD EBX,2
02A06415 8BD0 MOV EDX,EAX
02A06417 8BC6 MOV EAX,ESI
再F7往下走我就迷路了 扰乱后的入口代码到底在哪呢?
怎么整理出来呢?
还望高手赐教!
[培训]科锐逆向工程师培训第53期2025年7月8日开班!