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

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

2009-1-6 20:03
4844
在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;

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

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

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

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

有兴趣可以测试下。
游客
登录 | 注册 方可回帖
返回