1

BroadcastReceiver内でonReceiveメソッドをフックする方法は?

public class RecentsActivity extends Activity
{
  mIntentReceiver = new BroadcastReceiver()
  {
    public void onReceive(Context context, Intent intent)
    {
      ...
    }
  };
}
4

1 に答える 1

1

BroadcastReceiver は抽象クラスであり、これはインライン クラス定義であるため、おそらくこの BroadcastReceiver を次の方法で取得できます。

for(Class<?> cls : <package_name>.RecentsActivity.class.getDeclaredClasses()){
    if(BroadcastReceiver.isAssignableFrom(cls)){
        //hook onReceive
    }
}

それ以外の場合は、 apktoolを使用してアプリケーションの smali コードを確認してください。

おそらく、RecentsActivity$N (N は数字) という名前のファイルがあります。Class.forName("<packagename>.RecentsActivity$N")このクラスの onReceive メソッドを実行してフックするだけです。

幸運を!

于 2014-12-10T14:36:05.147 に答える