看流星社区

 找回密码
 注册账号
查看: 4425|回复: 2

读写被保护进程内存的N种方法

[复制链接]

该用户从未签到

发表于 2013-3-26 09:20:09 | 显示全部楼层 |阅读模式
读写被保护进程内存的NNN种方法
以下纯手工码字.辛苦分有木有?

看到有童鞋大过年的还被人骗了600..
突然才意识到自己免费扔群共享几个月的东西居然值1000么。。

首先是常识:

远程读写进程内存的,通常是用
readprocessmemory
writeprocessmemory
这两个函数都需要进程句柄
当ntopenprocess被hook无法获得进程句柄时.
或者这两个函数对应的ntreadvirtualmemory ntwritexxxxx被hook的时候.
就无法实现.

以下是N种实现方法(属于立刻马上就能想到.并且实现的)

1.
驱动pass被hook的这3个函数
这个不用多解释..ssdt hook已经是很低级的话题.
2.
如果说上面的方法.每次游戏驱动要更新很麻烦.
那就基于上面的原理来个一劳永逸的
直接针对上面3个ssdt函数自己封装/模拟
把封装后的函数地址添加到新的ssdt链表
再把r3进程里ntdll里的Zw函数的index修改成新链表index的。
这个东西可以全部做在dll里
然后什么程序需要无视保护.只需要loadlibrary这个dll就可以了

SOD的内核模式就是这个原理.
当然它对openprocess的处理仅仅只是头部.
所以TP在内部hook就没有跳过了

3.
直接模拟ntreadvirtualmemory ntwritexxxxx的核心
其实并不是很复杂
ntreadvirtualmemory第一个参数是进程句柄
实际上读写内存的时候.进程句柄.最终是用来取eprocess的
我们知道readprocessmemory被叫做debugapi(调试api)
它的实现过程简单描述如下:
通过进程句柄遍历到被写进程的eprocess
KeStackAttachProcess(eprocess,apc)//附加
这时候直接调用
memcpy(目标进程虚拟地址,缓冲区指针,长度)
就把内存传出来了
读和写没有区别.
无非是目标地址和源地址交换一下


取eprocess本质上是不需要什么进程句柄.
也就不需要什么ntopenprocess.
PsLookupProcessByProcessId (PID, EProcess)--直接就能把EP传址回来
然后附加 再调用memcpy就可以了。

4.
基于第3种方法.
如果KeStackAttachProcess被hook.
就会导致无效
那么我们简单看看读写内存为啥需要KeStackAttachProcess?
通过调试就可以知道实际上附加本质.只是为了获取cr3进而获得内存分页而已
那其实我们就可以完全不需要去附加.这样就不会被hook干掉
因为eprocess的第一个结构kprocess+0x18保存的就是cr3.
当然.这里需要说明的是.
开启pae的情况下cr3的结构不一样.
这个我们可以通过读cr4 第5位是否置位获得
或者通过注册表
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PhysicalAddressExtension
1开 0关
然后是遍历页表或者继续抄附加原本的映射都随意.


5.
MmGetSystemAddressForMdlSafe直接将进程虚拟内存地址映射到内核态上.然后mov.

6.
偷梁换柱法
还是kprocess.记得前面说的的页表指针么.
任找一个记事本或者计算器这种单线程的进程,把主线程暂停了
(或者写一个简单的小程序.Main(启动子程序)就把自己的主线程暂停了)
然后取的这个程序的eprocess 取页表指针.备份之
取目标进程的页表指针,覆盖
这时候read/write processmemory 这个被暂停线程的程序.就访问/写入了被保护进程了
除了hook分页机制.任何ssdthook都过滤不了这货.
必须强调一点
关闭这个挂起进程前.必须把原来备份的页表指针写回去。不然会蓝。

该用户从未签到

发表于 2013-3-26 14:16:56 | 显示全部楼层
小女子真好

该用户从未签到

发表于 2024-1-28 11:16:38 | 显示全部楼层











































































































{2024年01月01日}2024春季,全球 崩 盘,三 峡 溃 坝

{2024年01月01曰}2024春季,全球 崩 盘,三 峡 溃 坝



作者 : 林斯丁
时间:  2023年12月16曰 16:46:41     星期六      农历十一月初四
           上正宗指 2942.56点    恒指 16792.19点   道指37305.16点
         
           
755年12月16曰:唐朝藩镇安禄山与其部将史思明以清君侧之名发动
                           叛乱,长达8年的内战成为唐朝由盛转衰的转捩点。
16⑧9年12月16曰:英囯囯卝会通卝过《泉卝利fǎ案》,确立了人卝民拥有不
                             可剥夺的民事和zhèng卝治泉卝利。
1966年12月16曰:联合囯大卝会采纳“囯际人卝泉公约”。
1932年12月16曰:林卝昭生曰,中卝囯右卝派分卝子,民卝主人卝士。
                             (1968年4月29曰逝世,基卝督徒)


         
突然的,全球 金 融 市 场 连 续 跌 停 大 崩 盘,
没有什么,谁也没想到啊,友邦惊诧,黑 天 鹅 白天鹅 哥斯拉,
一切都是,蓄 谋 已 久 的精心策划。zéi 喊捉zéi。


{一} 今时今曰{癸卯黑兔2023年12月16曰 } :
今时今曰,我预.测,人类有始.以来最大的金.融.崩 盘 ,未来三个月
之内,即,2024年02月、03月、04月,将 震 撼呈 现。
---- 中卝囯股市、全球股市、全球金融市场 连序跌婷大崩 盘 , 大盘连
       续或稍稍间断30/40多个跌亭板,人类有.史以来最大的金融.嗨啸。
股市、汇市、债市、期货商品、可能还有楼卝市,全部连卝锁式彻底崩溃。
黄 金 价 格 应 该 避 险 bào 涨。
忽 然 之 间 ,天 塌 了。{ 全 球 闪 崩 }
十 八 级 金融大 地.震,史无前例地球崩卝盘,要 多 惨 有 多惨,世界沫曰。
金融天坑,股市雪崩、铡 dāo 斩 首 、bào 雷 溃 坝 ,希 特 勒 巴巴罗萨
金融闪击战 。画 皮 ,终 于 撕 去 了 。
道琼斯,憋了15年的一泡shǐ{⑥440.О8},2024春季,总算找到了,公共厕所。
缠中说禅18年之前预卝言的,2019毁miè性下跌。{有五年误差}
        ----- 为什么会有五年误差,是因为,股市是客观规律与人为cāo纵的,
                 对立统卝一。
已故“周期天王”周金涛的,“2018年到2019年是康波周期的万卝劫卝不卝复之年”。
以金.融战.争为表现形式的,第 叁

点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-28 23:50

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表