相关疑难解决方法(0)

如何从已编译的二进制文件中删除字符串(.so)

如何从/混淆编译的二进制文件中删除字符串?目标是避免让人们阅读里面的函数/方法的名称.

它是一个动态库(.so),使用NDK工具(包括GCC)从Android的C++代码编译

我编译-O3并已经用于arm-eabi-strip -g mylib.so删除调试符号,但是当我这样做时,strings mylib.so所有函数/方法的名称仍然可读.

linux android gcc compilation android-ndk

15
推荐指数
2
解决办法
1万
查看次数

如何从 Android NDK .so 文件中去除符号?

如何从 Android.so原生代码库中剥离符号?

我有一个.so在十六进制编辑器中清晰可见的数千个符号。IDA Pro 根据可执行文件中的符号自动使用适当的符号进行反汇编。

但是,如果我要求nm转储符号表,它会说没有。 strip并且objcopy也没有效果。

C:\AndroidProject.apk\lib\armeabi-v7a>arm-linux-androideabi-strings.exe libMeow.so | findstr _ZN11SecretClass14SecretFunctionERKS_
_ZN11SecretClass14SecretFunctionERKS_

C:\AndroidProject.apk\lib\armeabi-v7a>arm-linux-androideabi-nm.exe libMeow.so
arm-linux-androideabi-nm.exe: libMeow.so: no symbols

C:\AndroidProject.apk\lib\armeabi-v7a>copy /y libMeow.so libMeow-test.so
        1 file(s) copied.

C:\AndroidProject.apk\lib\armeabi-v7a>sha1sum libMeow.so libMeow-test.so
0a36701ba44b4cfb31e6f6506349493d5466cd70 *libMeow.so
0a36701ba44b4cfb31e6f6506349493d5466cd70 *libMeow-test.so

C:\AndroidProject.apk\lib\armeabi-v7a>arm-linux-androideabi-strip.exe libMeow-test.so

C:\AndroidProject.apk\lib\armeabi-v7a>sha1sum libMeow.so libMeow-test.so
0a36701ba44b4cfb31e6f6506349493d5466cd70 *libMeow.so
0a36701ba44b4cfb31e6f6506349493d5466cd70 *libMeow-test.so

C:\AndroidProject.apk\lib\armeabi-v7a>arm-linux-androideabi-strip.exe -g libMeow-test.so

C:\AndroidProject.apk\lib\armeabi-v7a>sha1sum libMeow.so libMeow-test.so
0a36701ba44b4cfb31e6f6506349493d5466cd70 *libMeow.so
0a36701ba44b4cfb31e6f6506349493d5466cd70 *libMeow-test.so
Run Code Online (Sandbox Code Playgroud)

名称已更改以保护有罪的人。

android debug-symbols android-ndk

7
推荐指数
1
解决办法
7450
查看次数

标签 统计

android ×2

android-ndk ×2

compilation ×1

debug-symbols ×1

gcc ×1

linux ×1