首页
社区
课程
招聘
关于c++取函数地址的问题
发表于: 2018-3-31 17:43 4137

关于c++取函数地址的问题

2018-3-31 17:43
4137
之前在论坛上看到一位大佬的帖子,内容是

使用LdrLoadDll和_NtCreateThreadEx实现注入

https://bbs.pediy.com/thread-212527.htm


自己实现时发现取函数地址有问题

c语言编译器会自动把函数调用变成jmp的形式

如下图

实验截图

直接用函数名取地址时,会取到编译器自动生成的jmp语句那里,但是右下角的监视窗口那里的值确是对的。。。

然后用地址做运算时,也是用jmp那里的地址在计算

使用WriteProcessMemory,也是用的jmp处的地址

那怎么样才能取到真正的地址。


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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 775
活跃值: (2292)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
这是在debug模式下  relese就不会了 
或是你也可以获取jmp的操作数  加上当前地址再加上当前指令长度(IA32为5)
2018-3-31 17:51
0
雪    币: 7695
活跃值: (1544)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
3
谢谢大佬
2018-3-31 18:12
0
雪    币: 830
活跃值: (9806)
能力值: ( LV13,RANK:385 )
在线值:
发帖
回帖
粉丝
4
Debug下会有跳转表,Release下没有. 
2018-3-31 22:45
0
雪    币: 495
活跃值: (147)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
学习了    debug  跟release下编译函数的  区别
2018-3-31 23:54
0
雪    币: 1795
活跃值: (63)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
解答楼上说了,另外谢谢楼主,学到新的一种注入方法
2018-4-1 11:22
0
雪    币: 190
活跃值: (84)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
VC6的设置里关掉增量链接
2018-4-23 19:00
0
雪    币: 689
活跃值: (422)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
8
7楼正解,无需区分debug和release
2018-4-23 20:48
0
游客
登录 | 注册 方可回帖
返回
//