亚洲乱码一卡二卡四卡乱码新区_亚洲乱码中文字幕小综合_亚洲人成电影在线播放_亚洲性色AV一区二区三区_亚洲一区二区三区影院_亚洲中文字幕久久精品无码A_亚洲中文字幕无码专区_伊人热热久久原色播放WWW_在线观看AV永久免费_最新欧洲大片免费在线,欧美日韩成人三级免费看,久久黄色网址,欧美激情内射喷水高潮

首頁(yè)
社區(qū)
課程
招聘
Frida如何在內(nèi)部類中獲得外部類對(duì)象(如MainActivity.this)

比如有一個(gè)Android常見的語(yǔ)法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MainActivity extends AppCompatActivity{
    private void test(){
        Log.e("Test","Frida OuterClass");
    }
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                  MainActivity.this.test();
             }
        });
    }

現(xiàn)在想要通過(guò)Frida,,hook匿名內(nèi)部類(實(shí)質(zhì)上是內(nèi)部類)的onClick的方法,,我嘗試了如下的錯(cuò)誤方式并不能成功,,所以請(qǐng)教一下,如何獲取上面代碼中的MainActivity.this對(duì)象,并調(diào)用test方法呢,?(請(qǐng)寫出JS方法)

1
2
3
4
Java.use('com.example.app.MainActivity$a').onClick.implementation = function(){
    //如下方法是我在測(cè)試的時(shí)候嘗試的錯(cuò)誤方法
    Java.use('com.example.app.MainActivity').this.test();
}

附:我還做過(guò)一些嘗試,通過(guò)Java.choose搜索堆中存在的MainActivity對(duì)象,,然后再調(diào)用test方法,,但是不知道為什么使用Java.choose方法一調(diào)用,APP就會(huì)閃退(這種情況只會(huì)出現(xiàn)在比較大的APP中),,希望有大佬能順便指點(diǎn)一下,,萬(wàn)分感謝,!

收藏
3條回答
wx_Sambty 2021-10-5

我想通了家人們.
剛剛我去翻了一下反編譯后的smali代碼,發(fā)現(xiàn)了內(nèi)部類MainActivity$a中存在一個(gè)屬性c2(具體名稱得翻smali代碼,可能每個(gè)都不一樣),結(jié)合Java虛擬機(jī)的知識(shí),這應(yīng)該就是內(nèi)部類中指向外部類的指針.
于是Frida腳本出來(lái)了

1
2
3
4
5
6
Java.use('com.example.app.MainActivity$a').onClick.implementation = function(){
    //如下方法是我在測(cè)試的時(shí)候嘗試的錯(cuò)誤方法
    Java.use('com.example.app.MainActivity').this.test();
    //如下方法是有效的
    this.c2.value.test();
}
回復(fù)
wx_YwY 2021-10-27 2021-10-27編輯
1
2
3
4
5
6
7
8
Java.perform(function () {
    my_main_activity = Java.use("com.example.app.MainActivity$a");
    my_main_activity. onClick.overload().implementation = function () {
        Java.use('com.example.app.MainActivity').test()
res = this.onClick();
return res
    }
});
回復(fù)
kkandy 2023-9-12

內(nèi)部類只要不是靜態(tài),肯定有外部類的指針(對(duì)象)參數(shù)的

回復(fù)
Frida Android
  參與學(xué)習(xí)     人
  提問(wèn)次數(shù)     100 個(gè)
我的問(wèn)答 領(lǐng)取收益
0
我的提問(wèn)
0
我的回答
0
學(xué)習(xí)收益