Android逆向java
经常使用Android快速定位关键代码介绍编程
根据程序运行中出现的特征字词进行搜索,从而获取定位到程序相关位置之中,之前用的比较多,不过如今通常难以找到想要的关键字,有时候须要对特征字进行拆分来进行搜索,才能得到一点提示api
经过挂钩关键的系统api,从而截取程序运行时候的数据,分析程序行为从行为上入手,一步一步地逼近关键点,这点算是比较难用到的技巧,须要对Android函数以及编程方面至关的熟悉,才能使用框架
使用到Xposed或者cydia之类的Hook框架,手动编写Hook代码,勾取须要的函数,动态dump出须要的信息ide
Android Log信息,是Android程序运行过程当中,产生的一些运行信息,这些信息多是因为目标程序产生的,也有多是系统进程产生的。总之,能够提供很是多的信息,遇到问题,先找log,确定是对的。函数
跟踪程序运行中的各个Thread的调用与运行类调试
进程函数调用跟踪,通常会跟踪到不少的Trace函数,比较复杂,须要花费不少的时间去分析Trace数据
startMethodTracing()—stopMethodTracing()进程
对本身关注的地方,手动插入log数据,自动打印出程序运行时候的参数ci
动态调试很强大,熟悉了对程序分析颇有用字符串
log插入为例
如一个静态返回helloword的方法:
.class public Lf8/helloword/helloStr;.super Ljava/lang/Object;.method public static retHello()Ljava/lang/String;.locals 1const-string v0,“hello word”return-object v0.end method