过dnf驱动辅助源码保护源代码

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
【最新】过DNF驱动保护的源代码
下载积分:1500
内容提示:【最新】过DNF驱动保护的源代码
文档格式:PDF|
浏览次数:28|
上传日期: 03:07:46|
文档星级:
该用户还上传了这些文档
【最新】过DNF驱动保护的源代码
官方公共微信您好,欢迎来到!
[27017]过TX系列-DNF驱动保护源代码
XX天XX时XX分XX秒
赏金分配:单人中标,一人独享赏金。
雇主选一人中标,一人独享中标金!
雇主已托管全部赏金,中标者可得到悬赏金的80%。
1.完整源代码,可编译成功,C++源码500元,DELPHI源码800元
2.能过当前最新版本的DNF驱动保护,OD可附加DNF.EXE调试
3.本人是新手,能力不强,请在每个CALL之前都注释该CALL作用
4.关键语句标明注释,注释不怕多,越详细越好.
5.有绝对把握完成此项目者,可先确定中标后再完成,验收合格后支付报酬。如需谈细节可加Q***& 隐身在线。(验证注明威客中国)闲人勿扰。
页面加载中...
暂时还没有设计师提交方案
评论加载中...
所在地区:山东-潍坊
信用等级:
交稿数量222
分享可赚钱,赶快告诉您的朋友吧 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
最新过DNF驱动保护的源代码[精编]
下载积分:2000
内容提示:最新过DNF驱动保护的源代码[精编]
文档格式:PDF|
浏览次数:14|
上传日期: 11:45:54|
文档星级:
该用户还上传了这些文档
最新过DNF驱动保护的源代码[精编]
官方公共微信求TX CF DNF 过驱动保护软件 有的之后加50分_百度知道『我记录』技术交流
软件与开发
积分:1794阅读权限:1548
文章目录:
&&&&&&&&&&&&&&&&&
01. 博文简介:
02. 环境及工具准备:
03. 分析 TP 所做的保护:
04. 干掉 NtOpenProcess 中的 Deep InLine Hook:
05. 干掉 NtOpenThread 中的 Deep InLine Hook:
06. 干掉 NtReadVirtualMemory 中的 InLine Hook:
07. 干掉 NtWriteVirtualMemory 中的 InLine Hook:
08. 干掉 KiAttachProcess 的 InLine Hook:
09. 干掉 NtGetContextThread 中的 InLine Hook:
10. 干掉 NtSetContextThread 中的 InLine Hook:
11. 干掉 DbgkpQueueMessage 中的 InLine Hook:
12. 干掉 DbgkpSetProcessDebugObject 中的 InLine Hook:
13. 干掉 Debug 清零:
&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&& &&&&&&&
&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&& &&&&&&&
共四篇,本篇为第一篇。
&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&& &&&&&&&
&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&& &&&&&&&
01. 博文简介:
&&&&&&&&&&&&&&&&&&&&&&&&&
本篇博文仅仅是我对过 TP 保护所作的一个总结,里面没有啥高深的技术,
仅仅是 Hook 而已,并且只有些 InLine Hook 和 SSDT Hook 的代码,
这些对大牛而言都是小菜一碟,所以大牛们可以直接飘过咯 ^_^
然后就是关于本篇博文,估计会比较长,所以我会按照上面的目录分出来一,二,三,四篇相继发表。
&&&&&&&&&&&&&&&&&
我先来装回逼科普下 TP 吧,直接从百度百科抄袭点过来:
TP 系统全称 TenProtect,是由腾讯自主研发推出的安全系统,可以有效保护游戏不受外挂侵犯,同时具备反木马盗号功能,
能有效的防止用户游戏帐号和虚拟财产被窃取。腾讯 TP 系统主要作用为外挂检测、反盗号、反非法工作室、防非法消息。
&&&&&&&&&&&&&&&&&
具体功能如下:
反注入:TP系统能有效的阻止非法模块对游戏进行注入;
反加速:TP系统能防止游戏客户端的非法加速功能;
反模拟按键:TP系统能有效阻止模拟按键程序;
反脱机: TP系统能针对非正常登录游戏的行为进行检测;
反调试: TP系统采用内核级反调试技术,保护游戏进程不被调试和分析;
反木马: TP系统可以保护玩家帐号不被木马程序窃取;
检测外挂功能:TP系统能对外挂功能进行检测;
指令混淆: TP系统能对正常指令进行虚拟和变形,加大外挂作者逆向难度;
特征匹配: TP系统采用特征码匹配技术,能准确检测到外挂的使用;
文件校验:TP系统可以准确检测游戏目录下的文件是否被第三方程序篡改;
游戏内存数据校验: TP系统所特有技术手段可以准确感知到游戏关键数据的异常;
游戏进程保护: TP系统可以保护游戏进程不被第三方程序读写;
游戏虚拟财产保护: 在玩家因不当操作引起帐号泄漏情况下,TP系统也可以保护玩家帐号内虚拟财产不被不法份子转移;
&&&&&&&&&&&&&&&&&
我几个日子弄了过 TP 的驱动保护,算下来前前后后也弄了半来个月,
虽然比较累,但还是收获了蛮多东西,这篇博文就是将如何过掉 TP 做的一个总结而已,
在这篇文章中我会一一介绍过掉 TP 所 Hook 的各种 API 的思路,并附上简要的代码,
在过 TP 驱动保护的过程中以及一些思路和一些代码也很大程度上都是来自国内的几大论坛,
主要是看雪,一蓑烟雨,DebugMan 等论坛,这里对我所借鉴的那些哥们说 Many Thanks。
同时也得特别感谢刘总,很多地方若没有刘总的指导,则还指不定何时能够弄出来呢。
&&&&&&&&&&&&&&&&&
值得一提的是,我现在所做的过 TP 驱动保护只支持 32 位 XP,在所有的 32 位 XP 上都可以正常运行,
不过 Win7 的话还不行,因为里面用到了搜索特征码来定位未导出 API,而我只针对 XP 做了处理。
&&&&&&&&&&&&&&&&&
免责声明:
此文仅作为技术交流,有心之人切记不要拿来做坏事,尤其是不要拿来做伤天害理,或者伤害企鹅利益的事情,
对于那些有心要做坏事的,则所有后果或者反正是坏的方面的责任都与我无关,
如果此文伤害了某些公司的利益或者之类的,请站内消息或者留言联系我,本人看到后会第一时间关闭此文。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
02. 环境及工具准备:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
前面也提过了,此次过 TP 的驱动保护仅仅只适用于 XP 系统,所以,首先你得准备个虚拟机,
然后装个 XP 的系统,至于是 XP SP2 还是 XP SPxxx 就随便了,当然,如果你喜欢 BSOD 的话,
也完全可以装个其他的系统,然后的话,就得准备几个专业工具了,首先一个当然是 Xuetr 了,
不过 TP 能够检测出 Xuetr,所以 Xuetr 在 XP 机器上和 TP 同时运行时,
轻则导致 TP 弹出警告框,重则蓝屏,这个看个人运气了。
然后还有一个工具也很重量级,也是 Rootkit 检测工具,叫做 Kernel Detective,
并且更重要的是 TP 和 Kernel Detective 是可以并存的,不会像 Xuetr 那样会被 TP 检测出来,
不过 Kernel Detective 想比与 Xuetr 来说,Xuetr 能够扫描内核的 InLine Hook,这个很强大,
这两个工具都很重要,其次就是 WinDbg 和 OD 以及 CE 了。
至于 WinDbg 的话自然是用来调试 Windows 内核或者调试驱动程序了,
而 OD 和 CE 的话可以用来测试咱所写的驱动是否真正的有效果,也就是测试是否真正的过了 TP 保护。
最后就是开发环境了,我的是 Visual Studio 2010 + Visual DDK + WDK,这个可以随意搭建。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
03. 分析 TP 所做的保护:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
如果真要分析 TP 所做的保护的话,还是比较麻烦的,不过好在各种论坛里面,各种前辈给指出了明路,
比如堕落天才有一篇极好的文章,不过这篇文章是 2010 年 12 月份的了,中间 TP 也不是吃饭的,肯定是有更新了,
(继续为堕落天才打广告)
文章名称:《散谈游戏保护那点事~就从_TP开始入手吧》
文章地址:
不过这篇文章的参考价值还是很大的,比如在 NtOpenProcess,NtOpenThread 等等系统服务的 Hook 上,
TP 也还是差不多的,也就是变化不大,甚至很多的代码都可以拿过来直接用,而至于 TP 更新的一些内核函数的 Hook 的话,
也可以从其他论坛里面找到一些,所以最主要的一点就是放狗搜索,放狗搜索到一些资料以后,
可以用 WinDbg 或者 Kernel Detective 来验证这个内核 API 是否真的被 TP 所干掉了。
具体的俺也不晓得要怎么说了,总结一句就是放狗搜索。
下面放出几张截图,我是用 Xuetr 进行扫描的,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
04. 干掉 NtOpenProcess 中的 Deep InLine Hook:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
TP Hook NtOpenProcess 的直接效果就是咱在应用层里面调用 OpenProcess(DNF 进程) 失败,
并且在 OD 或者 CE 里面也根本找不到 DNF 游戏的进程,更别提什么打开或者附加了,
这使得咱根本对 DNF 无从下手。研究过 TP 的都知道,TP 在 NtOpenProcess 中是下了深层的 InLine 钩子,
这个也早已经不是什么秘密,各个论坛上的都知道,是 Hook 的 ObOpenObjectByPointer,
对于这个,可以使用 Xuetr 扫描内核钩子扫描出来(TP 对 Xuetr 好像敏感,在 XP 机上可能蓝屏)。
在一些简单的 InLine Hook 中,咱都是直接拿内核 API 的头 5 个或者头 7 个字节做 Hook,
这种 Hook 方式是很容易被干掉的,直接 SSDT Hook 就可以干掉,
对于用 SSDT Hook 干掉浅层的 InLine Hook 可以参考看雪上堕落天才的文章:
文章名称:《SSDT Hook 的妙用 - 对抗 Ring0 InLine Hook》
文章地址:
不过 TP 是做的 Deep InLine Hook,也就是 Hook 的是 NtOpenProcess 深层的地址,而不是函数头,
要想用 SSDT Hook 来干掉的话,除非自己重写 NtOpenProcess,否则很难干掉,
而且 TP 在对 NtOpenProcess 上还有检测,所以即使是重写 NtOpenProcess 也很麻烦,
因为在重写中也必须要绕过 TP 可以被 TP 检测到,从而弹出经典的 TP 警告框。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
在这里咱可以在 Kernel Detective 中看到它所做的 InLine Hook,
首先是启动 Kernel Detective,然后在 SSDT 子菜单中,找到 NtOpenProcess,
然后在上面右键,在右键菜单中选择反汇编当前地址,从而就会跳转到 NtOpenProcess 的反汇编代码中了,
由于我的电脑太烂了,开个虚拟机,再跑个 DNF,再主机里面开个 Visual Studio 的话,估计半天会没反应,
所以这里截图截的都是没有启动 DNF 的图,也就是在 TP 还没有进行 Hook 时候的截图,
对于电脑配置好的朋友,可以自己去测试,测试结果除了地址外,其他基本都是一样的,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
那么如何实现干掉 TP 对 NtOpenProcess 所做的 Hook 呢 ?
一般干掉的意思就是恢复 Hook,但是恢复 Hook 有一个很严重的问题,那就是很容易就被 TP 检测到了,
其实可以换个思路,为什么一定要干掉 TP 对 NtOpenProcess 所做的 Hook 呢 ?
就算被干掉了,还得干掉 TP 用来检测 NtOpenProcess 的 Hook 是否被干掉的线程之类的,
这样就比较麻烦了,为何不直接绕过 TP 的 Hook 呢 ?
要想绕过 TP 的保护的话,我们也可以下一个 InLine Hook,如果发现是 DNF 进程的话,那好啊,
咱直接跳到 TP 下的 InLine Hook 中执行(这样 TP 还是执行它原来的代码,从而检测不出来被改变了)
而如果不是 DNF 进程的话,那咱就跳过 TP 下的 InLine Hook 就好了,
上面这样说是说不清楚的,来点干脆的,写点伪代码比较容易看懂:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
TP 启动之前,也就是 Hook 之前的伪代码:
push dword ptr[ebp-38]
push dword ptr[ebp-24]
call ObOpenObjectByPointer
mov edi,eax
lea eax,dword ptr[ebp-B8]
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
下面再给出我们自己 InLine Hook 的中继实现:
/************************************************************************/
自定义的 NtOpenThread,用来实现 InLine Hook Kernel API
/************************************************************************/
NTSYSHOOKAPI void InLineHookNtOpenThread()
dword ptr [ebp-34h]
dword ptr [ebp-20h]
/* 开始过滤 */
if(ValidateCurrentProcessIsDNF() == TRUE)
/* 如果是 DNF 进程调用的话,则调用已经被 TP Hook 的 NtOpenThread */
uTPHookedNtOpenThreadJmpAddr
/* 如果不是 DNF 进程调用的话,则调用 ntoskrnl.exe 中的 NtOpenThread */
uOriginObOpenObjectByPointerAddr
uMyHookedNtOpenThreadJmpAddr
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&
《过 DNF TP 驱动保护》的第一篇到这里就结束了,经过上面的处理,
我们已经过掉了 TP 在 NtOpenProcess 和 NtOpenThread 中的 InLine Hook,
现在已经能在 OD 或 CE 里看到 DNF 游戏进程并且在 Ring3 下也可以调用 OpenProcess 打开 DNF 进程了,
不过完成了这些离过 DNF TP 驱动保护还很远,详情还得留到下回分解了。
下面给出两张截图来显示一下咱的战果:
性别: 保密
积分:1083阅读权限:1256
楼主人才。太技术了。
积分:258阅读权限:350
楼主,有必要搞这个么
快速回复主题
Powered by
Processed in
seconds, 0 queries

我要回帖

更多关于 dnf蓝拳意念驱动 的文章

 

随机推荐