首页
社区
课程
招聘
一个关于进程间内存访问的问题
发表于: 2010-12-19 00:05 5998

一个关于进程间内存访问的问题

2010-12-19 00:05
5998
假定现有进程A和进程B
其中进程A是我们自己编写的
进程B是别人的程序
当进程B运行以后,它会在RING3层 HOOK USER32.DLL的一个地方

我们如何在不使用DLL注入的前提下
在进程A中访问到进程B加载的USER32.DLL 的地址

举例说明:

XueTr大家一定不陌生了
它在检测到了指定进程的用户层HOOK以后,并且可以恢复。
我就像知道,它是如何获得到其他进程模块的地址
我在搜索引擎也找了很久,可能是关键字用的不对。

例如:


问题补充:假定进程B已经在RING0层HOOK了
NtOpenThread
NtOpenProcess
NtReadVirtualMemory
NtWriteVirtualMemory
也就意味着,
FindWindow
GetWindowThreadProcessId
OpenProcess
ReadProcessMemory
WriteProcessMemory
这套传统的组合拳不好用~

在没有恢复这些HOOK 之前。XueTr就可以恢复它在RING3层的HOOK了。
真的很神奇,有高人知道的,还望指点一二

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
我就像知道,它是如何获得到其他进程模块的地址
上面这句话是指 就像LordPE一样获得 某个进程的各个dll模块的基址吗? 请看图片

如果是  我可以提供一点之前模仿LordPE的一个半成品的源码给你 希望能帮到你
相关api
CreateToolhelp32Snapshot
Process32First
Process32Next

然后一个 MODULEENTRY32 结构体就能得到你想要的各个dll模块的地址了。
上传的附件:
2010-12-19 01:19
0
雪    币: 34
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
读不了内存,光读个加载基址有啥用.
2010-12-19 03:00
0
雪    币: 439
活跃值: (1284)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
感谢两位的回复
问题解决了,用了大半天的时间看了
http://bbs.pediy.com/showthread.php?t=78164
这个文章的源码的枚举部分
2010-12-19 14:22
0
游客
登录 | 注册 方可回帖
返回
//