首页
社区
课程
招聘
[求助]用两个不同版本的OD调试跳转结果不同怎么回事
2012-5-11 18:34 3877

[求助]用两个不同版本的OD调试跳转结果不同怎么回事

2012-5-11 18:34
3877
这是在脱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 '+'
这样到后面怎么找都找不到函数入口。
请问:调试同一个程序为什么同一个跳转会跳向两个不同地址?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 249
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
枫泪无痕 2012-5-11 20:49
2
0
貌似后面那个右键--分析--从模块删除分析就可以看到代码了。
游客
登录 | 注册 方可回帖
返回