dnf游戏下面以前有个tp图标,怎么现在dnf转职书没有了了,怎么打开啊?

常用入口:| | |
常用攻略:| | |
游戏卡顿掉线频?简单粗暴禁用TP全家桶
地下城与勇士新闻导语
禁用大公司全家桶的方法,大家都懂哒,不过这个禁得比较暴力....
现在设置的组策略,接触到核心进程,大公司的TGP会自动把组策略恢复默认,使你设置的组策略失效,当DNF关掉就会还原
前一段时间,看了某位大触(忘记ID叫啥,抱歉)在COLG发表利用右击属性的安全设置把权限都设置拒绝就能不启动状态栏那个TP图标了,因此我想到了也可能用这方法禁用其他
2个文件属性权限:遍历文件夹/执行文件,创建文件夹/读取数据;这2样禁止后,就可以让一个文件无法打开使用
TGP的DNF辅助工具中
换装的核心文件是:AppList.cfg
禁用后,换装也就失效了
这个文件位于:X:\地下城与勇士\start\Cross\Apps\AppList.cfg
血条 连发 换装 战斗力相关集成在一个文件夹中
这个文件夹叫&DNFRankings&位于:X:\地下城与勇士\start\Cross\Apps
剩下的一些功能在目录X:\地下城与勇士\start\Cross\Apps的&DNFDataReporter&文件夹
通过禁用一些大公司的无关插件,可以提高DNF的开启速度,我目前的希捷G硬盘开DNF是25秒,从开启TGP开始计时到选择角色界面
还可以减少DNF卡顿,过图loading更短暂,没有那个很烦人的直播小窗口
【那么接下来教大家方法怎么禁用】
以上为方法,然后一直点击确定就可以
手机看攻略,电脑玩游戏两不误!
加点再也不需要切来切去啦~
【地下城与勇士】最新消息第一时间推送给您
友情链接: |
连续签到:&天&&累计签到:&天
今日抢签到排名后使用快捷导航没有帐号?
查看: 2490|回复: 7
新人欢迎积分1 阅读权限50积分1868精华0UID帖子金钱1807 威望0
Lv.5, 积分 1868, 距离下一级还需 632 积分
UID帖子威望0 多玩草0 草
真烦。上游戏都能 看见这个
本帖最后由 梦回忆啊 于
12:05 编辑
お元気ですか
新人欢迎积分0 阅读权限70积分5346精华0UID帖子金钱4140 威望1
Lv.7, 积分 5346, 距离下一级还需 4654 积分
UID帖子威望1 多玩草250 草
本地策略组 活 属性编辑安全等级
新人欢迎积分1 阅读权限50积分1868精华0UID帖子金钱1807 威望0
Lv.5, 积分 1868, 距离下一级还需 632 积分
UID帖子威望0 多玩草0 草
三一斩月 发表于
本地策略组 活 属性编辑安全等级
不懂。。。
&原来有个叫田宫仁香的帖子写的很全自己搜吧&
新人欢迎积分1 阅读权限50积分2296精华0UID帖子金钱13148 威望0
Lv.5, 积分 2296, 距离下一级还需 204 积分
UID帖子威望0 多玩草190 草
我也是,今天登DNF突然发现右下角有个TP
新人欢迎积分0 阅读权限80积分18741精华0UID6292114帖子金钱43608 威望1
Lv.8, 积分 18741, 距离下一级还需 1259 积分
UID6292114帖子威望1 多玩草1684 草
早几天就有了,我也挺烦
:我没理。。。出来就关掉而已&
&我今天登游戏才出,找到程序所在位置,文件夹是今天才创建的,有什么方法好点它?&
新人欢迎积分0 阅读权限80积分13412精华0UID帖子金钱21981 威望0
Lv.8, 积分 13412, 距离下一级还需 6588 积分
UID帖子威望0 多玩草903 草
无视。。。
新人欢迎积分1 阅读权限50积分1406精华0UID帖子金钱15055 威望0
Lv.5, 积分 1406, 距离下一级还需 1094 积分
UID帖子威望0 多玩草478 草
在我的电脑里面TenProtect文件里的TP文件删掉就OK我也是百度找到的现在进游戏没出TP了.
手机论坛勋章
APP发帖双倍积分,登陆即送勋章!
DNF手机盒子勋章
APP签到每日有好礼,每日登陆送勋章。
365天!天天有你
连续签到1年即可获得
需要金钱:1100
手机盒子客户端点击或扫描下载
Powered by看完本文后的感觉?已有0人评价,选表情后可见其他玩家表态。
<span onclick='javascript:if(document.all){clipboardData.setData("Text",location.href);this.innerHTML="[文章地址已复制]";}'
class="btn">[与更多人共享]
添加到收藏夹
DNF火热排行榜
最热文章排行
最热视频排行
DNF装备库秀出人品
DNF特色栏目
DNF火热推荐
多玩DNF热点
DNF职业加点
DNF游戏视频
DNF职业视频
DNF工具模型
DNF职业模型
友情链接: |转&过&DNF&TP&驱动保护(二)
过 DNF TP 驱动保护(二)
时间: 02:38:38
<img src="/blog7style/images/common/sg_trans.gif" real_src ="/images/Img_line.gif" STYLE="border: 0" ALT="" HEIGHT="1" WIDTH="750"
TITLE="转&过&DNF&TP&驱动保护(二)" />
<font STYLE="font-size: 12" COLOR="#12年6月14日
名人名言:与智慧相伴的是真理,智慧只存在于真理中。——培根&
博文简介:
景象及对象筹办:
03. 解析 TP
所做的保护:
04. 干掉 NtOpenProcess 中的 Deep
InLine Hook:
05. 干掉 NtOpenThread 中的 Deep
InLine Hook:
06. 干掉 NtReadVirtualMemory
中的 InLine Hook:
07. 干掉 NtWriteVirtualMemory
中的 InLine Hook:
08. 干掉 KiAttachProcess 的
InLine Hook:
NtGetContextThread 中的 InLine Hook:
NtSetContextThread 中的 InLine Hook:
DbgkpQueueMessage 中的 InLine Hook:
DbgkpSetProcessDebugObject 中的 InLine Hook:
13. 干掉 Debug
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
共四篇,本篇为第二篇。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
NtReadVirtualMemory 中的 InLine Hook:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
前面已经干掉了 TP 对
NtOpenProcess 以及 TP 对 NtOpenThread 所做的 Hook,
如许的话,我们已经可以应用 OD 或者 CE
看到 DNF 的游戏过程了,
弄过一些游戏方面内容的伴侣应当都是知道 CE
的,这东东是开源的,不过是基于 Delphi 的,
对象做得很不错,可以经由过程 CE
来批改一些游戏过程的内存数据,比如可以批改一些简单的游戏的血值啊之类的,
然则,此时我们可以用 CE 来扫描一下 DNF
游戏过程的内存,你会发明底子扫描不到任何数据,
其实原因也很简单,TP 对
NtReadVirtualMemory 进行了浅层的 InLine Hook,
从而可以达到防止其他过程读取 DNF
游戏过程内存的目标,
而 CE 的话,在 Ring3 下是经由过程
ReadProcessMemory 来读取游戏内存的,
而 ReadProcessMemory 进入
Ring0 后又是调用的 NtReadVirtualMemory,
因为 NtReadVirtualMemory
被 TP 干掉了,所以天然用 CE 是扫描不出任何器材的,
要干掉 TP 对
NtReadVirtualMemory 所作的浅层 InLine Hook 其实是斗劲简单的,
因为 TP 并没有对
NtReadVirtualMemory 做检测,所以可以直接用 SSDT 来对抗掉浅层的 InLine Hook 就
至于道理的话,很简单,直接用 SSDT
Hook 调换掉体系办事 NtReadVirtualMemory,
SSDTHookNtReadVirtualMemory 这个我们本身写的体系办事中断定,
若是是 DNF 过程的话,直接调用本来的
SSDT 体系办事就好,若是不是 DNF 过程的话,
我就跳过 TP 对
NtReadVirtualMemory 所做的 InLine Hook,也就是跳过前面 7 个字节就 OK
对于这种干掉 InLine Hook
的道理,出错天才的文章讲的最清楚了,我这里就不再班门弄斧了。
(持续为出错天才打告白)
对于用 SSDT Hook 干掉浅层的 InLine Hook
可以参考看雪上出错天才的文章:
文章名称:《SSDT Hook 的妙用 - 对抗
Ring0 InLine Hook》
文章地址:/showthread.php?t=40832
有的童鞋可能会问,咱是如何知道
NtReadVirtualMemory 被 TP 干掉了呢 ?
很简单,还是采取前面的做法,用 Kernel
Detective 就可以看到了,具体可以看下面的截图:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
至于如何安装 SSDT Hook 或者
SSDT Hook 是啥玩意来着的话,大师有爱好的可以参考我的下面博文系列:
《过程隐蔽与过程保护(SSDT Hook
实现)》系列,共三篇。
/BoyXiao/archive//2164574.html
/BoyXiao/archive//2166596.html
/BoyXiao/archive//2168115.html
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
下面先贴出安装 SSDT
钩子的代码,该代码用来干掉 TP 对 NtReadVirtualMemory 的 InLine
VOID InstallPassTPNtReadVirtualMemory()
if(g_SSDTHookNtReadVirtualMemory & 0)
ULONG uNtReadVirtualMemoryAddr = oldSysServiceAddr[g_SSDTHookNtReadVirtualMemory];
uTPHookedNtReadVirtualMemoryJmpAddr = uNtReadVirtualMemoryAddr;
uMyHookedNtReadVirtualMemoryJmpAddr = uNtReadVirtualMemoryAddr + 7;
uNtReadVirtualMemoryAddr_3 = *((ULONG *)(uNtReadVirtualMemoryAddr + 3));
InstallSysServiceHookByIndex(g_SSDTHookNtReadVirtualMemory, SSDTHookNtReadVirtualMemory);
KdPrint(("Pass TP - NtReadVirtualMemory Installed."));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
下面再给出 SSDT Hook
的中继 API 的实现代码:
NTSYSHOOKAPI VOID SSDTHookNtReadVirtualMemory()
if(ValidateCurrentProcessIsDNF() == TRUE)
uTPHookedNtReadVirtualMemoryJmpAddr
uNtReadVirtualMemoryAddr_3
uMyHookedNtReadVirtualMemoryJmpAddr
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
好,到这里就已经干掉了 TP 对
NtReadVirtualMemory 所做的 InLine Hook了,
对此最直白的结果就是用 CE 打开 DNF
游戏过程进行内存扫描,你会发明,On Year,可以正常扫描到 DNF 内存了。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
NtWriteVirtualMemory 中的 InLine Hook:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
上方又干掉了 TP 对
NtReadVirtualMemory 的 InLine Hook 了,从而实现了 CE 读取 DNF
过程的内存。
然则你可以试着用 CE 批改 DNF
过程的内存,你很快就会发明,固然可以扫描内存,然则并不成以读取内存,
而后你也必然可以或许想到,既然有防止读取内存,那必然也有防止写入内存,
而后你又天然会找到
NtWriteVirtualMemory 上来,等你找到 NtWriteVirtualMemory
你又根蒂根基可以或许断定,搞定这个 API
和搞定 NtReadVirtualMemory 应当是差不久不多的,
因为这两个 API
就是一对啊,一个读,一个写,所以 TP 必然也是采取雷同的做法来处理惩罚这两个 API,
当然,你上方的猜想都是正确的,所以咱还是用
SSDT 来干掉 TP 对 NtWriteVirtualMemory 所做的 InLine。
代码和上方的
NtReadVirtualMemory 差不久不多,这里也还是贴出来一下吧,俺先放两幅截图,然后再贴代码出来:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
下面先贴出安装 SSDT
钩子的代码,该代码用来干掉 TP 对 NtWriteVirtualMemory 的 InLine
VOID InstallPassTPNtWriteVirtualMemory()
if(g_SSDTHookNtWriteVirtualMemory & 0)
ULONG uNtWriteVirtualMemoryAddr = oldSysServiceAddr[g_SSDTHookNtWriteVirtualMemory];
uTPHookedNtWriteVirtualMemoryJmpAddr = uNtWriteVirtualMemoryAddr;
uMyHookedNtWriteVirtualMemoryJmpAddr = uNtWriteVirtualMemoryAddr + 7;
uNtWriteVirtualMemoryAddr_3 = *((ULONG *)(uNtWriteVirtualMemoryAddr + 3));
InstallSysServiceHookByIndex(g_SSDTHookNtWriteVirtualMemory, SSDTHookNtWriteVirtualMemory);
KdPrint(("Pass TP - NtWriteVirtualMemory Installed."));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
下面再给出 SSDT Hook
的中继 API 的实现代码:
NTSYSHOOKAPI VOID SSDTHookNtWriteVirtualMemory ()
if(ValidateCurrentProcessIsDNF() == TRUE)
uTPHookedNtWriteVirtualMemoryJmpAddr
uNtWriteVirtualMemoryAddr_3
uMyHookedNtWriteVirtualMemoryJmpAddr
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
好,到这里就已经拿下了 TP 对
NtWriteVirtualMemory 所做的 InLine Hook了,
对此最直白的结果大师也都可以想象获得了,那就是直接用 CE 打开 DNF 游戏过程进行内存批改,
你会发明,此时可以正常批改掉 DNF
游戏的内存了。
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
KiAttachProcess 中的 InLine Hook:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
前面已经干掉 NtOpenProcess 和
NtOpenThread 了,按事理来说,咱可以开端用 OD 来调试 DNF 游戏过程了,
不过你可以用 OD 测验测验附加一下 DNF
的游戏过程,而后你会发明底子附加不上去,这又是为何呢 ?
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
起首须要熟悉打听 Ring3
在何种操纵下,会导致内核调用 KiAttachProcess,
从字面意思上看,就是附加过程,在 Ring3
下的附加过程操纵一般会呈如今调试过程的时辰,
附加过程来进行调试,或者用 Visual Studio 附加过程进行调试,
其实咱猜的没错,就是当附加过程的时辰会导致内核调用 KiAttachProcess,
TP 对这个未导出的 API 进行了
InLine Hook,从而使得 DNF 游戏过程不克不及被附加,
如许的话,咱的 OD
或者 Visual Studio 都是不克不及够附加上 DNF 的游戏过程来进行调试了。
正如前面解析的
NtReadVirtualMemory 和 NtWriteVirtualMemory 这两个 API 一样,
TP 对 KiAttachProcess
也是做的浅层的 InLine Hook,也就是只是 Hook 了函数头 7 个字节,
且 TP 对 KiAttachProcess
的 InLine Hook 也没有检测,所以干掉这个 API 还是斗劲简单的,
不过我们不成以像干掉
NtRead/WriteVirtualMemory 一样用 SSDT Hook 来对抗掉,
因为 KiAttachProcess 并没有在
SSDT 表中,不过我们可以直接恢复 TP 对 KiAttachProcess 的 Hook
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
前面也提到了 KiAttachProcess
是一个未导出的内核 API,
所以我们不克不及应用
MmGetSystemRoutineAddress 来获得它的地址,
不过好在 KeAttachProcess
这是一个导出的内核 API,
(一般 Kixxx 都是未导出的 API,而
Kexxx 则是导出的 API)
在 KeAttachProcess
的内部本质上是调用的 KiAttachProcess 来完成功能的,
所以咱可以经由过程
KeAttachProcess 来定位到 KiAttachProcess 的地址,
并且让人欣喜的是在
KeAttachProcess 中的第一个 call 就是 call KiAttachProcess,
所以搜刮特点码也加倍简单了,直接搜刮第一个
e8 就 OK。
若是用 WinDbg
的话,你可以输几个号令就可以把 KeAttachProcess 的地址打印出来,然则如今咱走点弯路,
在驱动里面用 KdPrint 打印出
KeAttachProcess 的地址,然后我们再解析。
KdPrint(("KeAttachProcess: %x.", MmGetSystemFunAddress(L"KeAttachProcess")));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
好,这里获得了 KeAttachProcess
的地址了,
那么咱就可以在 Kernel
Detective 中来看看 KeAttachProcess 的反汇编代码了,
具体的就看图措辞,俺也就不久不多说了,因为截图里面都明熟悉打听白摆着在哪里,
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://pic-/M0/S750/.jpg" STYLE="border: 0" ALT=""
TITLE="转&过&DNF&TP&驱动保护(二)" />
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
下面给出获取 KiAttachProcess 地址的代码:
ULONG GetKiAttachProcessAddr()
ULONG uCallAddr = 0;
ULONG uKeAttachProcessAddr = 0;
ULONG uKiAttachProcessAddr = 0;
CHAR szCode[1] =
(char)0 xe8
uKeAttachProcessAddr = MmGetSystemFunAddress(L"KeAttachProcess");
uCallAddr = SearchFeature(uKeAttachProcessAddr, szCode, 1);
if (uCallAddr == 0)
uKiAttachProcessAddr = 0;
uKiAttachProcessAddr = *((ULONG *)uCallAddr) + uCallAddr + 4;
return uKiAttachProcessA
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
获得了 KiAttachProcess
的地址,那么下面就要来干掉 KiAttachProcess 了,
为了简单实现,我一开端干掉
KiAttachProcess 的做法是采取的硬编码,
在获得 KiAttachProcess
地址后,可以用 Xuetr 来反汇编这个地址,
从而看到 KiAttachProcess
的反汇编指令,所以我的做法就是,
直接将 Xuetr 中
KiAttachProcess 的头 7 个字节以硬编码的情势保存在数组中,
然后等 TP 启动后,我用保存下来的这 7
个字节直接去恢复 KiAttachProcess 就 OK,
这种体式格式在我的虚拟机 XP 里面是 OK
的,因为我就是从这台 XP 上获取的 7 个字节的硬编码,
然则在此外 XP 体系上就不 OK 了,原因是
KiAttachProcess 头 7 个字节并不是所有的 XP 都雷同的,
直接拿不一致的硬编码去恢复必然是会 BSOD
的,不过后来我用了一种简单的办法就干掉这个题目了,
办法很简单,在 TP 启动之前,我动态去读取
KiAttachProcess 的头 7 个字节,并且保存在数组中,
等 TP 启动后,我就用数组中的这 7
个字节去恢复 TP 对 KiAttachProcess 所做的 InLine Hook。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
实现的具体代码很简单,下面也贴出来:
先在 TP 启动之前保存
KiAttachProcess 的头 7 个字节:
PUCHAR pKiAttachProcessAddr = NULL;
pKiAttachProcessAddr = (PUCHAR)GetKiAttachProcessAddr();
KdPrint(("KiAttachProcess: %x.", uKiAttachProcessAddr));
for(uIndex = 0; uIndex & API_HOOK_HEADER_LEN; uIndex++)
szKiAttachProcessOriginCode[uIndex] = pKiAttachProcessAddr[uIndex];
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
TP 启动之后恢复被 TP 批改掉的
KiAttachProcess 的头 7 个字节:
VOID RecoveryTPHookedKiAttachProcess()
ULONG uIndex = 0;
ULONG uOldAttr = 0;
KIRQL kOldIRQL = PASSIVE_LEVEL;
PUCHAR pKiAttachProcessAddr = NULL;
pKiAttachProcessAddr = (PUCHAR)GetKiAttachProcessAddr();
EnableWriteProtect(&uOldAttr);
kOldIRQL = KeRaiseIrqlToDpcLevel();
for(uIndex = 0; uIndex & API_HOOK_HEADER_LEN; uIndex++)
pKiAttachProcessAddr[uIndex] = szKiAttachProcessOriginCode[uIndex];
KeLowerIrql(kOldIRQL);
DisableWriteProtect(uOldAttr);
KdPrint(("Pass TP - KiAttachProcess Installed."));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
到这里,我们又把
KiAttachProcess 给搞定了,所以此时咱可以用 OD 来附加 DNF 游戏过程尝尝看了,
此时你会发明咱可以将 OD
附加上去了,不过可惜的是,就算附加上去了,离应用 OD 来调试 DNF 还远着呢,
因为 TP 对 DNF
游戏过程还有其他的保护办法,它在内核里面 Hook 的 API 可不止这么点哦。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
《过 DNF TP
驱动保护》的第二篇到这里就停止了,经过上方的处理惩罚,
我们已经过掉了 TP 所做 InLine
Hook 的 5 个 API 了,
起首是 NtOpenProcess 和
NtOpenThread 的深层 InLine Hook,
然后是 SSDT 体系办事函数
NtReadVirtualMemory 和 NtWriteVirtualMemory 的浅层次 InLine
最后我们也干掉了 TP 对未导出内核函数
KiAttachProcess 所做的浅层次 InLine Hook。
固然也干掉了不少 TP 在内核中 Hook 的
API 了,然则这离过 DNF TP 驱动保护还斗劲远的,
详情还得留到下回分化了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 dnf转职书没有了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信