挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)不懂社区·好资源不错过·各位资源站大佬欢迎来采集搬运JD寻实力长期勤快开发,来实力代理,DMA内存,项目讨论群 【瓦--无畏】纯硬件锁,永久可用,无检测,源头厂家一手制作。稳定无异味,来实力代理 ██【我要租此广告位】██
查看: 3812|回复: 5
打印 上一主题 下一主题

[辅助源码分享] 关于鹅肠某射击游戏 无驱动读写的方法研究

[复制链接]

59

积分

39

主题

4

听众
已帮网友解决0 个问题
好评
0
贡献
20
海币
1815
交易币
0
跳转到指定楼层
楼主
发表于 2019-11-29 17:06:38 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


最近在学习windows 内核 想仿照写一个某F的保护 于是查询了一些资料 发现某F是注册一个 回调函数来保护自己游戏不被附加 于仿照做了一个 效果就是图一所示

核心代码
OB_PREOP_CALLBACK_STATUS
ProcessProtect(
        PVOID RegistrationContext, POB_PRE_OPERATION_INFORMATION pOperationInformation
)
{
        ULONG pid = (ULONG)(PsGetProcessId((PEPROCESS)pOperationInformation->Object)); //返回回调进程的pid判断 如果是我们要保护的进程 那么进行操作 如果不是  === return
         
        UNREFERENCED_PARAMETER(RegistrationContext);

        ULONG PPid = 5652;
        KdPrint(("PPID:%d", PPid));

        if (pid == PPid && PPid != 0)
        {

                pOperationInformation->Parameters->CreateHandleInformation.DesiredAccess = 0;


        }

        return OB_PREOP_SUCCESS;
}

那么怎么能干掉这层保护呢 这里我的思路有两个
             1. 思路就是 我们注册同样的 回调函数 给被ob保护的进程 只是我们这次的回调函数里面给我们特定进程满权限 那么他的保护不久被我们废了么

                      pOperationInformation->Parameters->CreateHandleInformation.DesiredAccess = PROCESS_ALL_ACCESS;
                 核心代码就这么一句话 效果就是 图二

             2.那么我们有没有其他思路呢 当然还是有的 他不是有回调么 我们直接在他的回调函数的入口处写一个 0xc3 问题不就解决了么 于是
VOID DisableObcalls(PVOID Address)
{
        KIRQL irql;
        CHAR PatchCode[] = "\x33\xC0\xC3";
        if (!Address)
                return;
        if (MmIsAddressValid(Address))
        {
                irql = WPOFFx64();
                memcpy(Address, PatchCode, 3);
                WPONx64(irql);
        }

}
VOID DownObcallBacks()
{
        PLIST_ENTRY pCurrentEntry = NULL;
        POB_CALLBACK pObCallback;
        ULONG64 ObProcessCallBackListHead = *(PULONG64)PsProcessType + 0xC8;
        ULONG64 ObThreadCallBacListkHead = *(PULONG64)PsProcessType + 0xC8;
        KdPrint(("ObThreadCallBackListHead:[%p]\n", ObThreadCallBacListkHead));
        pCurrentEntry = ((PLIST_ENTRY)ObThreadCallBacListkHead)->Flink;

        do {

                pObCallback = (POB_CALLBACK)pCurrentEntry;

                if (pObCallback->ObHandle != 0)
                {
                        DisableObcalls((PVOID)pObCallback->PostCall);
                        DisableObcalls((PVOID)pObCallback->PreCall);
                }

                pCurrentEntry = pCurrentEntry->Flink;

        } while (pCurrentEntry != (PLIST_ENTRY)ObThreadCallBacListkHead);

        KdPrint(("ObProcessCallBackListHead:[%p]\n", ObProcessCallBackListHead));

        pCurrentEntry = ((PLIST_ENTRY)ObProcessCallBackListHead)->Flink;

        do {

                pObCallback = (POB_CALLBACK)pCurrentEntry;

                if (pObCallback->ObHandle != 0)
                {
                        DisableObcalls((PVOID)pObCallback->PostCall);
                        DisableObcalls((PVOID)pObCallback->PreCall);
                }

                pCurrentEntry = pCurrentEntry->Flink;

        } while (pCurrentEntry != (PLIST_ENTRY)ObProcessCallBackListHead);
}

             核心代码如上 这样也能达到我们想要的标准 但是你以为这样就完了么 你会发现你打开某F进程确实可以了 但是几秒之后
             内存又读不到了 这是怎么回事呢 涉及到了句柄表 ,某F会遍历自己的句柄表 发现不是自己打开进程 那么同样会给权限降低
        这里怎么解决 经过几天研究已经差不多搞了出来 但是还待优化 有时间 再发一贴讲解


               同时欢迎各位大佬加群讨论 891652790








联系我时,请说是在 挂海论坛 上看到的,谢谢!

免费评分

参与人数 1海币 +1 收起 理由
冷雨夜~ + 1 Ctrl+c好用不(*^#^*)



上一篇:宁小糖台湾驱动Rez 支持还原全部人物模型
下一篇:XF晓珂作者分享体验服最新1.0.5.8基址
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。

4中级会员
576/600

576

积分

2

主题

13

听众
已帮网友解决1 个问题
好评
0
贡献
574
海币
1818
交易币
0
6#
发表于 2019-11-29 20:11:15 | 只看该作者
mubing666 发表于 2019-11-29 18:09
无 驱动读写 哥哥 你不够智能啊

你贴的代码都是内核代码,先不说这代码是不是你写的,你搞清楚什么是无驱读写没?
回复 支持 反对

使用道具 举报

59

积分

39

主题

4

听众
已帮网友解决0 个问题
好评
0
贡献
20
海币
1815
交易币
0
5#
 楼主| 发表于 2019-11-29 18:09:34 | 只看该作者
过路的人 发表于 2019-11-29 17:42
笑死,你这代码是无驱动?

无 驱动读写 哥哥 你不够智能啊
回复 支持 反对

使用道具 举报

59

积分

39

主题

4

听众
已帮网友解决0 个问题
好评
0
贡献
20
海币
1815
交易币
0
地板
 楼主| 发表于 2019-11-29 17:57:50 来自手机 | 只看该作者
所说驱动加载工具就是你家的驱动?真好
回复 支持 反对

使用道具 举报

4中级会员
576/600

576

积分

2

主题

13

听众
已帮网友解决1 个问题
好评
0
贡献
574
海币
1818
交易币
0
板凳
发表于 2019-11-29 17:43:03 | 只看该作者
你把驱动代码拿出来讲无驱动
回复 支持 反对

使用道具 举报

4中级会员
576/600

576

积分

2

主题

13

听众
已帮网友解决1 个问题
好评
0
贡献
574
海币
1818
交易币
0
沙发
发表于 2019-11-29 17:42:01 | 只看该作者
笑死,你这代码是无驱动?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2025-5-6 00:08 , Processed in 0.122767 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

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