首页
社区
课程
招聘
[旧帖] [求助]olldbg中如何道从哪个地址返回来的. 0.00雪花
发表于: 2009-3-28 10:27 4592

[旧帖] [求助]olldbg中如何道从哪个地址返回来的. 0.00雪花

2009-3-28 10:27
4592
有个程序,有如下代码:
005C2B3C   .  50            PUSH EAX
005C2B3D   .  51            PUSH ECX
005C2B3E   .  FF7424 04     PUSH DWORD PTR SS:[ESP+4]
005C2B42   .  68 F7395C00   PUSH WinMPGVi.005C39F7
005C2B47   .  810424 BA0200>ADD DWORD PTR SS:[ESP],2BA
005C2B4E   .  C3           RENT
005C2B4F   >  83C0 08       ADD EAX,8
005C2B52   .  8B4424 08     MOV EAX,DWORD PTR SS:[ESP+8]
005C2B56   .  894424 04     MOV DWORD PTR SS:[ESP+4],EAX
005C2B5A   .  FF7424 04     PUSH DWORD PTR SS:[ESP+4]
005C2B5E   .  50            PUSH EAX
005C2B5F   .  68 7C3B5C00   PUSH WinMPGVi.005C3B7C
005C2B64   .  810424 460100>ADD DWORD PTR SS:[ESP],146
005C2B6B   .  C3            RETN
005C2B6C   .  83C0 0C       ADD EAX,0C
005C2B6F   .  8B7C24 08     MOV EDI,DWORD PTR SS:[ESP+8]
005C2B73   .  897C24 10     MOV DWORD PTR SS:[ESP+10],EDI
005C2B77   .  8BC4          MOV EAX,ESP
005C2B79   .  83C0 0C       ADD EAX,0C
005C2B7C   .  68 1F405C00   PUSH WinMPGVi.005C401F
005C2B81   .  812C24 470300>SUB DWORD PTR SS:[ESP],347
005C2B88   .  C3            RETN
005C2B89   .  897C24 10     MOV DWORD PTR SS:[ESP+10],EDI
005C2B8D   .  8B4424 08     MOV EAX,DWORD PTR SS:[ESP+8]
005C2B91   .  8B4C24 04     MOV ECX,DWORD PTR SS:[ESP+4]
005C2B95   .  8B3C24        MOV EDI,DWORD PTR SS:[ESP]
005C2B98   .  83C4 0C       ADD ESP,0C
005C2B9B   .  68 F63C5C00   PUSH WinMPGVi.005C3CF6
005C2BA0   .  830424 00     ADD DWORD PTR SS:[ESP],0
005C2BA4   .  C3            RETN
005C2BA5   $  68 AFD65A00   PUSH WinMPGVi.005AD6AF
005C2BAA   .  013424        ADD DWORD PTR SS:[ESP],ESI
005C2BAD   .  6A DF         PUSH -21
005C2BAF   .  53            PUSH EBX
005C2BB0   .  E9 56110000   JMP WinMPGVi.005C3D0B
005C2BB5   .  C2 0400       RETN 4
005C2BB8   .  68 DC3E5C00   PUSH WinMPGVi.005C3EDC
005C2BBD   .  812C24 B10100>SUB DWORD PTR SS:[ESP],1B1
005C2BC4   .  C3            RETN

有很多返回.如程序执行到005C2B4F处时,不是通过跳转(如jmp)或函数调用(如call)而来的,而是通过返回(RENT)来的,若是通过跳转来的,在OLLDBG中能够知道是从哪儿跳来的(例如显示"跳转来自005C2B3C).可通过这种返回方式来的就不知道是从哪个地址来的了,请各位大侠帮忙给看看.

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 195
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不知道从哪来,可是知道它从哪回去呀。下面不是有个 RETN 吗 ,看它返回到哪。它的上一个指令就是它来的地方。
2009-3-28 11:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
也想知道这个问题
2009-3-28 11:29
0
雪    币: 208
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
对于这点 你完全可以参考高级语言中的return

一个复合函数 函数返回的值就是这个函数运算后的值 可以把这个函数看作是一个自变量,return就表示运算结束返回运算结果或返回空,它会退出所在函数或是返回到主函数中接着往下执行

你问retn从哪个地址来的!  这个问题有点怪
要是问  要返回到哪里去? 还差不多  它就是返回到你F8后出现在的段

以上是个人见解有些牵强.望各位高手指点
2009-3-28 11:37
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
堆栈行不行?
2009-3-28 12:25
0
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
6
看堆栈变化!压栈后的call和call内的retn
2009-3-29 07:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看来各位还不明白,我的QQ是:352759891  email:99999wszhj@163.com更希望能加QQ帮助我.谢谢!
2009-4-7 20:05
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
8
od 不能看吧 可以用ida的交叉引用看下
push xxxx ---立即数
ret  这样的可以看
2009-4-7 22:17
0
雪    币: 213
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
比较赞同这个说法。

执行到这 005C2B6B   .  C3            RETN
F8,然后往上看。。。找到跳转或call,重新开始,从跳转处(或call)下断,跳转后执行n行之后应该会'RENT'到005C2B4F吧,那就知道是从哪'RENT'来的了

我是初学者,说错了别怪我
2009-4-8 02:03
0
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
10
IDA 如果静态的话,有时候会不准确,OD和IDA在动态下,可以参考栈区的变化来找到引用地址
2009-4-9 23:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
各位老兄如此热心相助,小弟不胜感受激,只是我的问题还没有解决.下面是这个软件的地址,各位大侠可以试一下.我试着破解它虽然找到了几处关键地方,可都是一点一点的跟出来的,就是从前往后一步一步跟的,费了好大劲,并且没能彻底解决,转化后的文件屏幕还是有注册信息.我的QQ和箱上面有.哪位大侠解决后可告诉我一声.在此先说一声谢谢!
2009-4-10 21:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这是软件地址http://www.pb86.net/Soft/dmtdown/zzzh/200804/6982.html
2009-4-10 21:46
0
游客
登录 | 注册 方可回帖
返回
//