纯技术研究,所以不提供任何工具下载
有问题可以发邮件到happyboy0941@163.com
顺便说下作弊对游戏技术提高没任何好处
首先下载vs,现在的版本是2.76
用peid 查壳 UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
upx的壳 用广义esp定律很容易找到oep的,或者用工具脱壳,这里就不多说了(我是用工具的)
脱好壳的vs我现在起名为 VSClient_mod.exe
注意原来的VSClient.exe不要删掉,他会验证此exe是否改动,我们扔那不管好了。
运行VSClient_mod.exe,OK运行成功。
正常情况下,挤一个人满的房间会出现一个对话框,告诉你房间已经满了,短时间再次挤,会再次弹出一个MessageBox,
让你稍后。。
好了,用od加载vs,用插件隐藏od,因为VS有anti-debug
bp MessageBoxA,为了先找到稍后的那个警告框,ok连续手动挤一个人满房间,进断点
ctrl+f9往上翻,到如下代码
004BF6C5 . /75 11 jnz short 004BF6D8
004BF6C7 . |57 push edi
004BF6C8 . |57 push edi
004BF6C9 . |68 38CC5300 push 0053CC38 ; ASCII "请稍后再试"
004BF6CE . |E8 75730300 call <jmp.&MFC42.#AfxMessageBox_1200>
004BF6D3 . |E9 72030000 jmp 004BFA4A
004BF6D8 > /8D9E DC040000 lea ebx, dword ptr [esi+4DC]
把004BF6C5 处的jnz改为jmp,过掉
往下翻代码,到如下(第一次对话框)
004BF852 . E8 11730300 call <jmp.&MFC42.#operator+_924>
004BF857 . 8D8D D8FEFFFF lea ecx, dword ptr [ebp-128]
004BF85D . E8 023BF4FF call 00403364
004BF862 . 8D4D E0 lea ecx, dword ptr [ebp-20]
004BF865 . C645 FC 07 mov byte ptr [ebp-4], 7
004BF869 . E8 686E0300 call <jmp.&MFC42.#CString::~CString_800>
004BF86E . 8D8D D8FEFFFF lea ecx, dword ptr [ebp-128]
004BF874 . E8 D5710300 call <jmp.&MFC42.#CDialog::DoModal_2514>
将004BF874 行nop掉
好了,进房间没有任何限制了。
挤房间有两种方法,第一种内部汇编跳转。
第二种 比较简单,找到选择条, 模拟发送lbuttondown的消息,这种很简单。