首页
社区
课程
招聘
[求助]如何用外部dll给dll文件打内存补丁?
发表于: 2007-4-28 10:24 7750

[求助]如何用外部dll给dll文件打内存补丁?

2007-4-28 10:24
7750
请问:如何用外部dll给dll文件打内存补丁?

比如A.DLL
003D11C9 >   /75 02         JNZ SHORT 003D11CD
....
003D11CD  |. \8B5D 08       MOV EBX,DWORD PTR SS:[EBP+8]

我希望在启动程序时通过一独立的B.DLL预先修改A.DLL之003D11C9处为JZ SHORT 003D11CD,这样操作需要考虑重定位的问题,请问各位大虾?(不在原文件的SMC)应该如何操作?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
完全可以在exe里做,干嘛非要再挂个dll,徒增麻烦
2007-4-28 14:08
0
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
3
在exe里怎么操作?
2007-4-28 14:17
0
雪    币: 256
活跃值: (673)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
哦,也行呀,在.exe里怎么搞?

简单举个例子行不行?
2007-4-28 14:24
0
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
EXE可以打啊 请教 :)
2007-4-28 14:25
0
雪    币: 44229
活跃值: (19960)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
首先这句:003D11C9 >   /75 02         JNZ SHORT 003D11CD
不会重定位的。

用VirtualProtectEx将003D11C9 地址设为可写,用WriteProcessMemory修改指令。
2007-4-28 14:27
0
雪    币: 256
活跃值: (673)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
谢谢坛主的热心,我也再研究一下.
2007-4-28 15:03
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
8
直接修改DLL文件不是来得简单?
如果有重定位的话就计算偏移,ModuleBase(GetModuleHandle) + 偏移是不会变的
2007-4-28 15:23
0
雪    币: 256
活跃值: (673)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
是学一种技术,正是需要不修改原DLL也不修改主宿主程序,而达到修改内存的目的,

当然,也有通过给程序新增区段的方法注入函数,来达到读取的目的的.

感谢提供思路!
2007-4-28 15:41
0
雪    币: 22
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
差个话题
WriteProcessMemory是修改内存的指令
有没有可以直接修改虚拟地址中汇编代码的API,做补丁以及注入本人很不喜欢,我得用程序写
2007-4-28 18:40
0
游客
登录 | 注册 方可回帖
返回
//