首页
社区
课程
招聘
[旧帖] [求助]内存加载一个EXE后, 怎么修改代码中调用导入表函数的地址呢? 0.00雪花
发表于: 2009-8-19 11:51 3701

[旧帖] [求助]内存加载一个EXE后, 怎么修改代码中调用导入表函数的地址呢? 0.00雪花

2009-8-19 11:51
3701
我写了一个程序, 像将别的程序在内存中运行, 导入表中需要的函数地址, 我也帮其加载并填好了.

但我反汇编看了下Exe调用导入表函数的方式,好像是硬编码

比如Call MessageBox,  实际上写的是call    dword ptr [402000]

402000 是导入表中的位置, 但问题我不能将别的PE加载到0x400000 位置,所以这个这个偏移量是不对的.

目前我想到两个法子

1.将目标加载进去拷贝到自己的401000处,
2.暴力搜索将call    dword ptr [402000]这样的地址改成真实的内存地址.

不过都不是好法子, 请问有什么好的办法解决这个问题呢?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 162
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这是楼主的处女帖啊,这水潜得够深
这问题我也不是很懂
以我所知,有2种办法,一是直接让Windows加载,二是模拟Windows创建PE环境的过程,自己写一个loader,应该是蛮复杂的
2009-8-20 18:40
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢回答
我就是想模拟Windows加载PE的,只是windows一般会加载到0x400000处,而我没有办法,
因为0x400000已经被我程序自己用掉了
2009-8-27 13:47
0
雪    币: 75
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
PEid里好像可以改动。
2009-8-28 16:21
0
游客
登录 | 注册 方可回帖
返回
//