大神论坛

找回密码
快速注册
查看: 474 | 回复: 0

[iOS] 关于极略三国-网络签名请求算法的解析

1

主题

3

帖子

75

积分

初入江湖

UID
11
积分
75
精华
1
威望
108 点
违规
0 次
大神币
97 枚
注册时间
2021-01-01 18:49
发表于 2021-02-10 09:59
本帖最后由 大神归来 于 2021-02-10 09:59 编辑

想要对一个 app 搞事情,首先就要分析它的流量情况,直接祭出 Charles 。

我们看到所有的大部分请求都有 seed、sign、user_id、dy_udid等字段。将请求导入到 Paw  中,重试几次发现可以正常通过。

从这简单的几步,我们已经知道了如下信息:
  • 每个请求都有时间戳和签名
  • 服务器只判断请求本身合不合法,不检查请求时间戳是否在允许范围内
现在我们要从 app 入手看签名算法了。
将砸壳后的 app 拖到 Hopper Disassembler 中,搜寻字符串。这里提示一个小技巧,从请求上分析我们知道有很多字段可以用来定位,稍稍思考一下,就知道 sign、user_id、dy_udid 的使用场景比seed 多很多,所以这里我们搜索 seed 来定位。

这一搜很快啊,马上就看到了目标:

查找 References 看看有哪些地方用到了:
这里可以看到类似 sub_1004acbf4 等函数名,这告诉我们,代码经过了混淆,之后的分析会比较麻烦。随手点进一个看看实现,好家伙,我直接好家伙,这就是我们要找的代码。
在这附近能看到 sign ,看到 sign 我就兴奋起来,当时我就念了两句诗。
还没来分析算法呢,我就看到了一串奇怪的字符串出现在sign的附近,没错,就是 N@ZRYhAj7~),@fcz.Sntz87*pn0uu=G6。男人的第六感告诉我,这个东西不对劲,很有问题。