首页
社区
课程
招聘
郁闷的调试问题(OD和DASM看到的指令不一样,但机器码一样)
发表于: 2007-3-29 11:21 6170

郁闷的调试问题(OD和DASM看到的指令不一样,但机器码一样)

2007-3-29 11:21
6170
目标文件是个DLL,用OD启动就不能正常运行
用OD看到的代码如下
1000225C   .  C3            retn
1000225D   .  8B85 70FEFFFF mov     eax, dword ptr [ebp-190]
10002263   .  E9 81050000   jmp     100027E9
10002268   >  C745 FC FFFFF>mov     dword ptr [ebp-4], -1
1000226F   >  68 9F220010   push    1000229F
10002274   .  64:FF35 00000>push    dword ptr fs:[0]
1000227B   .  EB 10         jmp     short 1000228D
1000227D    - E9 64892500   jmp     1025ABE6
10002282      0000          add     byte ptr [eax], al
10002284      00FF          add     bh, bh
10002286      FFE9          jmp     far ecx                          ;  非法使用寄存器
10002288      68 020000E9   push    E9000002
1000228D   >  B8 00000000   mov     eax, 0
10002292   .  8D05 42250010 lea     eax, dword ptr [10002542]
10002298   .  894424 04     mov     dword ptr [esp+4], eax
1000229C   .^ EB E0         jmp     short 1000227E
1000229E      E9            db      E9
1000229F   >  817D 0C 00010>cmp     dword ptr [ebp+C], 100
100022A6   .  7D 0B         jge     short 100022B3
100022A8   .  8B45 0C       mov     eax, dword ptr [ebp+C]

但我用DASM看到的确是另一种代码:
:1000225C C3                      ret

:1000225D 8B8570FEFFFF            mov eax, dword ptr [ebp+FFFFFE70]
:10002263 E981050000              jmp 100027E9

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:1000224B(U)
|
:10002268 C745FCFFFFFFFF          mov [ebp-04], FFFFFFFF

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10002173(U)
|
:1000226F 689F220010              push 1000229F
:10002274 64FF3500000000          push dword ptr fs:[00000000]
:1000227B EB10                    jmp 1000228D
:1000227D E964892500              jmp 1025ABE6
:10002282 000000                  BYTE  3 DUP(0)

:10002285 FFFF                    BYTE  2 DUP(0ffh)

:10002287 E968020000              jmp 100024F4
:1000228C E9B8000000              jmp 10002349
:10002291 008D05422500            add byte ptr [ebp+00254205], cl
:10002297 1089442404EB            adc byte ptr [ecx+EB042444], cl
:1000229D E0E9                    loopnz 10002288

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:100024EF(U), :1000253D(U), :10002622(C), :100026B2(C)
|
:1000229F 817D0C00010000          cmp dword ptr [ebp+0C], 00000100
:100022A6 7D0B                    jge 100022B3
:100022A8 8B450C                  mov eax, dword ptr [ebp+0C]

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 213
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
大哥大姐些,都出来教教小弟吧
2007-3-29 11:22
0
雪    币: 213
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

咋都没人来帮我下啊  
神啊 指条路吧
2007-3-29 11:45
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
4
基础没过关,补习一下汇编吧。。。以后还会遇到更多这样的情况。

其实是一样的
2007-3-29 14:01
0
雪    币: 213
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
是不是DLL文件的ASPROTECT壳啊
哪位神仙再来指点下啊
2007-3-29 14:26
0
雪    币: 209
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
不同程序对花指令的识别不同,或者说将数据也翻译成了代码
2007-3-29 14:28
0
雪    币: 413
活跃值: (752)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
7
1000225D 8B8570FEFFFF  mov eax, dword ptr [ebp-190]

1000225D 8B8570FEFFFF  mov eax, dword ptr [ebp+FFFFFE70]

+FFFFFE70]

-190]  这2个数的相等的,将A-B   和A +(-B) 所以得到的结果是相同的。
2007-3-29 14:38
0
雪    币: 213
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
哎 咋就高人来关注关注呢
是在中间插入了如 0E9 等的垃圾指令吧
没搞懂为什么用OD运行的话就会出错 直接运行就不出错
2007-3-29 15:43
0
雪    币: 213
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
用OD载入运行到后面就会提示
不知如何回避位于地址02782275的命令,请常识更改EIP或忽略程序异常
2007-3-29 16:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
呵呵,学习。
谢谢。
2007-3-29 20:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我们调的大概是同一个程序,不知道楼主有没有进展了?
2007-4-10 11:46
0
游客
登录 | 注册 方可回帖
返回
//