さまざまなアプリケーション(つまり、アプリケーションに関係なく)によって動的に読み込まれたライブラリをどのようにキャプチャするのかよくわかりません。私は、システムに動的にロードされるライブラリ名をログに記録する必要があるツールを作成しようとしています。それを行うAPIはありますか?システム全体にロードされたライブラリをキャプチャするには?
答えて
確かに、ライブラリをロードするときにld-linux(8)(および/またはld.so(8))をログに記録してください。
ハッキングではなく、別の方法ですか? – Whoami
最初にやろうとしていることが恐ろしいハックですが、なぜハックではないソリューションがほしいのですか? –
ダイナミックローダーへの呼び出しを傍受して、あなたのものを行い、呼び出しを実際のローダーにチェーンすることができます。
コマンドを使用して、ローダーがどこにあるかあなたは発見することができます。
$ objdump -s -j .interp /bin/ls
(/bin/ls
は単なるサンプルアプリケーションです)。
その他のオプションは、環境変数LD_DEBUG
とLD_DEBUG_OUTPUT
を設定し、デバッグ出力に書き込まれたテキストを解釈することです(詳細はman ld.so
を参照してください)。
さらに別のオプションは、/proc/*/maps
ファイルを定期的に読み取ってそこのsahredファイルを解釈することです。
/proc疑似ファイルシステムを使用することもできます。 (thisも参照してください)。 /proc/1234/maps
などなどと、あなたがmmap
-edであるファイルを見つけることができます...
そしてもちろん、あなたがLD_PRELOAD trick
- 1. ページ全体がロードされる前にbootstrap-select.jsをロードするには?
- 2. cefSharpページ全体がロードされたときに検出する
- 3. システム全体の連続したlinuxライブラリのプロファイリング
- 4. データベース全体をメモリにロード
- 5. Inodeテーブル全体がメインメモリにロードされるのですか?
- 6. Ruby irbrc_historyシステム全体。それをローカルにする方法?
- 7. ウェブページ全体がロードされた後にスクリプトを実行する方法
- 8. ウィンドウ全体でポインタをキャプチャする
- 9. ubuntuでシステム全体のモジュールにpythonでアクセスするには?
- 10. マテリアルコンポーネントをインポートするとライブラリ全体がインポートされますか?
- 11. システム全体の(ネイティブ)オーディオエフェクトをメディアプレーヤーアプリケーションに継承する方法は?
- 12. システム全体のナゲットパッケージをインストールするには?
- 13. システム全体のFlaskのインストール
- 14. テーブル全体をモデルにロードするには?
- 15. ストリーム全体をMemoryStreamにロードするには?
- 16. Delphi 2007 - "MainFormOnTaskBar:= True"を設定すると、システム全体のホットキーが「システム全体」ではありません。
- 17. 完全にロードされた後にhtml5ビデオを再生する
- 18. ページが最初にロードされた後にjQueryライブラリをロードする
- 19. mySQLテーブル全体をPHP配列にロード
- 20. PowerShellでシステムにロードされたモジュールをアンロードします
- 21. .DLLをシステム全体に公開する方法(Windows)
- 22. i3でubuntuでシステム全体の逆スクロールを有効にする
- 23. Androidでシステム全体を確実に一時停止する
- 24. ページ全体がロードされる前のローダーを表示
- 25. Python標準ライブラリ全体をインポートする
- 26. 静的にコンパイルされたライブラリをJavaでロードする
- 27. jarのクラス全体をバイト配列でロードするには?
- 28. sparkでテーブル全体のロードを停止するには?
- 29. ファイル全体をメモリにロードせずにストリーミングしたJSファイルアップローダ
- 30. NSDocumentのディレクトリパスにキャプチャされたイメージを保存してコレクションビューにロードする
はあなたには、いくつかの(またはすべて)が使用しているすべての共有ライブラリを知りたいです持ってランニングアプリケーション、または共有ライブラリの読み込みをキャッチしたいですか? –