首页
社区
课程
招聘
[旧帖] [求助]关于在DLL中访问主进程全局变量 0.00雪花
发表于: 2017-1-5 17:34 2726

[旧帖] [求助]关于在DLL中访问主进程全局变量 0.00雪花

2017-1-5 17:34
2726
过程描述:
主进程A.exe运行在Windows的内核态。
主进程A.exe没有源代码,被A.exe调用的B.dll有源代码。
主进程A.exe中有个全局变量VAR,通过IDA已知其偏移地址。
在B.dll中通过A.exe的进程基址和全局变量VAR的偏移地址读写该变量。

请问这种操作方式会有什么风险?比如会不会导致主进程A.exe奔溃等不稳定现象?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 581
活跃值: (215)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
A.exe非nt还能运行在内核态啊?你是怎运行的?假设你说错了,那么,B.dll不就是在A.exe中的进程地址空间么,访问该全局变量能有什么问题。当然,排除刻意的页的权限设置。
2017-1-5 17:39
0
雪    币: 96
活跃值: (10)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
这个要看,你这个全局变量是否被频繁的修改,如果被频繁的修改,并且,这个全局变量本身就是至关重要的东西,不能有差错,那么,可能会导致A.exe崩溃,如果能够暂停A.exe线程,然后在,修改,这样问题应该就不大了
2017-1-5 21:26
0
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
眼尖的小伙子,估计是写错了,运行在内核态就不用纠结是不是加载dll到进程了,都是一个内核空间随便访问。

楼主,你如果确定内存偏移一定是某个值得话,而且后续也不进行任何更新A.exe的话,这种访问方式不失为一种便捷的方法

让A.exe加载我们写的B.dll,游戏辅助经常干的事情,而且很多硬编码不去校验也是常有的事情
2017-1-5 22:15
0
雪    币: 31
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
要不崩溃是很困难的,你得找出该值的同步变量,每次修改的时候使用该同步变量进行同步。不管在内核里还是3环。
我推荐不要修改它,找到它的修改函数,例如setXXX(),call它来改。
2017-1-7 10:30
0
游客
登录 | 注册 方可回帖
返回
//