- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
易语言过TP驱动保护
本文章原创来自于: 独立团易语言编程论坛 已经过此站长授权允许转载! ====================================================================== 1.用RKU看一下SSDT和SSDTShadow,发现SSDT并没有被HOOK,SSDTShadow HOOK了5个调用: NtUserBuildHwndList NtUserFindWindowEx NtUserGetDC NtUserGetDCEx NtUserGetForegroundWindow 想也不用想,肯定是为了防止其他软件找到他的窗口。 解决方法:在TesSafe加载前先加载自己的驱动,备份这5个调用的地址,等TesSafe加载后直接还原即可,或者直接用RKU还原,TesSafe并没有在这里加效验,所以比较容易。 2.既然SSDT没有没HOOK,那么肯定有inline hook,用windbg看一下,发现被inline hook的调用有如下几个: NtReadVirtualMemory NtWriteVirtualMemory NtOpenProcess + 0x2xx Call ObOpenObjectByPointer处 NtOpenThread + 0x1xx Call ObOpenObjectByPointer处 KiAttachProcess 解决方法: (1). NtReadVirtualMemory NtWriteVirtualMemory 这2个比较好解决,自己写2个调用,实现这2个调用的头10个字节,然后再跳转到这2个调用头10个字节后面的地址,再到SSDT表里把这2个调用地址改成我们自己的即可。 (2). NtOpenProcess + 0x2xx NtOpenThread + 0x1xx 在TesSafe加载前,先保存ObOpenObjectByPointer的地址(或者用MmGetSystemRoutineAddress获取),然后我们自己写一段代码,实现Call ObOpenObjectByPointer头N个字节(随便自己)以及Call ObOpenObjectByPointer,然后再jmp到Call ObOpenObjectByPointer后面的代码地址,如: push eax push dword ptr [ebp-38h] push dword ptr [ebp-24h] Call ObOpenObjectByPointer jmp xxx 然后在Call ObOpenObjectByPointer前面N个字节处jmp到我们自制的代码,这样的话就算TesSafe把Call ObOpenObjectByPointer改成Call到自己的函数,对我们也没有作用了。 注意:直接还原代码的话,势必会蓝屏。因为TesSafe对这个地址有代码效验 (3). KiAttachProcess 由于这个调用并没有被导出,在SSDT表中也没有他的地址。所以我们首先要获取他的地址 虽然它没有被导出,但是调用它的另外一个调用KeAttachProcess却是被导出了的,我们可以先用MmGetSystemRoutineAddress获取KeAttachProcess的地址,再通过KeAttachProcess + 0x41的Call KiAttachProcess来取得KiAttachProcess的地址,然后直接还原它的代码即可(TesSafe并没有对这里进行代码效验)。 至此,TesSafe的所有HOOK都已恢复完毕,这时用OD附加游戏,发现OD会突然停止。 其实,上面那些HOOK大部分人都已经搞定,关键就是这最后一步,OD停止的原因是他收不到调试消息了,因为TesSafe有一个线程不停的向PEPROCESS-DebugPort 写入NULL(0)。 DebugPort其实就是Debug_Object的指针。 UnHook的方法多种多样,稍微灵活变通下就能想出很多方法。 程序我就不传了,我相信这些分析比传一个程序有用的多 NP和HS也都大同小异,自己写系统调用,一样过他 以后我会介绍如果绕过NP,以及HS的保护
文档评论(0)