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

加好了我们的日志代码之后,下面我们就回编译执行,在这个过程可能会遇到samil语法错误,这个就对应指定的文件修改就可以了,我们得到回编译的apk之后,可以在反编译一下,看看他的java代码:

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


我们看到了,我们添加的代码,在每个方法之后打印信息。

下面我们运行程序,同时开启我们的log的tag:adb logcat -s JW

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


看到我们打印的日志了,我们发现打印了三个log,这里需要注意的是,这里虽然打印了三个log,但是都是在不同的进程中,所以说一个进程中的log的话,只打印了一个,所以我们判断,问题出现在vr.h这个方法

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

我们查看这个方法源码:

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


果然,这个方法做了签名验证,不正确的话,直接退出程序。那么我们现在要想正常的运行程序的话,很简单了,直接注释这行代码:vr.h(this)

然后回编译,在运行,果然不报错了,这里就不在演示了:

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


好了,上面就通过注入代码,来跟踪问题,这个方法是很常用,也是很实在的。


第二、静态分析Native代码

下面继续来介绍一下,如何使用IDA来静态分析native代码,这里一定要熟悉汇编指令,不然看起来很费劲的。

我们在反编译之后,看到他的onCreate方法中有一个加载so的代码

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

看看这个代码:

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


获取密码的方法,是native的,我们就来看看那个getDbPassword方法,用IDA打开libpsProcess.so文件:

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


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

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