请教一个自动提取存档数据解决方案

weixin_37701111 2019-04-18 12:34:54
是这样,有一款游戏,它可以保存比赛录像,然后通过游戏本身来加载观看,录像存档文件发送给别人,对方也可以用游戏来加载观看。

现在是这样,我想使用这些游戏录像里面的一些比赛数据,但无法提取出来,因为只能通过游戏来观看,里面显示数据,目前我是采用手工记录,由于比赛录像很多,数据量大,非常麻烦。

想知道如何能实现数据的自动提取,是直接破解存档录像文件吗? 还是跟踪游戏加载录像过程抓取代码,然后用c/c++实现这个功能? 哪条路径比较可行呢?

请教各位前辈!

...全文
314 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
greex 2019-04-29
  • 打赏
  • 举报
回复
建议处理图像,如果是常用视频格式,格式说明网上就有。这个方法通用点。
weixin_37701111 2019-04-25
  • 打赏
  • 举报
回复
引用 6 楼 pstrunner 的回复:
[quote=引用 4 楼 weixin_37701111 的回复:]
[quote=引用 2 楼 pstrunner 的回复:]
如果提取的显示数据比较固定,图像特征比较明显,建议用图像识别的方式是否可行?


OCR方法试过了,行不通,上面我放了贴图和说明,感谢前辈指点![/quote]
那只能破解录像文件格式入手了,不过如果没有进行数据加密,通过WireShark工具进行网络抓包,观察其封包;其次,用text格式或者二进制格式(建议用UltraEdit工具)打开录像文件观察;它们之间进行相互比对,或许能够找到一些规律从而进行破解。[/quote]

感谢指点,我研究下这个方法先...
pstrunner 2019-04-23
  • 打赏
  • 举报
回复
引用 4 楼 weixin_37701111 的回复:
[quote=引用 2 楼 pstrunner 的回复:] 如果提取的显示数据比较固定,图像特征比较明显,建议用图像识别的方式是否可行?
OCR方法试过了,行不通,上面我放了贴图和说明,感谢前辈指点![/quote] 那只能破解录像文件格式入手了,不过如果没有进行数据加密,通过WireShark工具进行网络抓包,观察其封包;其次,用text格式或者二进制格式(建议用UltraEdit工具)打开录像文件观察;它们之间进行相互比对,或许能够找到一些规律从而进行破解。
zilaishuichina 2019-04-18
  • 打赏
  • 举报
回复
1、游戏录像一般保存的是每个玩家的操作序列(当然也有少数不这么做的),比如:第1秒玩家A从a点走到了b点,第3.5秒玩家B使用了道具1001,第5秒玩家A使用了一个技能2001,等等,一整局的玩家操作。当然可能还包括一些随机种子,用来播放录像的时候可以计算比如技能1001到底是打中了,还是miss了。而录像的播放其实是按照时间轴,把每个玩家的操作再执行一遍。用同样的随机种子,确保所有的随机数和当时产生的随机数是一致的。

2、如果楼主想要提取的数据,是每个玩家的操作,那么你需要知道每个玩家操作对应的数据是什么,比如1表示移动操作,2表示使用道具,3表示释放技能,至于每个数字到底对应什么,每种操作对应什么数字,估计也只有做这个游戏的程序员知道。所以个人觉得解析游戏录像文件这个事,除非你知道录像文件中每个数据的意义,否则就没什么搞头,投入产出比不值当。

3、如果楼主想提取的数据,并不是玩家的操作,而是一些统计数据,比如像统计第5分钟,双方的人头数,双方的经济数据,这些都是录像播放的过程中,按照玩家的操作序列,带入到游戏逻辑中,现算出来的,所以即使你知道录像文件中的数据的意义,也不是什么都能统计出来的。所以你还不如说说你最终统计这些数据想干嘛,最终目的是什么,也许不通过分析录像也可以达到你的最终目的呢

zilaishuichina 2019-04-18
  • 打赏
  • 举报
回复
引用 3 楼 weixin_37701111 的回复:


如果数据确实可以从录像文件提取, 你只需要搞清楚录像文件的格式和内容就可以了, 至于如何搞清楚录像文件的格式和内容, 我就帮不了你了。。。
weixin_37701111 2019-04-18
  • 打赏
  • 举报
回复
引用 2 楼 pstrunner 的回复:
如果提取的显示数据比较固定,图像特征比较明显,建议用图像识别的方式是否可行?


OCR方法试过了,行不通,上面我放了贴图和说明,感谢前辈指点!
weixin_37701111 2019-04-18
  • 打赏
  • 举报
回复
引用 1 楼 zilaishuichina 的回复:
1、游戏录像一般保存的是每个玩家的操作序列(当然也有少数不这么做的),比如:第1秒玩家A从a点走到了b点,第3.5秒玩家B使用了道具1001,第5秒玩家A使用了一个技能2001,等等,一整局的玩家操作。当然可能还包括一些随机种子,用来播放录像的时候可以计算比如技能1001到底是打中了,还是miss了。而录像的播放其实是按照时间轴,把每个玩家的操作再执行一遍。用同样的随机种子,确保所有的随机数和当时产生的随机数是一致的。

2、如果楼主想要提取的数据,是每个玩家的操作,那么你需要知道每个玩家操作对应的数据是什么,比如1表示移动操作,2表示使用道具,3表示释放技能,至于每个数字到底对应什么,每种操作对应什么数字,估计也只有做这个游戏的程序员知道。所以个人觉得解析游戏录像文件这个事,除非你知道录像文件中每个数据的意义,否则就没什么搞头,投入产出比不值当。

3、如果楼主想提取的数据,并不是玩家的操作,而是一些统计数据,比如像统计第5分钟,双方的人头数,双方的经济数据,这些都是录像播放的过程中,按照玩家的操作序列,带入到游戏逻辑中,现算出来的,所以即使你知道录像文件中的数据的意义,也不是什么都能统计出来的。所以你还不如说说你最终统计这些数据想干嘛,最终目的是什么,也许不通过分析录像也可以达到你的最终目的呢


感谢前辈指点!要的就只是统计数据,是这样,我说具体一点吧,我们有一个足球游戏网络战队,大约几十支队在一起,平时互相按制定好的赛程比赛,大约与现实中的联赛一样,比赛完了之后玩家在论坛上上传比赛截图和录像(录像文件很小,只有百来K, 可以用游戏加载观看,主要用来佐证,也方便别的玩家观看)。我们组织的几个人就通过截图来统计数据,制作积分榜,射手榜、助攻、最佳、红黄牌伤停等等数据表。以往都是手工统计的,数据量很大,后来听说有另外一个战队,他们不知用什么方法可以自动获取数据。请教了对方,但对方不愿告知。所以特前来此处请教!

都是如这样的屏幕截图:


由于每个玩家的游戏界面个人设置不同,且截图清淅度有高有低,我们试过OCR图像识别,准确率很低, 也很难生有用的表格,ocr方法基本行不通。也听说那边战队采用的就是直接从比赛录像获取,但不知是如何实现的...
pstrunner 2019-04-18
  • 打赏
  • 举报
回复
如果提取的显示数据比较固定,图像特征比较明显,建议用图像识别的方式是否可行?

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