看非虫大神的android软件安全与逆向分析进行学习,并且记录。

路过可以免费评分一下呀。

一起学习哦。

IDA Pro Android 静态分析

工具使用:

安卓工具箱->IDA64位
2.FlexHEX
3.DexFixer
4.signed

正式开始:

1.解压crackme0502.apk,并且打开IDE

apk下载:https://pan.baidu.com/s/1bpnTSNt 密码:q9gi

2.把.dex文件拖进IDE,然后在弹出的窗口点击ok。

3.安装apk进行实用。

分析:有两个按钮监听的事件,所以从onclick为出发点。

4.使用快捷键alt+t打开窗口输入onclick,进行搜索。

找到了几个onclick方法。

5.点击索引,就可以去当前页面,我们可以看到一个if语句还有一段乱码。

6.这里我们涉及到一个问题,就是解决乱码的问题,看了众多资料,终于解决,解决方法如下。

(1)alt +a 进入设置界面,重点在方框内容。
(2)点击这个
(3)点击这个
(4)然后选择utf-8
(5)确定,再确定,中文就出现了

(6)咳咳,我们来继续静态调试。这里的if-eqz是重点

(7)查看hex 16进制编码


(8)使用二进制软件打开进行更改,这里涉及到一个知识点。

if-eqz是 期存器==0,编码38
if-nez是 寄存器!=0,编码39
所以我们需要把38改为39,也就是吧eqz改为nez

突然意识到还要写FlexHEX的使用方式,鼠标还在卡顿,好吧,写完再整。
把.dex文件拖进FlexHEX软件。

(9)ctrl+f搜索关键字【38 02 0F 00】也就是if-eqz的编码

(10)找到之后进行更改然后保存。

注意一定要比对前后的16进制的编码,不然可能会改错位置。

(11)安装进行测试。

发现安装失败
寻找答案,原来是因为dex被篡改过的dex文件在验证时计算checksum会失败,导致程序安装失败,我们需要重新计算并写回checksum值。

(12)使用DexFixer软件进行修复

(13)删除META-INF文件

(14)然后进行签名,安装进行测试(签名的教程就不发了,有需要再写吧,有点累)