• H5 app开启web调试


    前言:

    在Android app逆向时,H5类型的app的加密通常在js中,所以就需要一种手段来查看源代码,查看加密过程。

    0、如何确认h5 app

    以狗东为例:

    随便选择一个元素,可以看到是控件下的一个类

    通过与H5类型的app对比:

     

     WebView  |  Android Developers

    通过以上,就可以得知是否H5类型的app。

    1、调试

    确认是H5类型的app后,接下来就要进行调试。

     1.1、进入调试页面

    科学上网前提下,chrome输入chrome://inspect/进入调试页面。如果app打开了调试权限,那么可以看到出现了调试选项。

    当然,release的app是不会开启这个选项的。

    1.2、开启app调试

    WebView.setWebContentsDebuggingEnabled(true); //开启调试

    使用frida hook android.webkit.WebView类下的setWebContentsDebuggingEnabled 方法,始终设置为true即可。(当然frida检测,root检测另说)。

    js脚本:

    1. Java.perform(function () {
    2. //实例化一个对象
    3. var WebView = Java.use('android.webkit.WebView');
    4. //重写WebView类的重载方法,因为setWebContentsDebuggingEnabled不是静态方法,所以需要一个对象来调用这个方法
    5. WebView.$init.overload('android.content.Context').implementation = function (a) {
    6. console.log("WebView.$init is called!1");
    7. var retval = this.$init(a);
    8. this.setWebContentsDebuggingEnabled(true);
    9. return retval;
    10. }
    11. WebView.$init.overload('android.content.Context', 'android.util.AttributeSet').implementation = function (a, b) {
    12. console.log("WebView.$init is called!2");
    13. var retval = this.$init(a, b);
    14. this.setWebContentsDebuggingEnabled(true);
    15. return retval;
    16. }
    17. WebView.$init.overload('android.content.Context', 'android.util.AttributeSet', 'int').implementation = function (a, b, c) {
    18. console.log("WebView.$init is called!3");
    19. var retval = this.$init(a, b, c);
    20. this.setWebContentsDebuggingEnabled(true);
    21. return retval;
    22. }
    23. //始终设置为true,打开调试
    24. WebView.setWebContentsDebuggingEnabled.implementation = function () {
    25. this.setWebContentsDebuggingEnabled(true);
    26. console.log("setWebContentsDebuggingEnabled is called!");
    27. }
    28. });
    29. // frida -U -f package_name -l .\hook.js --no-pause

    以spawn方式打开app,然后再进入调试页面,点解inspect即可进入调试。 

  • 相关阅读:
    Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】
    C语言王国——深入自定义类型(联合体、枚举)
    新一轮寒潮来袭!浙江电网首次应用运载无人机进行输电线路除冰作业
    QT修改windowTitle的名字以及图片
    MapReduce & YARN 的部署
    elasticsearch聚合之bucket terms聚合
    Spring Boot + Canal 实现数据库实时监控
    干货|工作中要使用Git,看这篇文章就够了
    夜天之书 #90 再谈 Rust 项目社群治理
    第10章、对象和类
  • 原文地址:https://blog.csdn.net/T_I_A_N_/article/details/127942293