首页
社区
课程
招聘
在学习中遇到困难了,请求大侠们帮助,ollydbg1.10。。。[求助]
发表于: 2005-7-11 10:44 5383

在学习中遇到困难了,请求大侠们帮助,ollydbg1.10。。。[求助]

2005-7-11 10:44
5383
说明:这是一个delphi7写的音乐播放软件,用pecompact 2.x加的壳。因为是未注册版~-~,同时只能播放50首歌在播放队列,如果超过50首就每播放一首歌会MessageBox一个对话框,很讨厌的,我的目的是想去掉这个对话框。(因为它是通过调用一个网站来进行注册,我不知道怎么办,所以只希望去掉这个Messagebox框)

1.经过我一周的很辛苦的努力,用ollydbg,loadPE, importREC一起把壳给脱掉了,算是完成一半的工作了。
2.接下来,我在MessageBoxA处设置断点,用ollydbg运行程序,好了,播放时断点成功:
  push 31
  ...
  ..
  call user32.MessageBoxA...
//我把上面那句改成nop,再运行,但会报异常,

困难:我不知道该怎么办了,因为我是设的MessageBoxA的断点,程序运行后,直接停在push 31这个地方,我想知道是在哪里调用push 31的,该怎么找到那一行?

在此诚心请教...

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

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 255
活跃值: (175)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
下内存断点!!!
2005-7-11 12:17
0
雪    币: 229
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
你那个是系统空间,回到程序领空再改啊。就不怕系统崩溃哪。
回到程序领空后看看有什么跳转可以跳过的。
2005-7-11 13:19
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上的,怎么下内存断点?
内存断点是什么意思?
2005-7-11 13:20
0
雪    币: 141
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最初由 lee 发布
下内存断点!!!


请说的详细明白些,学习中。。。
2005-7-11 13:20
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
skyege:对,我也认为是系统空间,一改后面就运行出错了。

可我不知道怎么返回在哪调用的,,
2005-7-11 13:21
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我不知道在哪调用这个messageBox的,请问怎么找到调用点?
2005-7-11 13:22
0
雪    币: 768
活跃值: (535)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
8
//////////////////////////////////
push 31
...
..
call user32.MessageBoxA...
//////////////////////////////////

在CALL处断下后,你F8后就会出来MessageBox,这时呢你点确定,程序又会被断下,一步一步运行到RET后再下一步就回到调用处的后一句了OK?

刚开始学习时我也是如此,有很多时候真的很需要详细的解答,但很难得到具体实现过程。

如果还不明白可以继续问我就是:)
2005-7-11 13:28
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
FishSeeWater:
你真是好人呀,真是这样,我怎么没想到呢??

我回家试试呀,
2005-7-11 13:58
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
FishSeeWater:你有QQ吗?希望加你QQ
我的QQ:35938754
2005-7-11 13:58
0
雪    币: 14959
活跃值: (4743)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
11
修改程序要注意是不是程序领空不要跑到系统里转悠的时候修改
2005-7-11 14:11
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
LOCKLOSE: 怎么知道是系统领空还是程序领空呢?
2005-7-11 14:21
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
在ollydbg中Atl + M 查看内存空间就知道了.
2005-7-11 14:40
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
4.在ollydbg1.10调试中.
  .....
  push eax
  call <jmp.&user32.MessageBoxA>
  mov dword Ptr ss:[ebp-8], eax
  xor eax,eax
  ....
  上面这断是调用MessageBox显示一个对话框的,
我把call <jmp.&user32.MessageBoxA>改成以下几句:
nop 或 test eax,eax 或 mov eax,1 或 mov eax,0
,程序都会运行异常并退出,为什么?

我的目的是不要显示这个MessageBox的对话框,如何做到?
2005-7-12 14:44
0
雪    币: 768
活跃值: (535)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
15
/////////////////////////////////////////////////////////
4.在ollydbg1.10调试中.
.....
push eax
call <jmp.&user32.MessageBoxA>
mov dword Ptr ss:[ebp-8], eax
xor eax,eax
....
上面这断是调用MessageBox显示一个对话框的,
我把call <jmp.&user32.MessageBoxA>改成以下几句:
nop 或 test eax,eax 或 mov eax,1 或 mov eax,0
,程序都会运行异常并退出,为什么?

我的目的是不要显示这个MessageBox的对话框,如何做到?
///////////////////////////////////////////////////////////

答:是不是程序有自校验啊??

/////////////////////////////////////////////////
怎么知道是系统领空还是程序领空呢?
/////////////////////////////////////////////////

答:这个问题我取了个巧,调试程序时看OD的“标题栏”
  比如我在分析一个名为 “pediy.exe”的程序 在OD的“标题栏”里是这样的
“OllyDbg - pediy.exe - [CPU - 主要线程,模块 - pediy]“
一看就知道当前在哪个模块中了
//////////////////////////////////

我的QQ:45399405
2005-7-12 16:24
0
雪    币: 194
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
问题解决,又学到一招,
感谢楼上几位,真心感谢
2005-7-13 11:54
0
游客
登录 | 注册 方可回帖
返回
//