这是在脱ASPack 2.12的壳的时候产生的问题
这是1.0.9.3版
00C0E39A B8 20160000 MOV EAX,1620
00C0E39F 50 PUSH EAX
00C0E3A0 0385 22040000 ADD EAX,DWORD PTR SS:[EBP+422]
00C0E3A6 59 POP ECX
00C0E3A7 0BC9 OR ECX,ECX
00C0E3A9 8985 A8030000 MOV DWORD PTR SS:[EBP+3A8],EAX
00C0E3AF 61 POPAD
00C0E3B0 75 08 JNZ SHORT UltraISO.00C0E3BA
00C0E3B2 B8 01000000 MOV EAX,1
00C0E3B7 C2 0C00 RETN 0C
00C0E3BA 68 20164000 PUSH UltraISO.00401620
00C0E3BF C3 RETN
这个跳转跳向了:
00401620 EB 10 JMP SHORT UltraISO.00401632
00401622 66:623A BOUND DI,DWORD PTR DS:[EDX]
00401625 43 INC EBX
00401626 2B2B SUB EBP,DWORD PTR DS:[EBX]
00401628 48 DEC EAX
00401629 4F DEC EDI
0040162A 4F DEC EDI
0040162B 4B DEC EBX
0040162C 90 NOP
后面可以到真正入口:
00638B34 55 PUSH EBP
00638B35 8BEC MOV EBP,ESP
00638B37 83C4 F4 ADD ESP,-0C
00638B3A 53 PUSH EBX
00638B3B 56 PUSH ESI
00638B3C 57 PUSH EDI
00638B3D 8B75 08 MOV ESI,DWORD PTR SS:[EBP+8]
这个是1.0.10.0
00C0E39F 50 PUSH EAX
00C0E3A0 0385 22040000 ADD EAX,DWORD PTR SS:[EBP+422]
00C0E3A6 59 POP ECX
00C0E3A7 0BC9 OR ECX,ECX
00C0E3A9 8985 A8030000 MOV DWORD PTR SS:[EBP+3A8],EAX
00C0E3AF 61 POPAD
00C0E3B0 75 08 JNZ SHORT UltraISO.00C0E3BA
00C0E3B2 B8 01000000 MOV EAX,1
00C0E3B7 C2 0C00 RETN 0C
00C0E3BA 68 20164000 PUSH UltraISO.00401620
00C0E3BF C3 RETN
这个跳转是跳向了:
00401620 EB DB EB
00401621 10 DB 10
00401622 66 DB 66 ; CHAR 'f'
00401623 62 DB 62 ; CHAR 'b'
00401624 3A DB 3A ; CHAR ':'
00401625 43 DB 43 ; CHAR 'C'
00401626 2B DB 2B ; CHAR '+'
00401627 2B DB 2B ; CHAR '+'
这样到后面怎么找都找不到函数入口。
请问:调试同一个程序为什么同一个跳转会跳向两个不同地址?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)