Android
アプリケーション内の特定のコード行に対してシステム コールをトレースしたいのですが、strace
orを使用してsystem call hooking
、 に対してシステム コールのリストを取得できますAPK
。
関心のあるコード行の前後に配置できるように、システムコールの正確な数がすでにわかっている関数呼び出しやその他のものがあるかどうか疑問に思っていましたか?
Android
アプリケーション内の特定のコード行に対してシステム コールをトレースしたいのですが、strace
orを使用してsystem call hooking
、 に対してシステム コールのリストを取得できますAPK
。
関心のあるコード行の前後に配置できるように、システムコールの正確な数がすでにわかっている関数呼び出しやその他のものがあるかどうか疑問に思っていましたか?
あなたがやろうとしていることの問題は、あなたのワンステップが Java VM によって基礎となるシステムから切り離されたことです。アプリが制御できない、あらゆる種類のシステムコール関連の処理を足元で行うことができます。
Android 以外の世界では、最も頻繁に使用されるシステム コールは「gettimeofday」です。これは、ライブラリ関数によってキャッシュされることはなく、かなり簡単に発生するためです。ただし、前の質問で指摘したように、VM が独自に gettimoufday 呼び出しを行っているため (おそらく会計目的で)、これははるかに困難です。そのため、システム コールが発生するが VM によって正常に呼び出される可能性が低い Android 関数を選択する必要があります。API を調べている候補には次のようなものがあります。
幸運を。
あなたは自分自身を見つけることができます。「helloworld」アプリでシステムコールをカウントし、それに関数呼び出しを追加し、呼び出しを再度カウントします。違いは、追加された関数によって行われた呼び出しの数です。