欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

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

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

IOS协议逆向分析—最右app协议签名算法逆向

本次使用的工具

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”如下图

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

"ZYAPIClient signWithParameters" -> "ZYCrypto signWithParameters" -> "sub_100FB6090" -> "sub_100DB274C" -> "sub_100FB6004"

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功