so的一些信息

1.查找动态库so所依赖的其他库:

 

objdump -x libtest.so | grep NEED

 

结果例如:

 

  NEEDED               libc.so
  NEEDED               libdl.so

 

即,需要libc和libdl两个so。

 

2.也可以用ndk中的:

android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ld libtest.so来察看更详细的so信息

 

3.察看so中的函数符号:

 

readelf -s libtest.so | grep Init

 

4.也可以用ndk中的:

android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-readelf -d libtest.so

 

5.察看so的文件信息:

 

file libtest.so

 

结果:

libtest.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped

not stripped意味着这个so可以Debug,可以反编译。

 

又如:


file libjni_test.so
libjni_test.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped


这个libjni_test.so 就不能反编译了。

 

你可能感兴趣的:(so)