huolong blog

Frida踩坑笔记

慎用Js箭头函数

前段时间在逆向app时候需要hook onCreate函数,需要调用父类的onCreate的方法进行初始化,此时修改函数内部逻辑时候碰到了两个问题:

  1. 父类的super函数如何获取
  2. 使用箭头函数时候this为null

需要注意调用父类函数正确写法为:this.$super 此外以下使用箭头函数hook的写法是错误的,此时获取的this值为null

Java.use("com.hex.wanshiwu.v2.splash.SplashActivityV2")
            .onCreate.implementation = (bundle)=>{
                this.$super.onCreate(bundle)
                let intent = Java.use("android.content.Intent")
                .$new(this,Java.use("com.hex.wanshiwu.v2.main.MainActivityV2").class)
                this.startActivity(intent)
        }

正确写法如下:

Java.use("com.hex.wanshiwu.v2.splash.SplashActivityV2")
            .onCreate.implementation = function(bundle){
                this.$super.onCreate(bundle)
                let intent = Java.use("android.content.Intent")
                .$new(this,Java.use("com.hex.wanshiwu.v2.main.MainActivityV2").class)
                this.startActivity(intent)
        }