终于三个工具都出了正式版而来,兴奋!不过也好累,有程序啃得时候一点都不觉得累,两餐不吃饭都不觉得饿,今天下午跟同学去打桌球放松了一下,顿然感到体力透支,瞄着球就想睡觉(不过还是连虐他五局,嘻嘻),真累呀~
真没时间了,必须潜水去,只要VS不进行大规模更新,此工具能一直有效...
==================================================================================
原理简要说明:
VS检测作弊肯定不会放在主线程,既然是另开线程,那就好办的多,用procexp等工具查看一下VS的线程信息(用HideToolz隐藏,不然会被关闭),通过观察找到入手点,找到线程启动地址以后,分析就好办的多了...
Sleep掉VS反作弊模块的线程,在线程中间函数(VS 3.12 地址:0x0045f640 VS3.0 地址:0x0045f782)处HOOK,判断传入地址,如果为检测反作弊的函数地址则 while(1) Sleep(10000);,作用一看就明白了,线程不能retn ,不然VS会退出...
至于哪些函数是检测作弊的,这个也容易找到,搜索字符串“作弊”,搜索ReadProcessMemory,还有因为通过线程中间函数启动的只有12个线程,先HOOK一下,得到这12个函数入口地址,缩小范围在这12个函数里面找...
还有说明一下:有一个线程不能简单Sleep,不然启动魔兽1分钟左右就会掉线,所以只能在这个函数中nop掉调用检测函数的代码...
VS 3.12
0040139D
004016DB
004030F8
00401807
004031A2
004047C3
004039C2
上面7个函数Sleep掉
入口地址为0404B3D的函数,在0045B4D6处NOP五个字节
VS3.0
004016CC
004017F3
00401389
00403125
004047DC
004031CF
004039E5
上面7个函数Sleep掉
入口地址为00404B5B的函数,在0045B618出NOP五个字节
=======================================潜水分割线================================
把原理交待了我就可以安心潜水了,上面虽然是简要说明,但是只要是研究过VS反作弊的朋友一眼就能看懂,只要VS小规模更新,稍微改下代码就行了...
只是希望继续破解之路的朋友能免费下去,也不多说了,每个人的出发点不一样毕竟...
顺便说一下,我喜欢用OD直接在内存上写汇编代码(OD的汇编功能非常强大),写好后再拷贝出16进制数值,用程序WriteProcessMemory写进去,这样方便感觉很舒服... 顺便贴一下我写的汇编代码,很简单的几行...
以VS3.12为例:
0045F640 /. 55 push ebp
0045F641 |. 8BEC mov ebp, esp
0045F643 |. 51 push ecx
0045F644 |. 51 push ecx
0045F645 |. 6A 08 push 8 ; /n = 8
0045F647 |. 8D45 F8 lea eax, dword ptr [ebp-8] ; |
入口处JMP走 改为:
0045F640 ^/E9 B3FCFFFF jmp 0045F2F8
0045F645 6A 08 push 8
0045F2F6 CC int3
0045F2F7 CC int3
0045F2F8 8B5C24 04 mov ebx, dword ptr [esp+4]
0045F2FC 8B03 mov eax, dword ptr [ebx]
0045F2FE 3D 9D134000 cmp eax, 0040139D ;比较函数地址 是 就 JMP到Sleep处
0045F303 74 34 je short 0045F339
0045F305 3D DB164000 cmp eax, 004016DB
0045F30A 74 2D je short 0045F339
0045F30C 3D F8304000 cmp eax, 004030F8
0045F311 74 26 je short 0045F339
0045F313 3D 07184000 cmp eax, 00401807
0045F318 74 1F je short 0045F339
0045F31A 3D C3474000 cmp eax, 004047C3
0045F31F 74 18 je short 0045F339
0045F321 3D C2394000 cmp eax, 004039C2
0045F326 74 11 je short 0045F339
0045F328 3D A2314000 cmp eax, 004031A2
0045F32D 74 0A je short 0045F339
0045F32F 55 push ebp
0045F330 8BEC mov ebp, esp
0045F332 51 push ecx
0045F333 51 push ecx
0045F334 E9 0C030000 jmp 0045F645 ;JMP 回 push 8 处
0045F339 68 10270000 push 2710 ;Sleep
0045F33E FF15 606E5600 call dword ptr [566E60] ; kernel32.Sleep
0045F344 ^ EB F3 jmp short 0045F339 ;JMP 到Sleep
本来想简要说明的,却说了这么多,希望能给新手一点启示...
此去经年,应是良辰美景...