首页
社区
课程
招聘
[求助]memcpy复制内存不正确
发表于: 2014-1-7 22:19 4159

[求助]memcpy复制内存不正确

2014-1-7 22:19
4159
我想复制我们的一个函数到一个指针,结果全是jmp xxxxxxxx jmp xxxxxx
PVOID temp=malloc(500);
memcpy(temp,myFunction,500);
结果temp地址显示为
jmp  XXXXXXXX
jmp xxxxxxxx
jmp xxxxxxxx
但是myFunction地址内完全正确啊!

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
2
因为你这是debug版的
debug版的程序,有一个jmp表。跳转到各个函数。
发布版就不会这样了。
看你这代码貌似是想修改函数的功能。还不如直接hook。覆盖函数不知道有什么优点。
而且你这样直接编译出来的话。也无法运行成功的。malloc函数在.text段里。
该段禁止写入操作的。还得先VirtualProtect,或者直接WriteProcessMemory
2014-1-7 22:31
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
debug下面会有一个jmp table,可以在工程配置里禁用、换成release版也可以,直接计算跳转的地址也行。。
2014-1-7 22:41
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
建议hook
2014-1-7 23:39
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
上面已经说的很清楚了~~~
2014-1-8 00:41
0
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
6
debug版本关闭增量链接貌似也可以
2014-1-8 09:10
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
7
2楼正解。。。。
2014-1-8 09:55
0
雪    币: 64
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
确实是这样,不过不知道为什么之前的那个程序就没这个问题,也是check版本,也没改配置!
2014-1-14 00:59
0
游客
登录 | 注册 方可回帖
返回
//