一键打卡 每日打卡 龙鳞魔堡 金豆锻造 荣誉胸章 海底寻宝 非诚勿扰 虚拟刮奖 杂货道具 好友印象 心情随笔 中华银行 家族部落 积分兑换 图片上传 图片压缩 在线翻译 在线查毒
发表新帖 回帖
No.201611
👦 632307153
  

给开冒险岛私服的老板看的,反外挂的原理

中华游戏网 cnyouw写于:中华游戏网-CNYOUW 👦会员:632307153 🕘时间:2011-01-29 19:59 👀围观:18098人 💬回复:13
给开私服的老板看的,反外挂的原理(转来的.......)0 eu!B ,  
反外挂的原理 s;oDwT1  
我感觉与什么模拟键盘鼠标没有关联下面我来介绍一些反外挂方法以及解决方法 D)C^'/8q  
Ay?;0w0  
主动防御: Glz)-hjJ:n  
取得外挂内存特征 进程名称 外挂标题以及外挂的窗口类名外挂向游戏注入DLL的名称外挂对游戏产生的钩子~判断有关游戏用到的系统DLL是否被修改 e}|UVoeH  
[I/f(GK  
NP注入保护法 {#>>dILPr  
jSMvZJX3n  
他的反外挂方式就是向我们每个进程插入一个DLL 用DLL来判断里面的代码是否危及到游戏~ @C[]o.r  
OsS5WY0H  
解决方法就是向我们自己的外挂安装一个DLLHOOK使他的DLL无法插入我们的进程以得到保护 Rou$`<{H  
r!Ujy .R  
标题保护法 J:6wFmU  
8r"$o1!  
游戏判断每个窗口的标题是否附带他规定的关键字眼如果带则判断为外挂 76e%&ZG)Q  
#1-y[w/  
解决方法就是自定一个算法在外挂每次启动时随机标题  P%#WeQ+  
j ys1Ki  
注入保护法 Pl|e?Np  
aXi5~,Ks_  
游戏判断外挂向游戏注入的进程名称~ 这点没必要去修改名称直接在DLL内隐藏进程既可 ;O7CahdF  
O'tVZ!C#J  
类名保护法 TR2X' `:O  
Nb.AsIR^  
现在很多游戏的反外挂已经涉及到对外挂的窗口类名进行判断~例如魔兽就是~只要你的程序窗口类名涉及到他规定的关键字就为外挂不管你是不是 这就是大家常见的没有开外挂也被封 "#7~}Z B  
 t~mbe  
内存特征保护法 "4W@p'  
lwS6"2q  
游戏的反外挂会取得你的内存特征(就像杀毒软件取得病毒关键代码一样) Oc\Bu6F  
解决方法很多 提升你的进程权限使他无法察看你的外挂内存~ 加花到你的关键内存特征处使游戏判断失误 等等.... k-5Enbkr  
"[ f"h  
进程名称 y$6m|5  
32DT]{-N!  
这个就很常见了..比如你开起一个名为 "外挂.exe" 那没得说了肯定就封 )$18a  
29:1crzx~  
解决方法就是将他改位系统进程名称 svchost.exe 或者瑞星 Rising.exe 其他的也可以~(我就用Rising.exe 哈哈 AhjK*nJF  
_`6fGu& W  
系统DLL判断法 5Ym/'eT  
O{b.-<  
有时候对于游戏的反外挂你要修改系统的一些DLL才可以~~所以游戏就会判断这个DLL是否被修改~从而达到反外挂 *}BaO*A  
JNY;;9o  
这个我还没有什么解决方法 ~他的判断方式很多 大小 CRC 一系列的 QwaCaYoh  
i3C5"\y  
K9JW&5Q  
被动防御: 34Q;& z\e  
游戏运行时开启APIHOOK 拦截API信息使API执行无效~ 保护游戏内存使其无法被调试或被调试则出错 r{DR$jD  
K$>C*?R  
有关反APIHOOK `[T|Ck5  
N>, `l  
3yNILj  
本节要介绍如何反APIHOOK的原理与实现。 QWt ?` h=  
8r7}6  
游戏使用了驱动拦截进程的创建,为每个进程都加入一个DLL文件。这个DLL里会对当前进程中大量的关健API进行HOOK处理。一旦发现该进程调用的API有危害及游戏的进程时就会进行过滤处理。原理上与上节的全局钩子+APIHOOK实现的进程保护差不多。 R@lmX%Z1  
\ ;.W;!*  
也就是说APIHOOK就是过滤我们对一些特殊的关健API调用。 =`VA_xVu  
UhQsT^b_  
为了能实现反APIHOOK功能,我们有必要对APIHOOK这个实现原理有由了解 K-D{Z7J^l  
wc #+ Yh6  
什么是APIHOOK? \i Ylh HD  
#vk-zx*v7=  
通过某些手段能够控制住目标进程对某些API功能的调用,我们称为APIHOOK dz^l6<a"n  
B>kx$_~  
APIHOOK有哪些方式? }9n{E-bj*  
HsA4NRF'7  
常见的HOOK API调用的实现方式有两种。 tvNh@it:F  
F8e]sa$K\  
一种是找到该API在内存的入口地址,修改其入口前八字节数据为了一汇编的 jmp xxxxxxxx 无条件跳转指令,使其调用该API时会跳到指定的另一处函数入口处,即与这个API有着相同的参数与返回值的回调处理程序 H|a9};pO\  
^[]G sF  
nCMv&{~  
g\sW2qXEw  
第二种是在进程的输入表(IAT表)找到保存在这里的要调用的那个API地址,修改这个地址,使程序在输入表里找该API地址时取的是我们修改后的回调程序入口地址。 QbGc 9MM  
q}-q[p? 5  
6=V&3|"  
SM>V o+  
上面的两种方式,其实第二种不必去考滤,因为程序要调用某个API可以不通过输入表。第一种修改入口前八字节才是最重要的,因为只要程序要调用这个API,必然得从它的入口地址进入。 Jt4&%b-T  
{XC1B  
解决方法 j3j<01rq  
;6op|O  
在进程创建时就先把一些关健的将要使用的API入口处八字节数据读出保存,然后在每次要调用这些API时,把这原保存的八字节数据都写回去。这样一来,游戏对我们的API入口处拦截就失败了。 v7rEU S-  
4] c.mDo[T  
但有一点需要注意的,我们的程序必需得在游戏之前运行才可以。如果游戏以我们之前已经运行了的话,就晚了,那时你保存下来的八字节数据早就被游戏动过手脚了的。而且,对于这种被修改过的数据你保存下来后,若该游戏结束运行了时,你还去恢复API入口并调用这些API的话,会出现非法操作的。 W/*2I3a  
DDdMWH^o7  
游戏内存保护法 D{h sa  
dP8b\H  
提升进程权限使得外挂无法编辑游戏的内存以达到反外挂 9 *>@s  
QR'yZ45n4  
或者是你修改了他的内存就报错 ~*-(_<FH  
z[kz [  
这个地解决方法就是利用底层技术      (此在网上转来) L_fu<W  
:W'Yt9v)  
更多交流请加QQ群:3034161 @ 2r9JqR[=  
中华游戏网 cnyouw
No.353005
👦 ximximqqq
  
是什么来的啊
CNYOUW.CNSIGNATURE
中华游戏网 — 玩你所玩,乐你所乐!cnyouw.cn
No.105070
👦 瑾々轩
  
完全看不懂...
CNYOUW.CNSIGNATURE
中华游戏网 — 玩你所玩,乐你所乐!cnyouw.cn
No.201611
👦 632307153
  
好贴不能沉!自己来顶一顶
No.255595
👦 冚家产
  
LZ的贴好深奥
CNYOUW.CNSIGNATURE
中华游戏网 — 玩你所玩,乐你所乐!cnyouw.cn
No.187234
👦 lvyuan520
  
好贴啊不能沉 帮你顶一顶!
CNYOUW.CNSIGNATURE
哇咔咔~~~哇
No.346209
👦 susan丶
  
没兴趣。。。。。。
CNYOUW.CNSIGNATURE
I wish I had your pair of wings
Just like last night in my dreams
No.67713
👹 真的无聊
  
看不懂没用
CNYOUW.CNSIGNATURE
中华游戏网 — 玩你所玩,乐你所乐!cnyouw.cn
No.395745
👹 ginalks
  
不错。就是看不懂
CNYOUW.CNSIGNATURE
中华游戏网 — 玩你所玩,乐你所乐!cnyouw.cn
No.401215
👹 qsqwffdd
  
需然我不是开冒险岛私服的老板不过也来学习学习
CNYOUW.CNSIGNATURE
旋转
快速回复
验证问题:
在大明湖畔等皇上的是谁? 正确答案:

Ctrl + Enter 快速发布

🤪为防止个别捣乱会员恶意灌水
注册会员发帖量达到 20
即可解锁快捷表情发送