想要在DLL里面修改主进程中的堆上的某个变量,可以做到吗

marklzj4 2013-10-21 09:24:55
这个变量是在exe中new出来的一个变量,由于DLL接口不能改变,所以这个变量的地址无法传递到DLL里面。那么有没有办法能够在DLL中得到这个变量的地址,并将之修改?
我知道很有难度,需要用到一些非常规的方法,请各位大虾出手帮忙。
...全文
622 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjzzmdn 2013-11-01
  • 打赏
  • 举报
回复
我猜1、#pragma dataseg() 2、createfilemapping mapviewoffile
看不见的裂痕 2013-10-23
  • 打赏
  • 举报
回复
靠其他方法传值吧。 诸如数据库,或者INI文件
marklzj4 2013-10-23
  • 打赏
  • 举报
回复
楼上兄弟,需要提供dll里面的哪些东西,请明示。代码太多,没法全部贴上来
marklzj4 2013-10-23
  • 打赏
  • 举报
回复
回楼上各位,主程序不能改,dll可以随便改,但是不能改接口。dll对这个变量基本上得不到任何信息,唯一好处就是这个变量在进程一启动就new出来了,相对位置应该是固定的
boylafong 2013-10-23
  • 打赏
  • 举报
回复
除了接口不能改外,主程序跟dll程序可以改吗? 可以的话用共享内存。
神-气 2013-10-23
  • 打赏
  • 举报
回复
在DLL内部,对于这个变量的信息知道多少 ? 难道仅仅是知道有一个变量被其他module new出来了 ?
xiaohuh421 2013-10-23
  • 打赏
  • 举报
回复
主进程的程序代码不能修改, dll的代码也不能修改, 那就只能再注入一个dll, 在里面修改变量的值, 然后dll中自然就被修改了, 外挂的思想 不知道我理解得对不对.
「已注销」 2013-10-23
  • 打赏
  • 举报
回复
需要dll,需要知道你想调用dll的函数
marklzj4 2013-10-22
  • 打赏
  • 举报
回复
本来我的想法是先得到堆的起始地址,然后观察这个变量相对于起始地址的偏移量,据此算出地址。但是试过后发现,我的进程里居然有十几个堆(不是我的代码创建的),无法判断哪个堆才是这个变量所在的堆
91program 2013-10-22
  • 打赏
  • 举报
回复
难,关键是不知道这个变量的地址
「已注销」 2013-10-22
  • 打赏
  • 举报
回复
可以做。至于怎么做必须拿到dll才能做

15,473

社区成员

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

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