首页
社区
课程
招聘
进程内通信的问题,在dll中编程实现对另一个dll进行修改
发表于: 2009-1-6 20:03 5386

进程内通信的问题,在dll中编程实现对另一个dll进行修改

2009-1-6 20:03
5386
在dll内部实现对另外一个dll内存修改的疑问
我的delphi程序包含A.exe  m.dll  n.dll

下面的代码写在n.dll中,目的是修改V这个指针中的值
模式1,倘若V是A.EXE中的,那没问题,很成功
模式2,倘若V是m.dll中的,那就会提示写不进入,请问这里需要注意什么。

ASM
      pushad
      pushfd
      mov eax ,V   //V是个变量,为了测试这2中模式
      push eax
      call f;     //F是我定义的过程,在修改之前对内存访问属性进行修改
      pop eax
      mov edx,$00000000   //$00000000这个数值是我用来填充指针的  
      mov [eax],edx
      popfd
      popad
END;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
2
修改内存访问属性后,检查下返回值,是否修改成功
你的f是怎样的
2009-1-8 00:29
0
雪    币: 214
活跃值: (24)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
重定位 123456
2009-1-8 09:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
调试环境是什么样,有Np之类的没有?
如果v是个全局变量,程序直接地址访问,恐怕需要重定位吧
2009-1-8 10:09
0
雪    币: 22
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=;]...[/QUOTE]
重定位已经搞好了,GetModuleHandle,我在内部,可以使用这函数,这个函数很需要注意,仅用于程序内部

程序无驱动,F是公用过程,对exe修改时没问题,对dll修改就失效,写不进去

测试:F过程用在修改exe可行,修改dll的,我还是去返回个值,看看成功了没

有兴趣可以测试下。
2009-1-9 23:08
0
游客
登录 | 注册 方可回帖
返回
//