通过对调试日志输出的函数进行挂钩拦截,按照预设的等级允许或者阻止调试日志的输出,即可实现防日志输出的效果,统一关闭App、第三方SDK插件和so文件产生的所有调试日志。 所有的Android App调试日志输出最后都会运行liblog.so中的_ android_log_ print/write()函数。函数原型如下:
- <font size="4">int _android_log_ print (int prio,const char *tag, const char *fmt, …);
- int _android_log_write (int prio, const char *tag, const char *text);</font>
复制代码prio泰示输出日志的优先级,tag表示日志的TAG,其他的参数为调试日志输出的字符串。若对上述函数进行挂钩,可以根据参数完成过滤,从而统一关闭调试日志。 本节的App防护措施能够解决安全测试过程中出现的日志泄露问题。在App数据生命周期中的数据处理阶段,如果APP发布时没有及时删除敏感函数功能的调试日志,就会导致后台打印日志泄露用户敏感数据或泄露代码逻辑。通过加固日志保护处理后,在APP运行期间,后台将没有敏感日志同步输出。 |