首页
社区
课程
招聘
[求助]如何获取当前指令在内存中的地址?
2013-12-29 22:09 4728

[求助]如何获取当前指令在内存中的地址?

2013-12-29 22:09
4728
本人刚学习PE文件修改,有问题请教下各位大虾:
要如何才能获取当前指令在内存中的地址,比如说olly打开得到的当前代码如下:
0026368E   .  6A 58         push    58
00263690   .  68 A0372600   push    002637A0
00263695   .  E8 72040000   call    00263B0C
我想在程序执行push  58(也就是0026368E地址)这条指令时获取该指令在内存中的地址,并存放到eax中,请教一下,要怎么才能实现呢?

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

收藏
点赞0
打赏
分享
最新回复 (6)
雪    币: 95
活跃值: (119)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JingSao 2013-12-29 22:23
2
0
Call __TEST
push 58
push    002637A0
call    00263B0C
......
__TEST:
pop eax

这个时候eax里面就是push 58的地址了
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
AioliaSky 1 2013-12-29 22:32
3
0
挂起,GetThreadContext
雪    币: 29
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
LeavesBNW 1 2013-12-30 00:14
4
0
同意这种方法,直白,易懂,shellcode技巧里也使用了这种方法,比较有技巧性。
雪    币: 7076
活跃值: (3468)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
bxc 6 2013-12-30 00:45
5
0
LZ是说取当前EIP么?
可以考虑这么写:
call next
next:
pop eax

eax就是pop eax这条指令的地址
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
达文西 2013-12-30 08:24
6
0
E8 00000000
雪    币: 144
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
wsmfgf 2013-12-30 09:15
7
0
感谢楼上几位的帮助,受益非浅,再次感谢!!
游客
登录 | 注册 方可回帖
返回