首页
社区
课程
招聘
[原创]快速修改导入表的一种方法
发表于: 2011-2-20 12:39 8494

[原创]快速修改导入表的一种方法

2011-2-20 12:39
8494

有这样一种情况:如果程序本身调用的函数是 MessageBoxW ,现在要把程序中调用 MessageBoxW 的地方都改为 MessageBoxA。
常规的方法是添加一项新的导入表,然后把程序中 MessageBoxW 的 RVA 都修改为 MessageBoxA 的 RVA。

如果仅仅是实现上面所说的情况,还可以有另外一种快速修改的方法,就是直接把导入表中的 MessageBoxW 修改为 MessageBoxA。
这样只需要修改一处,就可以实现了。

只需要修改 MessageBoxW 字符为 MessageBoxA。
如果修改为其他函数(与目标函数要在同一模块)的名称,那么在程序中所有调用 MessageBoxW 的地方都会变为所修改的函数。
这种修改方法局限性很大,只在某种特定的情况下才能用。




[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
函数地址自定位?
2011-2-20 13:11
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
3
我试验的结果是:如果函数在目标模块中,就可以调用到。
2011-2-20 13:14
0
雪    币: 1981
活跃值: (771)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
4
把函数名和对应的hint值一起改了,理论上是完全行得通的,不会有什么限制
2011-2-20 13:33
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
其实把程序不常用的 输入表 换成其他是可以的。

比如某DLL 参数基本上没用 可以换成其他的dll 输入表
2011-2-20 14:02
0
游客
登录 | 注册 方可回帖
返回
//