首先调试方法还是穷人首选的VEH
.常量 全局钩子1,“26FEE50”,, 星月已更新127个
说这个功能检测先说一下以前的故事
13年的时候,我们管检测叫作VM,为什么这么叫我也不是很懂。
通常在一个功能地址的附近都有一个这样的地址
02XXXXXX call 1xxxxxxx
用大神的话讲这里被VM了多少多少个字节,找到还原就是过掉了这个VM
雷少教我的方法是在这个call的上面和下面下一个段,对比寄存器和堆栈发生的变化,然后自己模拟出还原的汇编代码
最常见的还原就是
push ebp
mov ebp,esp
push -1
不知道有没有写反,总之刚好五个字节 一般不懂的小白都是直接复制这几个字节还原,不然就是RET NOP
还原这里的VM属于比较粗暴 因为DNF就无法进行检测了,和RET NOP不同的就是不会崩溃了都不知道怎么回事,但能不能稳定你自己心里都有B数
我对检测这个东西有比较充分的认识是在荒野行动出了没多久的时候,我也去玩了一下
简单的三个功能 全局加速 遁地和上色,都是改数值实现的功能,我说下全局加速吧
搜索双浮点1000得到几个绿色的基址 其中一个就是加速的地址 添加到地址栏对它进行访问
会出来两个扫描,其中一个就是在检测这个加速地址是否是1000正常值
没错,检测最根本的工作就是检测数值是否被更改 字节是否被更改这属于简单的检测,知道了它的检测原理处理它就简单了
首先我们申请一个地址写入1000的双浮点数据,然后替换了检测在对比的地址就可以PASS掉检测了。
dnf的检测我也是从荒野行动那找来的灵感,3月份找肥猫大神买下段驱动时他教的xor eax,eax 我感觉我被他带了弯路
不过我发的石头检测处理视频他认可了我 我也挺高兴的。
ok,开始进入正题
上游戏先处理一下VEH调试,然后开ce转到26FEE50钩子地址
dnf.exe+22FEE50 - 55 - push ebp
dnf.exe+22FEE51 - 8B EC - mov ebp,esp
dnf.exe+22FEE53 - 6A FF - push -01 { 255 }
dnf.exe+22FEE55 - 68 70C11804 - push dnf.exe+3D8C170 { [0824548B] }
dnf.exe+22FEE5A - E8 5675A610 - call TenRPCS.dll+2863B5
把这里改成ret即可实现全屏钩子效果,我们先别急着改 先F5下一个段
然后对着空气A一下,果断断了下来 ,下面很明显有一个call TenRPCS.dll的地址
就是以前说的VM 我们F7跟进去,
TenRPCS.dll+84943 - FF D2 - call edx
跟到了这里 这里的edx就是即将进入的检测入口 我们进去
GameRpcs.dll+18DAF0 - 55 - push ebp
然后运行 我们再ret了钩子地址
dnf.exe+22FEE50 - C3 - ret
也是下段 对着空气A一下,因为是ret所以它不会进入下面那个call TenRPCS.dll+2863B5了
那么他会去哪呢?F7跟。。。。。。。
dnf.exe+2419698 - E8 56CB9410 - call TenRPCS.dll+2861F3
ret之后它来到了这里 我们进去看下
GameRpcs.dll+18D5C0 - 55 - push ebp
很明显和刚刚进入的入口不一样,这里可以有很多种办法过检测,可以去分析GameRpcs.dll+18D5C0这个检测
分析检测是个比较头疼的事情,我这里是选择HOOK TenRPCS
就是这个地方TenRPCS.dll+84943 - FF D2 - call edx
GameRpcs.dll+18D5C0 - 55 - push ebp 这个是我们实现了全屏钩子效果的检测地址 可以理解为 要打人,但是打错人了的意思
GameRpcs.dll+18DAF0 - 55 - push ebp 而这里就是我们正确的或者说正常要去的地方
那么hook就是 先申请个地址
0A060000 - 00 00 - add [eax],al
TenRPCS.dll+84943 - FF D2 - call edx
TenRPCS.dll+84945 - 83 C4 2C - add esp,2C { 44 }
TenRPCS.dll+84948 - 89 75 FC - mov [ebp-04],esi
这里做跳转
我们先判断edx是否为GameRpcs.dll+18D5C0这个错误的地址
0A060000 - 81 FA C0D55414 - cmp edx,GameRpcs.dll+18D5C0 { [81EC8B55] }
然后留两个字节做je短跳
先在0A060008开始写好不等于的代码
0A060008 - FF D2 - call edx//hook处字节
0A06000A - 83 C4 2C - add esp,2C { 44 }//hook处字节
0A06000D - E9 3649F008 - jmp TenRPCS.dll+84948 //跳转回去
0A060006 - 74 08 - je 0A060012
再让留的两个字节跳到下面来处理判断=真的代码, 我这里没说标志位不要觉得low,小白比较好理解
如果真 我们就mov 正确的给edx,然后再跳到上面继续执行
0A060012 - BA F0DA5414 - mov edx,GameRpcs.dll+18DAF0 { [83EC8B55] }
0A060017 - EB EF - jmp 0A060008
最后
TenRPCS.dll+84943 - E9 B8B60FF7 - jmp 0A060000
可以看图 没有崩溃
讲解完毕
没有QQ 没有群 要关注我就B站搜索 轻飘飘7 关注吧
「艾尔登法环」梅琳娜手办开订 立体手办▪
万代「艾尔登法环」白狼战鬼手办开订 立体手办▪
「夏目友人帐」猫咪老师粘土人开订 立体手办▪
「五等分的新娘∬」中野三玖·白无垢版手办开订 立体手办▪
「海贼王」乌索普Q版手办开订 立体手办▪
良笑社「初音未来」新手办开订 立体手办▪
「黑岩射手DAWN FALL」死亡主宰手办开订 立体手办▪
「盾之勇者成名录」菲洛手办登场 立体手办▪
「魔法少女小圆」美树沙耶香手办开订 立体手办▪
「咒术回战」七海建人粘土人登场 立体手办▪
「五等分的新娘」中野二乃白无垢手办开订 立体手办▪
「为美好的世界献上祝福!」芸芸粘土人开订 立体手办▪
「公主连结 与你重逢」六星可可萝手办开订 立体手办▪
「女神异闻录5」Joker雨宫莲手办开订 立体手办▪
「间谍过家家」约尔・福杰粘土人登场 立体手办▪
「街角魔族 2丁目」吉田优子手办开订 立体手办▪
「火影忍者 疾风传」旗木卡卡西·暗部版粘土人登场 立体手办▪
「佐佐木与宫野」宫野由美粘土人开订 立体手办▪
「盾之勇者成名录」第2季拉芙塔莉雅手办开订 立体手办▪
「咒术回战」两面宿傩Q版坐姿手办开订 立体手办▪
「DATE·A·BULLET」时崎狂三手办开订 立体手办▪
「狂赌之渊××」早乙女芽亚里粘土人开订 立体手办▪
「魔道祖师」魏无羨粘土人开订 立体手办▪
「新·奥特曼」奥特曼手办现已开订 立体手办▪