APP加固方式全面升级,几维安全多种APP加密方式任你选!

来源:互联网 发布:c语言编写游戏教程 编辑:程序博客网 时间:2024/05/22 10:40

众所周知,APP进行有效的加固可以防止应用被破解、防止二次打包、防止外挂、防止恶意篡改等,从而保护APP数据不被泄露出去。几维安全为了维护开发者和用户的利益,在原有的APP加固基础之上不断进行技术创新,现有多种APP加固方式供个人开发者、企业用户进行自由选择。接下来几维安全小编为各位详细介绍Android加固和iOS加固,快来选择适合你的加密方式。

安卓加密.jpg

Android加固

1、 源码保护

Dex函数体分离加壳dex文件进行函数体分离加壳,在运行时动态加载函数体,以单个函数的方式还原到Java虚拟机中,能有效防止静态编译查看dex文件源码以及通过dump手段dump出所有代码。

Dex源码native化,dex文件进行native指令化转化,并且以native方式还原到安卓内存中,即使使用dump手段dump出当前部分代码,也是经过native处理过的代码,不会还原成APP源代码。

So文件混淆加密,对SO文件做加密和自定义加载处理,除此之外还会对SO文件中字符串加密和代码混淆处理,层层防止攻击者提取SO文件和对其二进制代码做反编译和反汇编处理。

        Dll文件加密,初级加密:对dll文件进行整体加密,运行时整体解密,能有效防止静态编译;

        高级加密:对dll文件进行函数抽取方式加密,能有效防止静态反编译以及内存dump

        Lua文件加密,自定义Lua文件解析器和修改Lua文件字节码,防止Lua文件被通用逆向分析思路dump下来并反编译。


2、 反调试保护

防动态注入防注入保护,能有效防止APP运行时通过注入的方式获取APP隐私数据、使用hook等方式劫持APP的正常运行流程等。当加固后的APP检测到注入时,APP会自动退出运行。

防动态调试,反调试机制能够有效拒绝调试工具的附加操作,阻止调试器对移动应用调试分析其业务逻辑代码,一旦被加固的程序检测到有如gdb等调试操作将自动退出运行。

防内存dump防内存dump保护,能有效阻止gdb dump等操作,同时因为代码采用函数体分离方式和native化保护,代码都是以单个函数还原到内存中,而内存中的代码也是经过native处理,及时dump出当前代码片段,也是经过native方式处理后的代码,不会还原成源代码。

3、 内存保护

防内存读取/修改,防内存读取/修改保护机制,在检测到APP运行时如果内存有其他程序读取或者修改内存数据,那么程序将自动退出。

防模拟器,防止程序在模拟器上运行。

防脚本外挂,通过内存保护机制,防止脚本外挂等程序,修改APP内存数据,一旦有检测到有脚本或者外挂存在程序会自动退出运行。

4、 完整性保护

签名完整性,对签名做完整性校验保护,一旦更改签名文件,程序将不会再次运行。

资源文件完整性,通过对资源文件的完整性校验,包括assets、res、AndroidManifest等资源文件,一旦有任何资源文件被修改,程序将不会再次运行。

iOS加密.jpg

iOS加固

1、 源码混淆

对Objective-C、C、C++编译后的Native代码进行代码混淆处理,被混淆过后的代码中存在多余代码、怪癖语法、冗余逻辑判断,冗余函数调用等难以阅读和理解的代码,让攻击者无法反编译,从而有效的保护源代码安全。

2、 指定函数混淆

自定义指定函数进行代码混淆,并且指定对应强度,可以提供关键部分高强度代码混淆,这样可以在控制包体大小的情况下获取更好的加密强度。

3、 字符串加密

字符串加密功能能够隐藏程序中的关键字符串,使逆向分析无法通过字符串分析程序关键位置和依赖关系,提供逆向分析难度。