![c986fb694ae5c3fc8c62cd8bcf47773a.png](https://img-blog.csdnimg.cn/img_convert/c986fb694ae5c3fc8c62cd8bcf47773a.png)
本人菜鸟,初入逆向,前段时间把sig算法通过ida阅读伪代码和arm汇编进行了还原,花了4天时间,殊不知已有大神已经发有分析帖子了
(link:https://bbs.pediy.com/thread-254328.htm)
一、前言目标APP的sig3算法前面已经做足了功夫,这里只陈述一下我是如何找到sig3算法的,并没有把算法还原,因为so层onload有大量ollvm,目前还处于学习阶段,还没有触及,日后学成在继续发帖分享下学习笔记。
二、定位入口本次目标APP版本是7.2.4.13202,这里使用Charles抓包知道了sig3的全称:
sig3全称是 _NS_sig3 ,这里将app拖入jadx-gui进行分析,使用字符串搜索大法进行初步查找:
通过框选区域发现,a3是来自a2.a方法,且str2通过上方代码得知是sig签名结果,b2是一个url,但是执行了b()可能进行了一些处理,这里暂时先不管b2数据是什么,先最终到最终a调用的地方。
三、算法最终定位String a3 = a2.a(b2 + str2); 跟进a方法的声明:
通过查看a的方法声明,发现是一个interface,这里直接右键查看调用例:
发现只有一处地方使用了implements,进去查看具体代码实现:
继续跟进getSigWra