能力值:
( LV2,RANK:10 )
|
-
-
26 楼
lz菜鸡啊
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
Make , 受益匪浅,感觉楼主分享
|
能力值:
( LV5,RANK:60 )
|
-
-
28 楼
前文再续,贴接上一回。
从我们测试结果看,“4分半掉线”,意味着对于这段代码的CRC检测不是持续进行的,检测间隔时间很长。
于是我有了第一个想法。
开局时修改此处代码,在1min代码执行完之后,再把修改的地方还原。
再开一局测试,只修改这一处代码(11xp.dll+6cd60 push ebp改ret 8),1min之后还原回去。
测试结果:游戏进行多久都不会掉线。
分析一下这个方法的优缺点:好处就是思想简单,容易实现。但是可应用范围不广。此处这段代码在一局游戏中只执行一次,而且CRC在代码执行之后很久才进行。如果游戏期间11平台又调用该代码对Game.dll进行还原,而且如果第二次CRC的时间不固定,有可能第5min又进行校验,这样这种方法就太冒险了,有可能代码还原的晚,就会被检测到。
一般的CRC并不是对所有代码段进行校验,有的程序只对代码的关键部分(比如代码头,重要的call,jmp等位置)进行检测,所以我接着就考虑对call WriteProcessMemory这句处理。
可惜11平台对这段代码都进行检测,哪里都不能修改。
我说过11平台不会对所有代码都检测,哪里平台认为不重要,不会去检测呢?
系统API——WriteProcessMemory。
既然我们不想让11平台调用它,我们可以直接从这个函数入手。
我们不能贸然对WriteProcessMemory进行ret 0x14(该函数需要5个参数),因为我们还不清楚平台的其他地方是否需要调用她。
我们可以开一局游戏,对WriteProcessMemory下断,看看究竟需要调用她多少次,并且分别测试每一次的调用直接返回是否会检测作弊。
但是我们不需要那么做。我们只是想让平台对Game.dll的还原无效,至于其他的写内存操作我们最好还是不要动。
我们可以从多次调用中找出对Game.dll还原的那一次。
其实特征还是很明显的。比如WriteProcessMemory的5个参数中第二个参数:待写入数据的内存地址==Game.dll+0x1000 .第四个参数写入数据大小==0x87e000 。
我们可以对WriteProcessMemory函数头进行HOOK,找出我们感兴趣的调用直接返回,而其他调用我们正常执行。
说明一:根据我的经验,只判断第四个参数就可以定位。因为该API的调用并不频繁。
说明二:该函数最后一个参数是实际写入了多少字节,存放在一个内存地址中。我们直接返回并未对其进行处理。我测试11平台并未对次进行检测,所以我们可以无视。但最好在处理程序中把该地址写入0x87e000。
说明三:其实这个函数没有必要一定要处理。因为每次游戏只调用一次,而且是刚刚开局就调用,我们完全可以选完英雄之后再开图,这样就算是直接过掉她了。但是有些人喜欢让外挂在魔兽运行时自动开启,就需要对此进行处理了。
至于HOOK代码的有关细节,我将在奕奕平台全图制作第五弹之HOOK大法中详细介绍。
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
为 LZ码的这么多字&科普精神 顶一个
我来把LZ目前说的总结下吧
[Game.dll+xxx] = 0即开启全图
11xp.dll 循环写入[Game.dll+xxx] = 1
LZ 修改 11xp.dll ret 0x8 被上层CRC检测到
LZ HOOK WIN API WriteProcessMemory 搞定...
对11xp.dll 调用WriteProcessMemory修改当前进程内存表示不理解
另外, 传说 WIN API函数头的mov edi,edi, 是为了方便短跳到上面的nop字节里, nop字节再长跳, 至于为什么是mov xxx而不是nop, LZ在帖子里已经说了
继续啊LZ
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
八错~~~继续。开个小组一起讨论讨论也不错~
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
好像 11xp.dll 的重写game.dll的频率比楼主说的快,而且不是只写一次阿
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
有空应该 照楼主的思路试一试, hook api wrtiememroy .r3 得注入dll了,dll 还得做 无模块 脱链 去PE么? 针对这块 11怎么检测的?楼主快点 更新,懒人 都等不及了。
|
能力值:
( LV13,RANK:240 )
|
-
-
33 楼
第一,若是suspend复制game.dll 再去修改有很多代码是需要修改的。数据段你是复制的。当运行类的函数的时候。这些虚表里面的函数地址还是原来的game.dll
第二,如果早于game.dll加载副本的xx.dll,打完以后算分怎么办?11读不到该有的数据。他获取数据应该还是从getmodulehandle(game.dll)得到的基址+偏移
|
能力值:
( LV12,RANK:760 )
|
-
-
34 楼
1.reload回来的虚表执行问题,不用考虑,小修改一下就好。
2.xx.dll的打分没问题的。
|
能力值:
( LV13,RANK:240 )
|
-
-
35 楼
求解释 打分的问题。难道不是getmodulehandle获取HMODULE 然后去读取一些数据吗?
平台不可能只用hmodule监测代码就完事了啊。应该还要读取里面的数据判断开局,结束,和一些游戏操作啊。会不会导致平台的某些功能失效?比如自动进入游戏之类的。
|
能力值:
( LV5,RANK:60 )
|
-
-
36 楼
为什么我单机都不能调试。几次异常,进程就挂了。只能attach。
进11attach电脑就卡死了。
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
mark.!!!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
mark
|
能力值:
( LV4,RANK:50 )
|
-
-
39 楼
11其实就是拿ghost来改改
1,积分是分析数据包来算的
2,SHADOW WALK会被检测
3,还有N多猥琐的检查
|
能力值:
( LV12,RANK:760 )
|
-
-
40 楼
shadow walker早就淘汰了~~新时代,谁还玩这种东西啊。
WS这个东西是相对了,搞的越多越觉得没意思了。
|
能力值:
( LV2,RANK:10 )
|
-
-
41 楼
怎么还不更新,讲了三分之一不到,不是 要 过检测么。。。。小白呢
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
LZ速度更新啊,好好学习
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
读内存+hud,最稳妥了
|
能力值:
( LV2,RANK:10 )
|
-
-
44 楼
HUD是啥东东?大牛,给点解释赛~~ 小菜们表示都不懂~~
|
能力值:
( LV2,RANK:10 )
|
-
-
45 楼
事实证明,楼主 被潜规则了。还是自己慢慢研究吧。伸手党 不好当啊
|
能力值:
( LV5,RANK:60 )
|
-
-
46 楼
11平台的检测机制,一直存在bug,百度逆天社区,ch这辅助稳定了1年了,11就是检测不出!不信你试试
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
楼上在搞笑么,还是 演员?你说的论坛,我压根就不会打开。我真心的笑了,你这个也就能忽悠一下 新手,,你这个论坛,我就没听说过,辅助稳定,我吃翔。
|
能力值:
( LV5,RANK:60 )
|
-
-
48 楼
呵呵,那你去吃翔吧
我就不放代码
|
能力值:
( LV6,RANK:90 )
|
-
-
49 楼
留个爪子,慢慢看
|
能力值:
( LV4,RANK:40 )
|
-
-
50 楼
VS全图毫无压力
|
|
|