-
-
非新闻帖
-
发表于: 2013-2-7 12:09 1272
-
我感觉与什么模拟键盘鼠标没有关联下面我来介绍一些反外挂方法以及解决方法
主动防御:
取得外挂内存特征 进程名称 外挂标题以及外挂的窗口类名外挂向游戏注入DLL的名称外挂对游戏产生的钩子~判断有关游戏用到的系统DLL是否被修改
NP注入保护法
他的反外挂方式就是向我们每个进程插入一个DLL 用DLL来判断里面的代码是否危及到游戏~
解决方法就是向我们自己的外挂安装一个DLLHOOK使他的DLL无法插入我们的进程以得到保护
标题保护法
游戏判断每个窗口的标题是否附带他规定的关键字眼如果带则判断为外挂
解决方法就是自定一个算法在外挂每次启动时随机标题
注入保护法
游戏判断外挂向游戏注入的进程名称~ 这点没必要去修改名称直接在DLL内隐藏进程既可
类名保护法
现在很多游戏的反外挂已经涉及到对外挂的窗口类名进行判断~例如魔兽就是~只要你的程序窗口类名涉及到他规定的关键字就为外挂不管你是不是 这就是大家常见的没有开外挂也被封
内存特征保护法
游戏的反外挂会取得你的内存特征(就像杀毒软件取得病毒关键代码一样)
解决方法很多 提升你的进程权限使他无法察看你的外挂内存~ 加花到你的关键内存特征处使游戏判断失误 等等....
进程名称
这个就很常见了..比如你开起一个名为 "外挂.exe" 那没得说了肯定就封
解决方法就是将他改位系统进程名称 svchost.exe 或者瑞星 Rising.exe 其他的也可以~(我就用Rising.exe 哈哈
系统DLL判断法
有时候对于游戏的反外挂你要修改系统的一些DLL才可以~~所以游戏就会判断这个DLL是否被修改~从而达到反外挂
这个我还没有什么解决方法 ~他的判断方式很多 大小 CRC 一系列的
被动防御:
游戏运行时开启APIHOOK 拦截API信息使API执行无效~ 保护游戏内存使其无法被调试或被调试则出错
有关反APIHOOK
本节要介绍如何反APIHOOK的原理与实现。
游戏使用了驱动拦截进程的创建,为每个进程都加入一个DLL文件。这个DLL里会对当前进程中大量的关健API进行HOOK处理。一旦发现该进程调用的API有危害及游戏的进程时就会进行过滤处理。原理上与上节的全局钩子+APIHOOK实现的进程保护差不多。
也就是说APIHOOK就是过滤我们对一些特殊的关健API调用。
为了能实现反APIHOOK功能,我们有必要对APIHOOK这个实现原理有由了解
什么是APIHOOK?
通过某些手段能够控制住目标进程对某些API功能的调用,我们称为APIHOOK
APIHOOK有哪些方式?
常见的HOOK API调用的实现方式有两种。
一种是找到该API在内存的入口地址,修改其入口前八字节数据为了一汇编的 jmp xxxxxxxx 无条件跳转指令,使其调用该API时会跳到指定的另一处函数入口处,即与这个API有着相同的参数与返回值的回调处理程序
第二种是在进程的输入表(IAT表)找到保存在这里的要调用的那个API地址,修改这个地址,使程序在输入表里找该API地址时取的是我们修改后的回调程序入口地址。
上面的两种方式,其实第二种不必去考滤,因为程序要调用某个API可以不通过输入表。第一种修改入口前八字节才是最重要的,因为只要程序要调用这个API,必然得从它的入口地址进入。
解决方法
在进程创建时就先把一些关健的将要使用的API入口处八字节数据读出保存,然后在每次要调用这些API时,把这原保存的八字节数据都写回去。这样一来,游戏对我们的API入口处拦截就失败了。
但有一点需要注意的,我们的程序必需得在游戏之前运行才可以。如果游戏以我们之前已经运行了的话,就晚了,那时你保存下来的八字节数据早就被游戏动过手脚了的。而且,对于这种被修改过的数据你保存下来后,若该游戏结束运行了时,你还去恢复API入口并调用这些API的话,会出现非法操作的。
游戏内存保护法
提升进程权限使得外挂无法编辑游戏的内存以达到反外挂
或者是你修改了他的内存就报错
这个地解决方法就是利用底层技术(这个我就不详细介绍了,考虑到游戏的平衡)
主动防御:
取得外挂内存特征 进程名称 外挂标题以及外挂的窗口类名外挂向游戏注入DLL的名称外挂对游戏产生的钩子~判断有关游戏用到的系统DLL是否被修改
NP注入保护法
他的反外挂方式就是向我们每个进程插入一个DLL 用DLL来判断里面的代码是否危及到游戏~
解决方法就是向我们自己的外挂安装一个DLLHOOK使他的DLL无法插入我们的进程以得到保护
标题保护法
游戏判断每个窗口的标题是否附带他规定的关键字眼如果带则判断为外挂
解决方法就是自定一个算法在外挂每次启动时随机标题
注入保护法
游戏判断外挂向游戏注入的进程名称~ 这点没必要去修改名称直接在DLL内隐藏进程既可
类名保护法
现在很多游戏的反外挂已经涉及到对外挂的窗口类名进行判断~例如魔兽就是~只要你的程序窗口类名涉及到他规定的关键字就为外挂不管你是不是 这就是大家常见的没有开外挂也被封
内存特征保护法
游戏的反外挂会取得你的内存特征(就像杀毒软件取得病毒关键代码一样)
解决方法很多 提升你的进程权限使他无法察看你的外挂内存~ 加花到你的关键内存特征处使游戏判断失误 等等....
进程名称
这个就很常见了..比如你开起一个名为 "外挂.exe" 那没得说了肯定就封
解决方法就是将他改位系统进程名称 svchost.exe 或者瑞星 Rising.exe 其他的也可以~(我就用Rising.exe 哈哈
系统DLL判断法
有时候对于游戏的反外挂你要修改系统的一些DLL才可以~~所以游戏就会判断这个DLL是否被修改~从而达到反外挂
这个我还没有什么解决方法 ~他的判断方式很多 大小 CRC 一系列的
被动防御:
游戏运行时开启APIHOOK 拦截API信息使API执行无效~ 保护游戏内存使其无法被调试或被调试则出错
有关反APIHOOK
本节要介绍如何反APIHOOK的原理与实现。
游戏使用了驱动拦截进程的创建,为每个进程都加入一个DLL文件。这个DLL里会对当前进程中大量的关健API进行HOOK处理。一旦发现该进程调用的API有危害及游戏的进程时就会进行过滤处理。原理上与上节的全局钩子+APIHOOK实现的进程保护差不多。
也就是说APIHOOK就是过滤我们对一些特殊的关健API调用。
为了能实现反APIHOOK功能,我们有必要对APIHOOK这个实现原理有由了解
什么是APIHOOK?
通过某些手段能够控制住目标进程对某些API功能的调用,我们称为APIHOOK
APIHOOK有哪些方式?
常见的HOOK API调用的实现方式有两种。
一种是找到该API在内存的入口地址,修改其入口前八字节数据为了一汇编的 jmp xxxxxxxx 无条件跳转指令,使其调用该API时会跳到指定的另一处函数入口处,即与这个API有着相同的参数与返回值的回调处理程序
第二种是在进程的输入表(IAT表)找到保存在这里的要调用的那个API地址,修改这个地址,使程序在输入表里找该API地址时取的是我们修改后的回调程序入口地址。
上面的两种方式,其实第二种不必去考滤,因为程序要调用某个API可以不通过输入表。第一种修改入口前八字节才是最重要的,因为只要程序要调用这个API,必然得从它的入口地址进入。
解决方法
在进程创建时就先把一些关健的将要使用的API入口处八字节数据读出保存,然后在每次要调用这些API时,把这原保存的八字节数据都写回去。这样一来,游戏对我们的API入口处拦截就失败了。
但有一点需要注意的,我们的程序必需得在游戏之前运行才可以。如果游戏以我们之前已经运行了的话,就晚了,那时你保存下来的八字节数据早就被游戏动过手脚了的。而且,对于这种被修改过的数据你保存下来后,若该游戏结束运行了时,你还去恢复API入口并调用这些API的话,会出现非法操作的。
游戏内存保护法
提升进程权限使得外挂无法编辑游戏的内存以达到反外挂
或者是你修改了他的内存就报错
这个地解决方法就是利用底层技术(这个我就不详细介绍了,考虑到游戏的平衡)
赞赏
看原图
赞赏
雪币:
留言: