(1.介绍)
其实这个东西没啥技术含量,我就是水水帖子,知道大神有的都会这东西,需要技术,会一点pe,会一点内存隐藏手段完全够了,具体实现代码可以自己写,我就不写了轮子干多了。
(2.原理)
1.找到要架空的模块 举例ntdll.dll 首先获取这个dll首地址或直接找到这个文件 没加壳子的情况
2.拷贝到隐藏内存,修复PE文件,修复重定位,修复导入表(如果内存拷贝过来的就不用了)
3.劫持所有线程执行流程,挂起线程,获取线程环境,当然了也可以挂钩子,方法比较多不一一列举
4.修改那块自己的内存想怎么改都可以了,当然如果人家CRC写在模块内就不行了 例如魔兽的CRC32 当然我是硬逆的谁叫我头铁呢 哈哈 砍掉几个判断
(3.内存隐藏)
1.vad 摘除节点 关闭进程修复回来 要不蓝 (测试的少有问题别找我哈哈)
2.vad 缩小这个要有点技巧要不蓝,创建映射内存好像不蓝忘了有点
3.伪装到白名单模块例如SoGoupy.ime 这种牛逼签名的模块
4.修改pfn属性位 伪装目的,实际的可读写执行
5.挂物理页这个要修复pfn问题也很多 这个大家要懂的指点下 瞎挂蓝屏
6.注入到R0,这个要懂点保护模式,干掉段页保护 我32位做过 64位不会 如有狠人教教弟弟
(4.如何防范)
1.检测隐藏内存
2.检测线程上下文
3.CRC逻辑放在主模块
(5.吐槽)
游戏内的CRC为啥不用中断 DPC 这种 在搞个随机内存 类似PG 这个卡死半分之99的人我感觉可以的 对于大佬来说并不难啊.当然不包括你上vt 中断这类东西.
更多【傀儡模块劫持执行流,3环版的重载内核】相关视频教程:www.yxfzedu.com