QQ新中国象棋棋盘基址 您所在的位置:网站首页 新中国象棋bgm QQ新中国象棋棋盘基址

QQ新中国象棋棋盘基址

2023-08-19 06:21| 来源: 网络整理| 查看: 265

一、分析

分析棋盘结构,猜测棋盘的数据是一个二维数组,棋盘是一个9*10或者是一个10*9的数组,先朝这个方向去尝试分析

 

程序内部可能是定义了一个这样的二位数组char[10][9]或者char[9][10]

也可能是int[10][9]或者int[9][10],还有可能是一个结构体的数组,腾迅开发人员具体用什么类型我们无从得知只能通过不断去尝试,试错来分析。

 

char   chessArray[10][9];

int    chessArray[10][9]

Chess  chessArray[10][9]    

 

继续猜测分析:二维数组的每个元素是描述一个棋子的,是什么颜色什么棋,总共有32个棋子,猜测描述这些的棋子的属性用255种足可以描述完毕。

例如:红车是1,红马是2,红象是3等。

`

 

二、试错

通过CheatEngine工具,可以扫描进程的内存数据,不断调整棋子的位置,找到棋盘的大概位置

加载QQ象棋进程:如下图所示。

 

新扫描类型选择“值介于...两者之间”,数值为0到255之间,数值类型先选择4字节,点击首次扫描。

 

初次扫描,满足条件的内存有500多万条,如下图

修改扫描类型:为变动的数值,我们尝试来回重复移动一个棋子,每次搜索都搜索变动的数值,这样就可以迅速过滤掉大量的数据。

 

本例中是尝试车1进1,搜索一次,

                                                                          

车一退一搜索一次。

 

多次之后最后过滤到少量内存如下图

这三个地址相隔比较近,可以打开一起查看,

选择其中一个绿色地址打开继续分析,如下图:

将界面最大化后,每当我们移动棋子时,我们可以观察到,界面上面有颜色闪动变化,如下图所示,我们可以推断这些变化就是棋子的变化

 

不断地移动棋子,可以推算出每个棋子的值,而且可以算出棋盘的数组范围

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有