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의 많은 도움의 밤은 어느 JNI로
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 후크가있는 공유 라이브러리에서 함수 서명을 가져 오는 방법이 있어야합니다. –