如何修改一个exe或dll文件,在其中增加一段代码(新增代码比较大)

永夜星空 2012-03-14 10:45:21
我有个这样的需求:将别人软件中的dll的某个函数Hook到自己指定的代码中(这段代码会继续载入一个dll.)
我以前的做法是在进程创建后写进程内存,把jmp指令写到要Hook的函数位置.本来一切都很好,但是如果用户安装了杀毒软件(特别是360)就出问题了,而且如果用户的操作系统是Win7,vista也很麻烦.所以我想直接修改那个要Hook的dll的文件,做到一劳永逸.但是有一个问题难到了我,就是我的这段用来载入dll的代码比较大,在原dll文件里实在找不出够大的空白区域装下这段代码。因此我想问一下,如果想为exe或dll文件增加一段代码该怎么做,难道直接在文件后面接一段内容么?那样会破坏文件么,这样的文件还能运行么。而且不是说PE文件中有某个位置记录了文件的校验码么
...全文
509 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jamseyang 2012-03-15
  • 打赏
  • 举报
回复
我一般都是把要新增代码写在一个DLL中,并且DLL导出一个函数。然后用PE工具给目标程序添加一个输入表并且添加DLL中的导出函数
Lactoferrin 2012-03-14
  • 打赏
  • 举报
回复
如果有数字签名,你这样做会使数字签名失效,某些软件会检查
gameslq 2012-03-14
  • 打赏
  • 举报
回复
如果想为exe或dll文件增加一段代码该怎么做,难道直接在文件后面接一段内容么?那样会破坏文件么,这样的文件还能运行么。而且不是说PE文件中有某个位置记录了文件的校验码么
都没问题
参考这里
http://www.cppblog.com/sleepwom/archive/2009/01/22/72443.html
网上很多资料

罗平 2012-03-14
  • 打赏
  • 举报
回复
反汇编算了。

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