Xposed逆向安全检测360加固
纯属瞎编,最近研究了Xposed,⽤他来进⾏Hook安卓APP。⽤于检测和测试程序的安全。
背景,基于对于⽹络安全的学习。我尝试对⼀款app进⾏抓包分析。但是我遇到了困难,以往我其他的的APP抓包往往只需要⼏步即可完成抓包对数据进⾏分析。⼀般情况,http⽆需证书所以可以直接抓取。https则需要信任证书。这样的情况依然很容易实现。
但是⽬前的情况是该app在安装了证书的情况下,使⽤fiddler直接没有任何响应。换个⽅向,使⽤⼿机端的NetKeeper进⾏抓包。这次能抓到但是全是乱码。也就是没有解密的https流量。当然肯定没什么意义。
再尝试  Xposed+JustTrustMe关闭SSL证书验证  依然没有效果。思绪良久。
既然搞不定那我就HOOK 看看⼀步步的看看加载了哪些java class。加载了application MainActivity 。切换各个界⾯也只有⼀个Activity。这就有点头⼤了。在没对app脱壳的情况下分析确实很⿇烦。但是也不⽤失望。毕竟之前使⽤fillder的时候虽然没有任何响应,也没有任何请求的URL,但是给看到了域名还看到了User Agent 。 好的 就hook okhttp;
HOOK 准备环境搭建好,我们要获得请求 只需要hook okhttp3.Request  build⽅法即可获取到请求的UR
L和请求体。
hook返回的Response 可以直接对Respone 拦截即可。
惊喜的是我们获取到了请求的参数和返回值。但失望的是请求的参数和返回的值均为加密的字符串。既然⾛到了这⾥,也没有多少困难了。我们只需要看发起请求的类 和⽅法引⽤就能到发起请求分根源,再进⾏分析。
贴出获取当前线程调⽤的栈信息代码
public static void getMethod() {    StackTraceElement[] stackTrace =
Thread.currentThread().getStackTrace();    for (StackTraceElement e : stackTrace) {
ClassName() + "\t"                + e.getMethodName() + "\t" + e.getLineNumber());    }
StackTraceElement log = stackTrace[1];    String tag = null;    for (int i = 1; i <        stackTrace.length; i++) {
StackTraceElement e = stackTrace[i];        if        (!e.getClassName().ClassName())) { 
          tag = e.getClassName() + "." +        e.getMethodName();            break;        }    }    if (tag == null) {        tag = ClassName() + "." +        MethodName();
}
log(tag);
}
然后通过栈信息,就发现了 这个APP使⽤的是React Native。噢哟这种框架的APP加固也没有多⼤作⽤了。
⾛到这⾥是不是觉得前⾯的都⽩费了。当然没有,⾄少学会了慢慢分析。不放弃才到了最终。js代码加密软件
⾄于分析React Native 就分析JS 太简单了。将js修改后 HOOK JS的加载就能执⾏⾃⼰的js代码。这时候就利⽤console.log(); 输出你想要的数据  JSON.stringify()将对象序列化为json。
即使js代码被⼀定的混淆,可读性变差,不过我们只为了分析⽹络请求包。请求的url这些肯定是常量。很容易到。添加上⾃⼰的flag。轻松分析代码。所有的分析都完成了。
接下来说说⼯具的使⽤
推荐使⽤ Webstrom 因为RN的js⽂件是集中组合成⼀个⽂件的。为了更快的加载代码。我对⽐了⼏款编辑器。分别为VS code 、webstrom
、sublime Text3 、Hbuilder X。除了webstrom其他的编辑器响应很快。Hbuilder x 打开很快。但是在编辑的途中可能因为内存溢出⽽直接闪退。
为什么推荐使⽤webstrom 打开虽然慢了,任务管理器看内存 6M的JS顺利使⽤3G左右;整个编辑器⼏乎慢了不知道多少倍。慢是慢了点,不过他所有的功能都还能⽤。
因为代码被压缩,⽅法和变量命变得很难读。这个时候就需要webstrom的⼯能了,定位函数定义,定位变量定义。这功能其他软件也有但是市场失灵,或者认不到这是函数。
webstrom不同。按住ctrl+⿏标左键。直接跳转到函数定义的地⽅。愉悦的顺藤摸⽠。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。