AndroidでXposedフレームワークを使用しています。具体的には、潜在的な対策のためにブログ-http://d3adend.org/blog/?p=589を読んで、それらの行にいくつか質問があります。AndroidでXposed Frameworkフックメソッドを使用する方法
したがって、Xposedを使用してメソッドをフックすると、フレームワークはそのメソッドをネイティブにして、フックしたいコードを実行します。それでは、スタックトレースの元のメソッドはどのように呼ばれていますか?
com.example.hookdetection.DoStuff->getSecret //This one
de.robv.android.xposed.XposedBridge->invokeOriginalMethodNative
de.robv.android.xposed.XposedBridge->handleHookedMethod
com.example.hookdetection.DoStuff->getSecret //This one again
com.example.hookdetection.MainActivity->onCreate
android.app.Activity->performCreate
android.app.Instrumentation->callActivityOnCreate
android.app.ActivityThread->performLaunchActivity
android.app.ActivityThread->handleLaunchActivity
android.app.ActivityThread->access$800
android.app.ActivityThread$H->handleMessage
android.os.Handler->dispatchMessage
android.os.Looper->loop
android.app.ActivityThread->main
java.lang.reflect.Method->invokeNative
java.lang.reflect.Method->invoke
com.android.internal.os.ZygoteInit$MethodAndArgsCaller->run
com.android.internal.os.ZygoteInit->main
de.robv.android.xposed.XposedBridge->main
dalvik.system.NativeStart->main
なぜスタックトレースに2回表示されますか?私はそれらが実行される順序を理解したい。
実際の方法は実行されていますか?フックされたメソッドコードは実行されるので、理想的には元のメソッドコードを実行しません。それで、どのようにして同じ方法でストラットトレース検出機構を追加することができるのでしょうか?
あなたはこの部分を説明することができます「この拡張起動プロセスは、クラスパスに追加jarファイルを追加し、そこからのメソッドを呼び出します特定の場所 "を解説チュートリアルから削除します。 https://github.com/rovo89/XposedBridge/wiki/Development-tutorial – Suraj