Android逆向之旅---静态分析技术来破解Apk (3)

Android逆向之旅---静态分析技术来破解Apk


但是这里我们可能会遇到一个问题,就是如果应用程序太大的话,这个打开的过程中会很慢的,有可能IDA停止工作,所以要慢慢等啦:

Android逆向之旅---静态分析技术来破解Apk


打开之后,我们可以看到我们的类和方法名,这里还可以支持搜索类名和方法名Ctrl+F,也可以查看字符串内容(Shirt+F12):

Android逆向之旅---静态分析技术来破解Apk


我们发现IDA也是一个分析Java代码的好手,所以说这个工具太强大了啦啦~~


四、案例分析

上面讲解了静态分析的破解技术,那么下面就开始使用一个例子来看看静态分析的技术。

第一、静态分析Java(smail)代码

首先我们拿到我们需要破解的Apk,使用apktool.jar工具来反编译:

java -jar apktool.jar d xxx.apk

Android逆向之旅---静态分析技术来破解Apk


这个apk很是容易就被反编译了,看来并没有进行任何的加固。那就好办了,我们这里来改一下他的AndroidManifest.xml中的信息,改成可调式模式,这个是我们后面进行动态调试的前提,一个正式的apk,在AndroidManifest.xml中这个值是false的。

我们看看他的AndroidManifest.xml文件:

Android逆向之旅---静态分析技术来破解Apk


我们把这个值改成true.在回编译,这时候我们就可以动态调试这个apk了,所以在这点上我们可以看到,静态分析是动态分析的前提,这个值不修改的话,我们是办法进行后续的动态调试的。

修改成功之后,我们进行回编译:

cd C:\Users\jiangwei\Desktop\静态分析\apktool_2.0.0rc4
del debug.sig.apk
java -jar apktool.jar b -d 123 -o debug.apk
java -jar .\sign\signapk.jar .\sign\testkey.x509.pem .\sign\testkey.pk8 debug.apk debug.sig.apk
del debug.apk
adb uninstall com.shuqi.controller
adb install debug.sig.apk
adb shell am start -n com.shuqi.controller/.Loading
pause

这里是为了简单,写了一个批处理,首先进入到目录,然后使用命令进行回编译:

java -jar apktool.jar b -d sq -o debug.apk

sq是之前反编译的目录,debug.apk是回编译之后的文件

这时候,debug.apk是不能安装运行的,因为没有签名,Android中是不允许安装一个没有签名的apk

下面还要继续签名,我们用系统自带的签名文件即可签名:

java -jar .\sign\signapk.jar .\sign\testkey.x509.pem .\sign\testkey.pk8 debug.apk debug.sig.apk

注:其实我们在用IDE工具开发android项目的时候,工具就是用这个签名文件进行签名的,只是这个过程IDE帮我们做了。

后面就是直接安装这个apk,然后运行这个Apk。这个过程中我们只需要知道应用的包名和入口Activity名称即可,这个信息我们在AndroidManifest.xml中也是可以获取到的,当然我们用:adb shell dumpsys activity top 命令也可以得到:

Android逆向之旅---静态分析技术来破解Apk


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgysgd.html