首页
社区
课程
招聘
[旧帖] [新手求助]OD修改后保存,运行到修改点出错, 0.00雪花
发表于: 2013-5-23 00:23 1993

[旧帖] [新手求助]OD修改后保存,运行到修改点出错, 0.00雪花

2013-5-23 00:23
1993
手头有个地图软件《奥维地图》每次都会弹出自动升级提示。又不想升级

用BP messageboxA 断下升级窗口,
7731EA29 >  8BFF            mov edi,edi   call  messageboxA  //user32.dll内

返回主程
0136808E  |.  8945 DC       mov [local.9],eax
01368091  |.  895D E4       mov [local.7],ebx
01368094  |.  3BC3          cmp eax,ebx
01368096  |.  75 04         jnz Xomap.0136809C       //弹出更新窗口  改为jz 就不更新  
01368098  |.  33C0          xor eax,eax
0136809A  |.  EB 27         jmp Xomap.013680C3       //已是最新 跳过
0136809C  |>  895D FC       mov [local.1],ebx
0136809F  |.  FF75 14       push [arg.4]                             ; /Style
013680A2  |.  FF75 10       push [arg.3]                             ; |Title
013680A5  |.  FF75 0C       push [arg.2]                             ; |Text
013680A8  |.  FF75 08       push [arg.1]                             ; |hOwner
013680AB  |.  FF15 D0D74B01 call dword ptr ds:[<&USER32.MessageBoxA>>; \MessageBoxA
013680B1  |.  8945 E4       mov [local.7],eax
013680B4  |.  C745 FC FEFFF>mov [local.1],-0x2
013680BB  |.  E8 0B000000   call omap.013680CB
013680C0  |.  8B45 E4       mov eax,[local.7]
013680C3  |>  E8 59FB1000   call omap.01477C21
013680C8  \.  C3            retn

请问改了jnz为jz后,程序大小不变,为什么修改后保存,程序运行到此处就出错了呢?
我是新手,程序没壳,是程序有MD5验校,还是其他什么做错了?
有其他不弹升级窗的方法吗?
高手请指教!

程序链接:
http://pan.baidu.com/share/link?shareid=494772&uk=3808994674

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
位置不对!!
2013-5-23 09:00
0
雪    币: 205
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
分析错了
2013-5-23 09:17
0
雪    币: 95
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
你改的位置太低了,是对话框内部程序。调用这部分代码的地方太多了,随时会出问题。

你沿着你刚才调试的地方往回运行,到差不多看到下面代码的时候停下来

004498F5 6A 24 push 0x24
004498F7 |. 68 90F28100 push omap.0081F290 ; |Arg2 = 0081F290
004498FC |. 52 push edx ; |Arg1
004498FD |. 8BCF mov ecx,edi ; |
004498FF |. E8 C7EA2000 call omap.006583CB ; \omap.006583CB
00449904 |. 83F8 06 cmp eax,0x6 ;!!!!!
00449907 |. /75 35 jnz short omap.0044993E



可以直接跳过这一段
2013-5-23 09:23
0
雪    币: 95
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
你分析的时候最好同时用IDA对比着看一看。
2013-5-23 09:27
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
地图还不错。
2013-5-23 10:05
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哈哈 我是新手啊,受教了。
感谢 高手不少,学习学习
弱弱的问下 “往回运行"命令或快捷键在哪里? “到差不多看到下面代码”我差了好多  哈哈 所以说。。。。还没找到。。。
2013-5-23 10:59
0
雪    币: 95
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
说一下完整的过程,主要是图片和图片上的注释:
1. 下断点 :
    bp MessageBoxA
    运行起来后在OD断下来,往下找到Ret,加个断点!!


2.  按F9再运行,弹出对话框,选“否”,接着按F8,函数返回上一级,

这里就是你打算改jnz的地方,这个地方其实是MessageBox函数,它调用MessageBoxA。所以绝对不能修改。
3. 继续按F8,又返回一级,到了

    这里用处不大,继续按F8
4. 接着上步按F8,又返回一级。这一级就到了真正的用户代码,也是我之前的那张图片:

2013-5-23 13:13
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢ingvar,回答很详细,问题顺利解决。
2013-5-23 16:48
0
游客
登录 | 注册 方可回帖
返回
//