前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >写辰龙抢座挂遇到的问题

写辰龙抢座挂遇到的问题

作者头像
用户2135432
发布2018-06-04 14:42:57
6583
发布2018-06-04 14:42:57
举报
文章被收录于专栏:猛牛哥的博客猛牛哥的博客

这几天给客户写一个辰龙棋牌的抢座挂,客户要求抢座位时需要给桌子设置密码。本来觉得是个比较简单的时,可能改改内存就可以了。经过分析,找到了保存桌子密码的内存地址。开始查看“什么代码访问了该地址”,奇怪的发现:进入桌子时,游戏并不会读这处内存,而只有在游戏房间里设置这个密码时才会读写。本人第一次做这种东西,没有经验,所以开始胡乱想象:难道是把密码保存在硬盘文件或者注册表了?经过各种分析、查找、监控,发现密码既没有写入文件,也没有写入注册表。最后经过各种折腾,发现这个棋牌游戏的房间设置是保存在游戏服务器的(真是坑爹,既然是保存在服务器,为什么还要每次新打开游戏都要重新设置)。

最后正确的分析过程如下:

先给游戏房间设置个密码,然后搜索到存有这个密码的内存地址,然后看看是什么代码访问了此地址。

辰龙抢座挂
辰龙抢座挂

先给房间设置个密码

辰龙抢座挂
辰龙抢座挂

搜索存有该密码的内存地址

辰龙抢座挂
辰龙抢座挂

查看访问该内存地址的代码

关掉CE,打开OD,在76BBAD4A - 8A 11  - mov dl,[ecx]和76BBAD50 - 88 10  - mov [eax],dl这2个地方下断。因为发现这2处代码只间隔2行,为了省事,改为只给第一行下断。

下断点
下断点

辰龙抢座:下断点

按CTRL+F9返回看看:

返回第1次
返回第1次

返回第1次

返回后直接是程序领空,模块名就是程序名:gameplaz,看到刚才断点处是复制字符串。后经过几次简单分析,这里不是想要找的地方。因为刚才用ce查看时,设置密码时这个断点处会执行多次,所以直接F9继续运行,又断在这个地方了,继续ctrl+f9,然后分析,最后发现这个地方应该就是把房间设置发送到游戏服务器的代码。因为下面不远处有个call是调用的networks(网络)模块。

最后的call
最后的call

最后的call

在经过进一步测试、验证,这里的call是正确的。

至此,直接构造数据,然后调用游戏的网络call发送即可。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016 年 5 月 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档