我爱辅助论坛

 找回密码
 【点我注册】

QQ登录

只需一步,快速开始

查看: 4181|回复: 18

[文字教程] 任鸟飞谈逆向----《梦三国2》全图

[复制链接]

该用户从未签到

发表于 2017-10-23 11:34:02 | 显示全部楼层 |阅读模式

《梦三国2》是5V5对战类游戏,和LOL游戏模式差不多。
这种游戏敌人的位置,地图信息是至关重要的,市场上有这个游戏的全图外挂,这对游戏的平衡性造成了极大的破坏,我们今天来分析一下其全图效果是怎么实现的。
首先地图上的可视与不可视是被分成极小的点的,所以我们随便选择一个小的区域   
用人物的走动来改变他的可视与不可视状态。
可视搜索字节1  不可视搜索字节0(当然是尝试出来的,避免未知初始值扫描过慢)
有什么不懂 可以关注 微信公众号:任鸟飞逆向  交流学习
会得到一些相邻的内存地址   
为什么这么多相邻的地址呢?原因我们刚才已经说了,地图是由很多个点组成的,我们来回走动,变动可视状态看上去只有一小块区域,实际上可能是几千个点
在任意相邻的内存地址上下访问断 得到下面代码
100C4291 - 80 3C 02  00 - cmp byte ptr [edx+eax],00============视野判断
0104A650 - 8A 02  - mov al,[edx]
0104A658 - 88 02  - mov [edx],al
0104A5C0 - 8A 02  - mov al,[edx]
0104A5C8 - 88 02  - mov [edx],al
第一条很明显是一个判断
100C426B    8945 CC         mov     dword ptr [ebp-34], eax
100C426E    DC0D 40073210   fmul    qword ptr [10320740]
100C4274    D96D CC         fldcw   word ptr [ebp-34]
100C4277    DB5D CC         fistp   dword ptr [ebp-34]
100C427A    8A45 CC         mov     al, byte ptr [ebp-34]
100C427D    D96D CA         fldcw   word ptr [ebp-36]
100C4280    8845 CB         mov     byte ptr [ebp-35], al
100C4283    8B86 A8020000   mov     eax, dword ptr [esi+2A8]
100C4289    85FF            test    edi, edi
100C428B    7E 38           jle     short 100C42C5
100C428D    8BD3            mov     edx, ebx
100C428F    2BD0            sub     edx, eax
100C4291    803C02 00       cmp     byte ptr [edx+eax], 0            ; 视野判断
100C4295    75 06           jnz     short 100C429D                   ; 如果内存地址里不等于0跳转 也就是可视跳转 那么我们改成JMP 默认全部可视
100C4297    0FB64D CB       movzx   ecx, byte ptr [ebp-35]
100C429B    EB 02           jmp     short 100C429F
100C429D    33C9            xor     ecx, ecx
100C429F    8808            mov     byte ptr [eax], cl
100C42A1    40              inc     eax
100C42A2    4F              dec     edi
100C42A3  ^ 75 EC           jnz     short 100C4291
100C42A5    FF15 1CE43110   call    dword ptr [<&WINMM.timeGetTime>] ; WINMM.timeGetTime
100C42AB    8946 70         mov     dword ptr [esi+70], eax
100C42AE    C646 74 01      mov     byte ptr [esi+74], 1
100C42B2    EB 39           jmp     short 100C42ED
100C42B4    8B8E A8020000   mov     ecx, dword ptr [esi+2A8]
100C42BA    57              push    edi
100C42BB    53              push    ebx
100C42BC    51              push    ecx
100C42BD    E8 02BD2100     call   
100C42C2    83C4 0C         add     esp, 0C
分析可得为0的时候不跳转,我们知道为0是不可视
那么我们修改掉他的判断为无条件跳转
这样去掉了 第一层迷雾
如上图:已经达到了全图的效果
但是这只是第一层迷雾,敌人如果在视野外  我们也是看不到的
那么我们通过 100C4291    803C02 00       cmp     byte ptr [edx+eax], 0 这条代码
去追踪点阵的来源
这个偏移表达可以追到  [ecx+704+10]  CE搜索ECX 的值可以得到表达式
[[103E65E0]+704+10]
我们在 地图数组的地址上下断 得到代码:
10076A13 - 83 7E 10 00 - cmp dword ptr [esi+10],00
10076A67 - 8B 46 10  - mov eax,[esi+10]
100768ED - 83 7F 10 00 - cmp dword ptr [edi+10],00       大地图显示
1007696F - 8B 47 10  - mov eax,[edi+10]
100768E0    55              push    ebp
100768E1    8BEC            mov     ebp, esp
100768E3    51              push    ecx
100768E4    57              push    edi
100768E5    8BF9            mov     edi, ecx
100768E7    807F 4C 00      cmp     byte ptr [edi+4C], 0
100768EB    75 13           jnz     short 10076900
100768ED    837F 10 00      cmp     dword ptr [edi+10], 0     判断是否有地图数据
100768F1    75 16           jnz     short 10076909                   ; NOP掉  大地图可以显示  应该是没有对地图上的某些数据进行隐藏了
100768F3    8B45 10         mov     eax, dword ptr [ebp+10]
100768F6    85C0            test    eax, eax
100768F8    74 06           je      short 10076900
100768FA    C700 00000000   mov     dword ptr [eax], 0
10076900    33C0            xor     eax, eax
10076902    5F              pop     edi
10076903    8BE5            mov     esp, ebp
10076905    5D              pop     ebp
10076906    C2 0C00         retn    0C
10076909    53              push    ebx
1007690A    56              push    esi
1007690B    E8 70AEFFFF     call    10071780
我们整理下思路
实际上 我们在找地图可视数组   找到以后对他的可试进行访问  得到代码  对其不可视代码进行屏蔽  实现了 地图全亮
如果不行  我们可以返回上一层屏蔽CALL 看是否可以实现全图等功能
但是看不到敌对英雄   那么这个地图数组  或许只是地图相关   而和人物对象无关
我们又到 是否有地图数据的判断附近去屏蔽掉有地图数据时候的处理    敌对英雄出现了  
视野外一样可以看到地方英雄了

