关于修改DLL中函数

心留 2009-07-21 09:56:50
先说一下我做了什么
1。HOOK一个进程(aaa.exe),加载了自己的my_1.DLL,并运行了自己DLL中的函数fun_1。
2。fun_1又加载了我自己的另外一个my_2.DLL,并找到了my_2.DLL中的另外一个函数fun_2的入口。
3。然后fun_1还修改了函数fun_2的内存代码。

我现在想问:
1。函数fun_2的内存代码被修改,会影响进程aaa.exe调用函数fun_2吗?
2。函数fun_2的内存代码被修改,会影响其它进程调用函数fun_2吗?

...全文
206 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
elpase 2009-07-21
  • 打赏
  • 举报
回复
是否会影响其它进程中的fun_2,要看你是怎么修改而定的。
据我所知,通过拦截API即可修改fun_2中的代码也会影响到其它,甚至已经加载了该DLL的进程的fun_2函数
hfcarrey 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lumin4882 的回复:]
楼主真小气 才2分。不过我学到了东东
[/Quote]

O(∩_∩)O哈哈~

3楼的正解!
lumin4882 2009-07-21
  • 打赏
  • 举报
回复
楼主真小气 才2分。不过我学到了东东
心留 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kesummer 的回复:]
1:会
2:不会

进程是隔离的。虽然代码是共享的,但是有写时拷贝机制,就是你改写fun_2,对应的内存页会单独拷贝一份,作为你AAA进程私有。
[/Quote]

高手呀,爱死你了。
KeSummer 2009-07-21
  • 打赏
  • 举报
回复
1:会
2:不会

进程是隔离的。虽然代码是共享的,但是有写时拷贝机制,就是你改写fun_2,对应的内存页会单独拷贝一份,作为你AAA进程私有。
枫桦沐阳 2009-07-21
  • 打赏
  • 举报
回复
hook不太清楚。
但是对于dll来说,各个程序是代码内存共享,数据段内存不共享的。

对于你上边的问题。我觉得都是会影响的。
心留 2009-07-21
  • 打赏
  • 举报
回复
没人知道?
心留 2009-07-21
  • 打赏
  • 举报
回复
我说一下我的修改fun_2的方法
其实很简单
1。找到fun_2入口
2。就修改前5个字节内容为(jmp 到自己函数)
3。然后可以在自己的函数里面 嘿嘿。。为所欲为了。。。
心留 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lumin4882 的回复:]
楼主真小气 才2分。不过我学到了东东
[/Quote]

人家问题多,偏偏一天就只能给10分。
我也是没办法呀。。。

15,471

社区成员

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

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