根据国家互联网金融风险分析技术平台监测数据显示:截至 2020 年 5 月底,共发现 2801 个互联网金融仿冒 App ,仿冒 App 下载量高达 3343.7 万次。
“李逵”和“李鬼”
互联网环境下,盗用和剽窃能有多简单?
先看一波新闻标题感受下:
- 《北斗卫星导航系统全球免费,却因山寨app收费20元连中国人都误会》
- 《500万人用山寨12123查违章?高仿APP不只是坑钱》
- 《关注:小米金融被骗子盯上遭假冒,真假难辨山寨APP要警惕!》
- ……
根据国家互联网金融风险分析技术平台监测数据显示:截至 2020 年 5 月底,共发现 2801 个互联网金融仿冒 App ,仿冒 App 下载量高达 3343.7 万次。
伴随着移动应用数量的井喷式增长,对于一个 App 来说,被山寨和盗版无疑成为了每一个应用开发者最头疼与烦恼的问题之一。
移动端黑产日益壮大,伴随而来的逆向攻击手段也越来越高明,基于 java 开发的 Android 应用因其语言的特性和系统的开源属性,大量 Android 应用程序面临着应用程序遭逆袭破解、知识产权被侵犯、被二次打包签名等安全问题。
为解决上述问题,在 APK 上传至应用市场之前,需要先对 APK 进行加固并对加固后的 APK 进行兼容性测试,可最大限度保障应用不被破解。
加固技术的演进与优化
传统加固
第一代加固技术采用的是Dex加密存储,解密时落地;落地之后通过自定义的DexClassLoader将解密出的Dex加载到内存中,然后程序运行该文件(Dex是APK的Java代码经过编译后生成的文件,可以简单理解为Java的逻辑)。
其脱壳方式很简单:因为Dex加密是整体进行的,解密时还会落地。可以通过HOOK文件操作(