看非虫大神的android软件安全与逆向分析进行学习,并且记录。
路过可以免费评分一下呀。
一起学习哦。
IDA Pro Android 静态分析
工具使用:
1.吾爱破解安卓工具箱->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软件进行修复
(14)然后进行签名,安装进行测试(签名的教程就不发了,有需要再写吧,有点累)
|