评分

参与人数 1金钱 +2 好评度 +2 收起 理由
15236849506 + 2 + 2 赞一个!6666666666

查看全部评分

温馨提示:为了保护系统安全,使用辅助前,请务必使用影子系统。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

签到天数: 196 天

[LV.7]常住居民III

发表于 2017-10-23 15:20:07 | 显示全部楼层
IN霸能用吗

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

签到天数: 68 天

[LV.6]常住居民II

发表于 2017-10-23 15:31:14 | 显示全部楼层
看不懂~~确实是个好贴,有没有做成辅助的

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

签到天数: 191 天

[LV.7]常住居民III

发表于 2017-10-23 18:29:33 | 显示全部楼层
非常好;可以的。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

签到天数: 134 天

[LV.7]常住居民III

发表于 2017-10-23 19:49:52 | 显示全部楼层
6666 非常不错

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

签到天数: 77 天

[LV.6]常住居民II

发表于 2017-10-23 22:13:58 | 显示全部楼层
但是300英雄好像不行

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2017-10-24 12:43:28 | 显示全部楼层
可以啊

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2017-10-27 11:51:47 | 显示全部楼层
等待11 发表于 2017-10-23 15:31
看不懂~~确实是个好贴,有没有做成辅助的

可以做成辅助啊  很简答的  没多少句代码

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2017-11-1 14:43:03 | 显示全部楼层
梦三国 是LOL的前身

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2017-11-6 14:19:01 | 显示全部楼层
今天发布了  最新分享  请留意哈

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 【点我注册】

本版积分规则

QQ|小黑屋|我爱辅助 ( 辽ICP备19006053号-1 )

GMT+8, 2025-5-2 00:32 , Processed in 0.050405 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表