0
我想從包含JNI膠合代碼的共享庫中提取相關的符號,但nm似乎沒有足夠的幫助。方法簽名不存在,所以我不知道要傳遞哪些參數。Android - NDK共享庫提取與nm/objdump相關的JNI鉤子
任何想法?有很大幫助
bash-3.2# ./arm-linux-androideabi-nm -D ~/Desktop/backup/whiteBox/libamplayerjni.so | grep Java
00030d6c T Java_com_farcore_playerservice_AmPlayer_GL2XScale
00030da8 T Java_com_farcore_playerservice_AmPlayer_close
00030d74 T Java_com_farcore_playerservice_AmPlayer_disable2X2XYScale
...
obdump心不是任何
bash-3.2# ./arm-linux-androideabi-objdump -TC ~/Desktop/backup/whiteBox/libamplayerjni.so | grep Java
00030c00 g DF .text 00000008 Java_com_farcore_playerservice_AmPlayer_getDivxInfo
00030c08 g DF .text 00000008 Java_com_farcore_playerservice_AmPlayer_setIVolume
00030c10 g DF .text 00000008 Java_com_farcore_playerservice_AmPlayer_mute
00030c18 g DF .text 00000008 Java_com_farcore_playerservice_AmPlayer_unmute
00030c20 g DF .text 00000008 Java_com_farcore_playerservice_AmPlayer_setVideoBlackOut
這聽起來似乎合理,但通常VM會抱怨它無法找到匹配簽名Lcom ...(IIIII)V的函數。 –
您必須確保該庫已加載 –
該庫已加載...必須有方法從共享庫中獲取函數簽名,並使用面向公共的JNI掛鉤。 –