Android逆向之旅--「最右」签名算法解析(ARM指令学习喜欢篇)

一、逆向分析

在之前已经介绍了最右这款App的签名算法解析第一篇工作,因为签名算法比较多,所以就分开处理,大家如果要看后续文章,一定要记得去详细看第一篇文章,不然我也不能保证你不懵逼!上一篇解析完了第一部分算法解析工作,这一篇继续操作,首先用IDA打开so查看第二部分代码,同时IDA动态调试so,具体步骤大家一定要去看第一篇内容,这里不再详细说了,我们动态调试到了第二部分加密算法:

640?wx_fmt=png

看到这段代码和之前的一段其实差不多,然后再看看静态的伪代码:

640?wx_fmt=png


看到arm指令的代码和伪代码位置不太一致,但是没关系,我们看关键点,比如arm指令的前几行是SUB和AND操作,而且看到是自减4然后和0xF进行与操作:

640?wx_fmt=png

640?wx_fmt=png

所以这时候看到伪代码的地方:

640?wx_fmt=png


所以有时候发现伪代码和动态调试的代码不一致没关系,只要看到特殊值找到对应代码即可,按照之前的规矩,把伪代码拷贝到之前的C代码中:

640?wx_fmt=png

首先依然是有个变量循环四次,每次递增4,然后是之前打印的四个常量值放在R0-R3寄存器中,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值