吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 28061|回复: 61
收起左侧

[游戏安全] 逆向分析某网游明文call

  [复制链接]
HackerWen 发表于 2019-3-13 17:41
本帖最后由 HackerWen 于 2019-3-14 13:48 编辑

前言
先吐槽一下,悲催的3月11日,该游戏公司,居然停服了我分析了好几个月的游戏,那么多数据就没用了,哼,生气。
不过就当练技术了吧,哈哈。不过,忍一时越想越气,退一步越想越亏,下载该公司的另一款网游,使劲盘解解气!
正好今天注册吾爱成功,发发贴证明我是活人,嘻


开始分析明文call
游戏下好后,走起来,OD走起来,断点走起来,发现是使用WSASend函数发包,而且是线程循环发包。

好,我们去游戏里聊天,打上11111

1.png

此时断下后,堆栈如图所示

0.png

当然我们只需关心第2个参数:0A53095C,右键跟随到数据窗口看一看

2.png

第一个呢就是包长,第二个就是包的地址,我们看看这个包里面有什么东西,点击第二个,回车

3.png
嗨呀!居然是明文,老泪纵横呀。上一个游戏不仅是线程发包,而且加密了的,这次貌似要轻松一点。


运行起来,我又去游戏聊天,这次我打22222,发现包的地址变了

前一次是15152028,这一次是1514400c

4.png

5.png

em.....我又反复聊天试了几次,发现是两个地址交替使用,那么排队队吧,一个一个脖子伸出来

15152028地址下写入断点,走起,呃呃呃呃,游戏居然断线了,重连重试了几次还是会断线,情况不妙啊....
那对
1514400c地址下写入断点试试,结果不出所料,依然断线。看来这游戏把包的写入盯得死死的呀。

那我们换个思路吧,看上面我两次聊天,第一次发的11111,第二次发的22222,都是5个字符,两次包长都是0x23没变,而且存储包长的地址0A53095C也是不变的,好,我们下个写入断点试试(果然不断),那我们用CE监测吧:添加地址 0A53095C ,找写入

6.png

10050DD8 - 89 51 20  - mov [ecx+20],edx
10050D16 - C7 41 20 00000000 - mov [ecx+20],00000000

OK,去OD分析第一条,转到地址 10050DD8 ,分析后注释如下:
7.png

后来我继续追eax的来源,在上层下断后,老是断,无法去游戏里聊天,所以此路不通。
f.png
那就不往上追,既然edx是包长,而且edx = [eax+20],那么eax+20这个地址里的包长是哪里来的呢?
好,我们去游戏聊天,发固定长度的话,使包长也等于0x23。断下后,记下eax+20 == 0A5309CC,反复聊天几次发现这个值不变,好的,又祭出CE监测 0A5309CC,找写入
10050D87 - 89 7E 20  - mov [esi+20],edi
10050DCB - 89 78 20  - mov [eax+20],edi
好嘞,去OD分析 10050D87处的代码(累吧,OD和CE换来换去的用,,,,)
8.png
继续追上层
9.png

追到这层后,我试着又往上追ebx包长的来源,发现上层也是经常断,那么断了念想吧(同追妹子一样不好追)
纠结了一会,我开始分析上图的倒数第三行:1004FE6E  51  push ecx对倒数第三行下断,去游戏里聊天,发5个1,使包长等于0x23,然后看看ecx里面的值:
10.png

每次聊天断下发现ecx是不变的,只是里面的明文在变,那么我们试着对明文下写入断点(这次居然在OD里下写入断点不奔溃了,哈哈):断在下图中:
11.png
看到了吧,esi里也是明文,此处在写入明文包,我聊天时发的5个1,31就是1的ASCII码嘛。
断在这里时,删除内存断点,不要运行,去堆栈窗口找到返回地址,右键跟随到反汇编,返回到了1001E167处然后我分析这一层的代码,如下:
12.png

