首页
社区
课程
招聘
[求助]不改动原磁盘文件的前提下 如何动态修改程序?
发表于: 2007-8-16 15:47 4296

[求助]不改动原磁盘文件的前提下 如何动态修改程序?

2007-8-16 15:47
4296
比方说有一个程序A.EXE 我没有源代码
我为A.EXE写了一个DLL扩展它的功能

现在我已经可以通过修改A.EXE的导入表将DLL导入,然后在A的空白代码段加几条指令调用DLL中的函数成功
但是这样就要替换调原A.EXE磁盘文件

怎样通过另外写一个程序B,B启动后,如果A在运行,则B能够动态更改A的运行流程,使A在某刻调用DLL中的函数

大侠给几种方法,贴几篇教程例子的URL,多谢了啊

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 257
活跃值: (44)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
自己顶啊~~~~~~~~~~~
2007-8-16 18:02
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
查查一些LOADER的贴子,
我没有写过,不过根据我的猜测,大体思路是这样的:

LOADER先CreateProcess,给它传递SUSPEND标志,使新创建的主线程处于挂起状态,然后
WriteProcessMemory
将装载DLL的代码写入
再GetThreadContext,
得到主线程的入口点,修改其入口点为你写入的装载代码,并注意你装载完成后要跳回原来的入口点,接着ResumeThread让其恢复运行。

应该就是这样一个思路,你再查查别人写的关于LOADER的文章,自己试试吧
2007-8-16 19:45
0
雪    币: 217
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
是3楼说的这个样子,
2007-8-16 23:28
0
游客
登录 | 注册 方可回帖
返回
//