记牌器内存扫描法原理(转)
来源:互联网 发布:飞行棋在线软件 编辑:程序博客网 时间:2024/05/22 01:39
记牌器内存扫描法原理(转)
2010-05-09 16:12
内存扫描软件名称:GameMaster
最新版本:可能是 8.0
使用方法:(我只讲分析数据的大概过程,如果谁不会用GM,去搜索软件使用说明,网络上一大把)
一般来说,在不涉及版本升级的情况下,所有软件的变量在内存中都有一个较为固定的存放地址(相对于这个程序的起始地址而言),如果要扫描到这个地址,你需要有一些基本的分析能力,这个变量可能是以什么形式存在的?
基本分析:直观的变化数据
拿斗地主来说,最基本的分析就是出牌数量了,要分析出牌的张数,自然应该想如下操作:先用当前出牌张数扫描一次这个游戏进程的全部数据,然后,等出牌张数变化,再次扫描,一般来说,第一次扫描到符合条件的N多,第二次扫描会缩减很多,第三次、、、最终,会找到你想要的地址,大多数游戏最后都会只剩下一个,但也有反跟踪的游戏,会出现两个以上的地址;甚至还有普通方法无法找到的,那是别人反扫描做得好,就需要你动脑筋了(别问我,我不想回答,这不是编程的技巧)。
还好,QQ斗地主的数据只有一个地址。
第二类分析:有规律的特征对象
比如,出牌的牌面,这一类数据没有直观的数字表现,但我们可以推断,作为编程人员,他对这54张牌一定有一个编码,很自然的我们想到二位数组,单色牌应该是采用1~13或者0~14的编号,至于花色,应该是0~3或者1~4,虽然大多数计算机语言的数组下标起始都是0,但在表达已经有数字规律的对象时,1~13更为直观,所以,采用1~13的可能性更大。
于是,我们开始另一个扫描,在对方出牌的时候,扫描其中的第一张牌(最大的那张,别问为什么,基本逻辑思维),比如红桃3,搜索3,然后等待他下一次出牌,再次扫描、、、、
到最后得到你所需要的地址的时候,且慢,仔细看看这个数据的附近,是否有表达其花色的红桃的标记(刚才我们说过了花色可能的编码)。
第三类分析:有规律,但没有任何表征的对象
比如座签地址,这东西只是会随着你更换座位变化,但没有具体的特征,这时候你应该采用扫描软件的模糊搜索,第一次全面记录内存,在发生变化后,再次扫描,再变化、再扫描、、、这种扫描方式可能需要若干次才能找到结果。
扫描软件中还有字符串扫描等等功能,这里不涉及,就不说了。
至于站长提到的140的偏移,那是站长偷懒,他看到了几个相关数据间的固定间隔,呵呵,不过,如果下一个版本中,数据结构定义变动,可能导致这个偏移被改动。所以,还是每一个数据都扫描一下为好。
如果看了这个分析和网络上的软件使用说明,你还是说不懂怎么搜索、分析,或者你对编程不熟悉,只是为了应用来玩,抱歉,这个代码不适合你。
- 记牌器内存扫描法原理(转)
- 高级扫描技术及原理介绍(转)
- 内存分配原理(转)
- Nmap扫描原理与用法(—)
- 边界扫描原理:
- 键盘扫描原理
- XSS扫描系统原理
- 扫描二维码登录原理
- TCP空闲扫描原理
- uvalive3905(扫描法)
- wifi网络接入原理(上)——扫描Scanning
- Android二维码扫描开发(一):实现思路与原理
- wifi网络接入原理(上)——扫描Scanning
- DRAM内存原理(一)内存基础
- Android内存管理原理(转)
- 数码管显示与扫描原理
- Nmap扫描原理与用法
- nbtscan局域网扫描的原理
- Heritrix安装、配置
- 第02章 IntelliJ IDEA起步 熟悉IntelliJ IDEA编辑器 05 管理选项卡
- spring事务管理2
- 第一篇博客
- Fedora中txt文件乱码问题的解决
- 记牌器内存扫描法原理(转)
- 客户端之一: 安装与配置
- 学习JavaFX
- 第02章 IntelliJ IDEA起步 熟悉IntelliJ IDEA编辑器 06 在选项卡间导航
- 客户端之二: 登录与使用
- 计算机进入baidu网站时定位到wap百度
- parseFloat(String s) toFixed()应用详解
- magento -- 使用local.xml来修改布局
- 第02章 IntelliJ IDEA起步 熟悉IntelliJ IDEA编辑器 07 锁定和解锁选项卡