奇迹一大革新,实现动态修改和加密验证码地址,绝对是最有效的反外挂方式。
现在对奇迹的反外挂的认识几乎都进入了误区,只想着怎么在服务端加些验证机制反外挂,常常造成玩家正常登陆困难等一些负面影响。
目前破解内存改验证码登陆器的方法是用WinHex到0x00554668把验证码读出来,然后修改个main.exe文件用外挂。
我发现这个验证的地址完全可以修改,并且可以加密。
看main.exe文件反汇编代码的这一段:
::0051B68C:: 8A8E 68465500 MOV CL,[ESI+554668]
::0051B692:: 25 FFFF0000 AND EAX,FFFF
::0051B697:: 8D50 01 LEA EDX,[EAX+1]
::0051B69A:: 81FA 00040000 CMP EDX,400
::0051B6A0:: 0F8F DB000000 JG 0051B781
0051B68E存放的就是验证地址,看到这里明白的人一定想到可以把验证码地址改到别处,这样用老的方法就读不出验证码了。
更爽的是可以插入一段代码把验证码的地址加密。记住,是加密验证码地址,而不是验证码,至于加密的强度看各人的能耐了。
我现在提供我做好的Dll文件,实现了动态修改验证码地址,未加密,加密的等偶有时间了再做。
有能力的看到了自己做的试试。
下面这个dll是在上次我放出的直接实现奇迹窗口化的dll的基础上增加了现在的动态修改验证码地址的功能。
http://mu.sjkmu.com/Download/FlowerHook.rar
调用说明:
--------------
BOOL InitGame(HANDLE hGameProcess, char *pClientExeSerial, char *pClientExeVersion, LPVOID lpSerialAddress, BOOL bEnableWindow);
hGameProcess:奇迹游戏进程句柄。
pClientExeSerial:验证码字符串,如:SK47B4T4268aITyl
pClientExeVersion:版本号字符串,如:09702,既0.97.02
lpSerialAddress:将要存放验证码的地址,随便找个空位就行了,我填的是5584188
bEnableWindow:是否窗口化
同时此功能在FlowerMu 2.2中实现
FlowerServer:
http://mu.sjkmu.com/Download/FlowerServer.rar
FlowerLogin:
http://mu.sjkmu.com/Download/FlowerLogin.rar
在配置文件Config.ini中设置验证码地址,可以随时修改。
SerialAddr=5584188