dex防止反编译
1. Android上,怎么用16进制加密apk的dex文件让别人无法反编译或进内部查看原代码
可以在Dex文件头隐藏另一个DEX数据并在运行时加载附带DEX数据。
构建非规范的Dex文件
通过反射调用DexFile类的方法加载附带DEX数据
通过反射实际调用DexFile的openDexFile方法
该种方式允许通过byte[]解析dex数据,而无须在再把DEX数据存储在设备的某个文件。
可以从安装APK文件、内存或dalvik-cache等读取dex数据。
该种方式将给自动化分析工具带来一个问题,自动化工具会按照dex格式处理DEX文件而不会处理附带的dex数据。需要特定的工具、16进制编辑器或手工提取嵌入的dex数据。
我们可以采用各种不同的方式增加嵌入数据的提取难度,比如:
对嵌入的DEX数据进行加密;
嵌入的DEX数据加密后在对其进行ZIP压缩;
使用native代码解密,直接从内存加载;
......等等
该种隐藏方式可以通过判断Dex文件头长度是否大于0x70检测。
2. android 怎么防止dex反编译
防止Android apk被反编译的方法:
1、判断apk签名是否与原版签名是否一致。
2、代码混淆,将混淆的级别设置高点,混淆出来以后代码全部变乱。
3、使用NDK编程,将核心算法用c/c++来编写,打包成so库供java层调用。
3. 如何阻止APK反编译查看源代码
apk如何防止反编,就用反编译工具来举例,例如dex2jar和JD-GUI。dex2jar是将APK中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。
具体步骤:首先将APK文件后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;解压下载的
dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录(在DOS命令下CD
目录)。运行dex2jar.bat classes.dex生成classes.dex.dex2jar.jar
运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码了。
apk如何防止反编,现在大多开发者已经意识到了App加密保护的重要性,爱加密正是顺应行业的发展,对APK进行加密保护,防止反编译,保护开发者的创意不再被剽窃的第三方加密服务平台。
加密原理:通过对源码进行加壳保护,然后生成类似虚像的DEX壳文件,即使反编译也无法看到APK包的源码,达到防止反编译的目的。
另外,爱加密的三层加密保护技术:DEX加壳保护,DEX指令动态加载保护,高级混淆保护,可以保证App的动态安全和静态安全,年前推出的SO库保
护,使C/C++层面的代码得到了专业保护,让APK包无懈可击。并且,不断加强对App的保护力度,强力遏制打包党的横行,净化Android应用市
场,打造一个绿色的移动互联网生态链。
4. android app怎么防止反编译
APK在PC上面就被看作一个压缩格式文件,在手机上面它就算一个可执行格式文件。两种格式对它的读取要求也有区别,所以说利用这个区别来实现伪加密。对PC端来讲伪加密的APK没法被解包无法被反编译,但是对android系统来说它完全不会影响正常的安装运行(对4.2以前的系统)。
伪加密的原理:读取APK的字节,找到连续4位字节标记为”P K 01 02”的后第5位字节,如果是0表示不加密,如果是1就表示加密(伪加密就强行改成1 反伪加密就是把1改成0就可以了)。
2
伪加密前和伪加密后的对比图如下:
伪加密前:
3
伪加密后:
END
使用第三方平台加密
步骤如下:
登录/注册→上传APK→等待系统加密→完成后下载APK→给APK签名→完成!
2
爱加密作为移动安全行业的第三方平台,为Android APP移动应用提供专业的加固保护方案,包括DEX文件保护、资源文件保护、XML主配文件保护、防二次打包保护、so文件保护、内存保护、高级混淆等,全方位保护Android App,防止被反编译、破解等,维护广大开发者朋友的切身利益!
5. apk加固,apk加固怎么可以防止反编译,保护apk源代码安全
apk源代码可以加固的的,源代码是加壳之后把重要的那部分代码隐藏起来不被看到,在一定基础上可以达到保护源代码的目的。
6. 怎么加固安卓软件
加固安卓软件一般要达到以下效果:
1、防逆向:通过DEX 文件加壳以及DEX 虚拟化等技术,防止代码被反编译和逆向分析。
2、防篡改:通过校验 APK 开发者签名,防止被二次打包,植入广告或恶意代码。
3、防调试:防止应用被 IDA、JEB 等工具调试,动态分析代码逻辑。
VirboxProtector安卓加固的核心技术一般有:
DEX 文件加密隐藏
对 DEX 文件加壳保护,防止代码被窃取和反编译。
SO 区段压缩加密
对 SO 库中的代码段和数据段压缩并加密,防止被 IDA 等工具反编译。
单步断点检测
在混淆的指令中插入软断点检测暗桩,防止native层run trace和单步调试。
防动态调试
防止应用被 IDA、JEB 等工具调试,动态分析代码逻辑。
开发者签名校验
对 APK 中的开发者签名做启动时校验,防止被第三方破解和二次打包。
SO 内存完整性校验
在 SO 库加载时校验内存完整性,防止第三方对 SO 库打补丁。
SO 代码混淆
对 SO 库中指定的函数混淆,通过指令切片、控制流扁平化、立即加密等技术手段,将 native 指令转换为难以理解的复杂指令,无法被 IDA 反编译,并且无法被还原。
SO 代码虚拟化
对 SO 库中指定的函数虚拟化,可以将 x86、x64、arm32、arm64 架构的机器指令转换为随机自定义的虚拟机指令,安全强度极高,可通过工具自定义配置,调整性能与安全性。
DEX 虚拟机保护
对 DEX 中的 dalvik 字节码进行虚拟化,转换为自定义的虚拟机指令,最后由 native 层虚拟机解释执行,防止逆向分析。
7. 怎样防止Android apk被反编译,用什么加密方法来保护dex源码文件不被注入恶意代码杜绝二次打包的出现
防止Android apk被反编译的方法:
判断apk签名是否与原版签名是否一致
代码混淆,将混淆的级别设置高点,混淆出来以后代码全部变乱
使用NDK编程,将核心算法用c/c++来编写,打包成so库供java层调用
8. Android APP的破解技术有哪些如何防止反编译
Android APP破解主要依靠利用现有的各种工具,如下:
1)APKtool
2)dex2jar
3)jd-gui
4)签名工具
防止反编译,介绍一种有效对抗native层代码分析的方法——代码混淆技术。
代码混淆的学术定义如下:
代码混淆(code obfuscation)是指将计算机程序的代码,转换成一种功能上等价,所谓功能上的等价是指其在变换前后功能相同或相近。其解释如下:程序P经过混淆变换为P‘,若P没有结束或错误结束,那么P’也不能结束或错误结束;而且P‘程序的结果应与程序P具有相同的输出。否则P’不是P的有效的混淆。
目前对于混淆的分类,普遍是以Collberg 的理论为基础,分为布局混淆(layout obfuscation)、数据混淆(data obfuscation)、控制混淆(control obfuscation)和预防混淆(preventive obfuscation)这四种类型。
腾讯御安全保护方案提供了以上所述四种混淆分类的多维度的保护,布局混淆方面,御安全提供了针对native代码层中的函数名进行了混淆删除调试信息等功能;数据混淆方面,御安全提供了针对常量字符串加密及全局变量的混淆的功能;控制混淆方面,御安全针对代码流程上,提供了扁平化,插入bogus 分支以及代码等价变换等功能;预防混淆方面,御安全在混淆过程中加入了针对主流反编译器的预防混淆的代码,能够有效地抵抗其分析。御安全还对应用开发者提供不同等级的保护力度及多种混淆方式的功能的选择,用户可以根据自己的需求定制不同的混淆功能保护。
同时,御安全保护方案除了提供代码混淆保护方面的技术,还提供代码虚拟化技术及反逆向、反调试等其他安全保护方案,综合使用多种保护方案可以有效地提高代码安全。