如注释所说,明文包地址时刻在变,无法分析,只有从包长入手对上图第一条代码下断,发现每次聊天esi也是不变的,
在数据窗口查看esi + 1C4,出出出出大事了,断下时+1C4处有值,运行时没值
13.png
14.png

那么又用CE监测0A531FC4吧,找写入
1001EB17 - 89 46 08  - mov [esi+08],eax
1001EB5D - 89 48 08  - mov [eax+08],ecx

啊啊啊啊,什么时候是个头啊,用OD分析1001EB17,哈哈哈哈哈哈,咸鱼翻身了,看看看,看到了啥,三个黄金大字:主线程!
看来我们终于跳出循环发包的子线程了哟
15.png

双击下断,去游戏里聊天、走路各自断下,记录栈回溯,就找到了明文call了。经过测试,用这个明文call一下子就找到跳跃call和选怪call
16.png
17.png

总结
不管发包函数发的包,是不是明文,都不重要,上一个停服的游戏,就是发的加密包。
从包的地址入手行不通的话,可以尝试追踪包长,毕竟它的变化范围小嘛。
OD下写入断点奔溃或者断不下的话,可以用CE监测。
em...最后,本人只是对逆向感兴趣,不会做那个的。。。

免费评分

参与人数 8威望 +2 吾爱币 +15 热心值 +7 收起 理由
爱破解的狮子 + 1 + 1 谢谢@Thanks!
D小小 + 1 + 1 热心回复!
hahahunqiu + 1 + 1 我很赞同!
耳食之辈 + 1 谢谢@Thanks!
ww5w5n + 1 谢谢@Thanks!
wulove + 1 热心回复!
willJ + 2 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhangchuan6000 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| HackerWen 发表于 2019-3-15 12:47
图片已修复,感谢大家捧场,哈哈
@Hmily@雨鱼  @azabual @talent1218 @qwer1193 @轲凌
@gunxsword @ArygBoy @小兔一样的小白 @xing4293160
@sw0rder @Mr.Eleven @yly8848 @drakpj @空处 @幽乄禅
@橘子椰子皮 @永遠守護你
 楼主| HackerWen 发表于 2019-3-14 00:04
雨鱼 发表于 2019-3-13 23:51
这是复制粘贴的?图片全都防盗链了。

我在看雪发过一次,然后复制到这里来了,,,我天咋弄啊
 楼主| HackerWen 发表于 2019-3-14 00:22
Hmily 发表于 2019-3-14 00:09
你把图片直接上传本地就好了,不会上传看这里教程https://www.52pojie.cn/misc.php?mod=faq&action=faq&i ...

嗯嗯,感谢感谢,刚注册不熟悉规则,哈哈
那么现在要重发吗,还是怎么解决
Hmily 发表于 2019-3-13 23:18
图片全部盗链了。
头像被屏蔽
雨鱼 发表于 2019-3-13 23:51
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| HackerWen 发表于 2019-3-14 00:07
Hmily 发表于 2019-3-13 23:18
图片全部盗链了。

不好意思了,我在看雪发过一次,然后复制到这里就这样了。
我联系管理员试试

点评

你把图片直接上传本地就好了,不会上传看这里教程https://www.52pojie.cn/misc.php?mod=faq&action=faq&id=29&messageid=36  详情 回复 发表于 2019-3-14 00:09
Hmily 发表于 2019-3-14 00:09
HackerWen 发表于 2019-3-14 00:07
不好意思了,我在看雪发过一次,然后复制到这里就这样了。
我联系管理员试试

你把图片直接上传本地就好了,不会上传看这里教程https://www.52pojie.cn/misc.php? ... 29&messageid=36
头像被屏蔽
雨鱼 发表于 2019-3-14 00:33
提示: 作者被禁止或删除 内容自动屏蔽
耐观音 发表于 2019-3-14 01:17
图片都看不见哦
幽乄禅 发表于 2019-3-14 01:32 来自手机
先收藏了再说
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 23:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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