ELFファイル分析の重要なツール

1.ファイル

ファイルを表示するための簡単な情報

BriansdeMacBook-Pro:armeabi-v7a brian$ file libcheckcert.so 
libcheckcert.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped

2.ストリップ

ELFファイル内の不要なシンボルとデバッグ情報を削除します。


3. nm

ELFファイルのシンボルを表示する

BriansdeMacBook-Pro:armeabi-v7a brian$ arm-linux-androideabi-nm -D libcheckcert.so 
00004fb4 T JNI_OnLoad
00015da4 T _Unwind_Backtrace
000152a0 T _Unwind_Complete
000152a4 T _Unwind_DeleteException
00015d80 T _Unwind_ForcedUnwind
00015144 T _Unwind_GetCFA
0001623c T _Unwind_GetDataRelBase
00016220 T _Unwind_GetLanguageSpecificData
00016210 T _Unwind_GetRegionStart
........


4. readelf

これは、ELFファイルを分析するための最も重要なツールの1つであり、ELFファイルのヘッダーと、各セクションおよびセグメントに関する詳細情報を表示できます。


5. objdump

readelfと同様、違いはそれらが異なる方法で実装されていることですObjdumpはより一般的なBFD(Binary Format Descriptor)ライブラリに基づいており、readelfはELFフォーマットファイル専用です。さらに、readelfはデバッグ情報を表示できますが、objdumpは表示できません。


6. ldd

ELFファイルが依存する共有ライブラリの詳細を表示します。

$ ldd /bin/ls
        linux-gate.so.1 =>  (0xb7711000)
        libselinux.so.1 => /lib/libselinux.so.1 (0xb76e5000)
        librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb76dc000)
        libacl.so.1 => /lib/libacl.so.1 (0xb76d4000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb758d000)
        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7589000)
        /lib/ld-linux.so.2 (0xb7712000)
        libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7570000)
        libattr.so.1 => /lib/libattr.so.1 (0xb756b000)



元の記事を60件公開 44のよう 訪問数340,000以上

おすすめ

転載: blog.csdn.net/beyond702/article/details/53540950