第十五章 剖析网络验证的机制

剖析网络验证的机制
目前网络验证较多运用在外挂或者大型的商业软件上,我们今天主要是通过理论来讲解如何对应破解相应的网络验证
 
 
绑机【绑定机器特征】
 
发现\\.\PhysicalDrive%d通常为绑定机器模式
此模式我们可以采取相应的PATCH机器码的形式进行破解,破解方法首先就采用查找到程序的入口点,找到读取机器码的段,然后相应的修改机器码,从而达到破解的目的
注意此方法必须要有一个相应的正式版帐号,然后对于部分会检测是否同时在线的外挂,我们可以采取针对其相应的错误提示,采取对应的办法解决,这种情况通常作者们都会采取退出的形式进行拦截,此时我们也只需要采取拦截退出的形式进行反跟踪
 
 
 
绑号【绑定游戏帐号】
 
绑号机制通常会从网络上读取返回封包信息,此时读取的封包信息是存放于内存的
此时我们可以使用CE进行查找他已经绑定了帐号的封包或者查找已经被绑定的帐号
绑号的程序通常是由DLL读取EXE的内存值进行判断,所以我们只需要在EXE里修改成正确的帐号信息即可解决
 
 
 
特征码加密,对帐号机器都无特殊的绑定
 
特征码加密形式,我们通常可以采取捕获特征码并固定特征码的形式进行破解
此方法可以内存PATCH也可以在程序中进行代码的汇编,还可以进行HOOK
从而达到我们本地验证的目的
 
 
绑IP【所针对的是大型工作室】
 
绑IP形式通常是针对大型的脱机外挂时使用,此方法较为罕见
通常是针对程序内部读取IP,大多时候客户手里还会有一个特殊的管理端
必须要开启后,让客户端与管理端与验证端三点一线的通信
通常这种情况就需要模拟管理端的通信协议进行破解
 
 
 
 
 
 
 
 
 
 
 
 
                           网络验证相关知识
 
网络验证通常调用SEND进行发包
使用RECV进行收包
 
当我们在找不到程序的关键时,我们可以采用CTRL+g查找send找到封包发送的时机,那么也就可以判断得出结果是在什么位置,也可以查找recv去找到收包的关键,这样也就可以避免开程序的按钮事件无法跟踪等情况的出现
 
通常在破解时,RECV段,如果只是单句封包发送的话,可以在RECV段进行返回值模拟
 
定位IP的函数Connect
 
 
拦截的函数  socket ,bind ,listen ,accept ,AcceptEx ,WSAAccept ,connect ,send ,WSASend ,recv ,WSARecv ,WSARecvEx ,closesocket
 
 
 
 A验证时调用点  =B
 B点的返回值影响到A点的跳转
 此时我们可以在B点的返回值的段首段进行 1 或者 0的赋值
 
就是控制EAX的值去影响被VM掉的跳转
 
微软的程序编译出来通常是上段接下段
 
 
A段,就是按钮事件
B段,就会是验证事件
C段,就是功能事件
 
 
什么叫假设的特定值,其实也就是这样一段代码
 
首先JE是否为0
如果JE不为0
那么 MOV EAX,100
JMP 跳向RETN
RETN出来之后
CMP EAX,100
JNZ 跳转即不实现
如果JNZ跳转实现
那么也就可以影响到退出或者信息框或者标签事件
 
 
 
 

猜你喜欢

转载自blog.csdn.net/zang141588761/article/details/81049437
今日推荐