android编译动态链接库时,缺省的编译选项下默认所有的符号表都会导出, 这导致别人很容易通过符号表获取动态库里的相关信息。
通过增加-fvisibility=hidden选项有时候能影藏部分符号表,如何根本上解决这个问题呢,本文介绍的“jni加密器”就能解决此功能。
1.安装jni加密器:sec.apk
下载链接:http://apk.91.com/Soft/Android/com.sn.sec-2.html
2. 把so拷贝到手机上, 用jni加密器打开它,如下图:
3. 设置过滤条件
点击设置按钮, 对过滤条件进行设置
例如要对所有包含x264的符号进行加密,在”包含“里输入x264,如果需要保留所有包含java或者com的符号表, 则在”不包含“项填java com。
4.加密
加密后符号表如下图:
现在所有包含x264的符号全部影藏起来了