首页
社区
课程
招聘
[原创]最右APP协议加密算法分析笔记
发表于: 2018-10-17 14:19 53095

[原创]最右APP协议加密算法分析笔记

2018-10-17 14:19
53095

IDA7.0

lldb

Charles

本次分析的版本是4.2.1(在目前最新版本4.6.4中依然适用)

开始前先进行如下步骤

1.app砸壳后用IDA加载

2.配置抓包工具charles

ok 开始前不会使用Charles的可以搜索关键字"Charles ios https"或直接查看该链接"https://www.cnblogs.com/junhuawang/p/7280957.html" 其中https如何抓包都有详细讲解 此处不在赘述

首先开启抓包工具 打开APP刷新内容抓包结果如下


通过POST请求可以看到url上有个"sign"参数,每次请求该sign都会发生变化,接下来使用IDA进行分析该参数来源。

IDA中字符串搜索"sign=" 根据字符串推测是最后一个 鼠标左键双击进入

看到下图

在图中高亮处按下X键或者右键选中“jump to xref to operand”

弹出如下内容 点击ok


继续在图中高亮处按下X键或者右键选中“jump to xref to operand” 


弹出如下内容

根据分析得知"[ZYAPIClient postWithURL:parameters]"中有sign来源 双击进入

按下f5转换为伪代码进行查看

如上图所示 sign的参数是通过调用"ZYAPIClient signWithParameters"返回的

此时先不关注v27参数内容是什么 等下动态调试再来看该参数内容

通过代码知道调用"ZYAPIClient signWithParameters"后返回sign值

继续使用IDA进行分析 在函数窗口中搜索“ZYAPIClient signWithParameters”双击跳转到如下图

得知参数是由“ZYCrypto signWithParameters”返回 那么函数窗口中继续搜索“ZYCrypto signWithParameters”

得知数据是调用了“sub_100FB6090”函数返回的 双击函数进入查看伪代码




查看代码得知还调用了"sub_100DB274C"和"sub_100FB6004"两个函数 接下来查看这两个函数

跳转到“sub_100DB274C”函数后肉眼可以看出是一系列循环位操作计算 流程图如下 逻辑清晰 无混淆 看起来并不复杂 代码量不算多

函数“sub_100FB6004”如下图

函数到此为止 记录下调用流程

下面开始动态调试(对于lldb的配置此处不再赘述)

首先ssh到手机


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-8-27 18:02 被尐进编辑 ,原因: 图片比例问题修改
上传的附件:
收藏
免费 3
支持
分享
最新回复 (20)
雪    币: 5482
活跃值: (3272)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2

最后于 2018-10-17 14:58 被尐进编辑 ,原因:
2018-10-17 14:44
0
雪    币: 36
活跃值: (1061)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
mark楼主辛苦
2018-10-17 19:18
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
刚好也在研究,非常具有参考价值,多谢了。
2018-10-19 09:49
0
雪    币: 473
活跃值: (178)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
看起来像是一个变形的md5?
2018-11-15 14:51
1
雪    币: 1
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
给个联系方式吧
2019-4-1 18:43
0
雪    币: 338
活跃值: (107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
给个联系方式吧
2019-4-11 23:37
0
雪    币: 219
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
人才应用扣425445311
2019-6-15 15:35
0
雪    币: 29
活跃值: (295)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
jinsheng 看起来像是一个变形的md5?
追加了新的内容 "ZDY0MTBlODcx" 最后将字符串前十位和后十位进行交换后,这两个处理函数好像就是md5
sub_100DB274C((u_int64_t)str.c_str(), str.length(), (u_int64_t)szBuff);
sub_100FB6004((u_int64_t)szSign, (u_int64_t)szBuff); 
2020-2-8 19:58
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
你好,问一下,现在的签名还是使用加上内容 “ZDY0MTBlODcx”, 然后前后换位的吗?我现在使用这个签名已经获取不了数据了,返回的是 {"ret":-1,"msg":"出现了一个小问题,请稍后再试"},使用抓包看了一下,他好像所有签名都加上了v2-开头
2020-6-4 15:58
0
雪    币: 210
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
V5.4.8版本已经修改api了,抓包内容全部加密
2020-6-4 22:05
0
雪    币: 5482
活跃值: (3272)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
14
周小鱼 V5.4.8版本已经修改api了,抓包内容全部加密
近期会更新一篇分析最新版本的
2020-6-8 09:36
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
尐进 近期会更新一篇分析最新版本的
已关注·~~·~~~
2020-6-8 10:20
0
雪    币: 23
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
sign-v2 算法已还原完毕, 应该是魔改的md5
2020-6-30 20:37
0
雪    币: 23
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
https://bbs.pediy.com/thread-260417.htm
2020-7-1 00:41
0
雪    币: 5482
活跃值: (3272)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
mb_aewgndev 已关注·~~·~~~
已更 https://bbs.pediy.com/thread-262385.htm
2020-9-30 11:10
0
雪    币: 12
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
你好,给个联系方式,我有一些逆向问题请教
2020-12-21 02:40
0
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
你好,给个联系方式,想用抖音那套
2021-10-19 18:40
0
雪    币: 239
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
ins协议算法怎么卖
2022-10-22 09:22
0
游客
登录 | 注册 方可回帖
返回
//