由于apk是Android虚拟机加载的,它有一定的规范,加密apk后Dalvik无法识别apk了。
完全避免是不可能的,总有人能够破解你的代码。但还是有几种方式来提高被反编译获取代码的难度。
提高反编译难度的几种方式:
1. 关键代码使用jni调用本地代码,用c或c++编写,相对于class文件,so相对比较难于反编译。
缺点是很多搞java的程序员不太熟悉如何写c或c++代码,同时本地代码很难调试。出错容易导致整个虚拟机死掉,用户感受不好。
2. 混淆java代码。混淆是不改变代码逻辑的情况下,增加无用代码,或者重命名,使反编译后的源代码难于看懂。
网上开源的java代码混淆工具较多,自己上网找吧。一般是用ant的方式来编译的。
分享到:
相关推荐
Android如何防止apk程序被反编译 亲自测试 完美混淆
Android如何防止apk程序被反编译 作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。 Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在...
防止java反编译的一些方法
通过混淆android代码来防止黑客反编译,防止黑客破解app的方法 你辛辛苦苦编写的app,被黑客轻易就破解,替换资源了,重新打包发布市场,抢占了你的利润,你是不是会很心疼?现在我教你,如何让你的APP更安全,黑客别说修改其...
如何混淆Android项目代码(ProGuard)防止反编译.rar
一、反编译apk文件 安装ApkTool工具,该工具可以解码得到资源文件,但不能得到Java源文件。 安装环境:需要安装JRE1.6 1> 到http://code.google.com/p/android-apktool/ 下载apktool1.3.2.tar.bz2 和apktool-...
我们的APK实际上就是一个ZIP压缩文件,里面包含有一个classes.dex,我们编译后生成的程序代码就...由于这些APK反编译工具的存在,我们迫切地希望能有方法去防止别人来反编译我们的APK,从而保护自己的商业机密和利益。
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一...
首先声明本文的目的是为了通过例子讲解反编译和二次打包的原理和方法,继而作为后续讲解防止二次打包和App安全的依据,并不是鼓励大家去重新打包别人的App,盗取他人劳动成果。 本文首先介绍几种Android反编译工具...
我们的APK实际上就是一个ZIP压缩文件,里面包含有一个classes.dex,我们编译后生成的程序代码就...由于这些APK反编译工具的存在,我们迫切地希望能有方法去防止别人来反编译我们的APK,从而保护自己的商业机密和利益。
APK安全加固是面向移动应用程序的深度安全保护服务,可以为您的APP穿上一层“软猬铠甲”,通过加密、加壳、RPC、动态加载等技术为您的应用进行全方位安全保护,有效防止逆向工程、反编译、嵌入病毒、非法扣费等恶意...
android proGuard,防止你辛苦写出来的代码被轻易的反编译,你,值得拥有
什么是代码混淆: Android SDK 自带了混淆工具Proguard。它位于SDK根目录\tools\proguard下面。...防止app被反编译之后能够很容易的看懂代码 怎样使用混淆 在app下面的build.gradle添加使用混淆 bui
这种技术也常用来保护软件版权,防止被软件破解。 三、Android Dex文件加壳原理 PC平台现在已存在大量的标准的加壳和解壳工具,但是Android作为新兴平台还未出现APK加壳工具。Android Dex文件大量使用引用给加壳带来...
apk 反编译,回编译,签名。 2. Apk 加固 dex 加密,防逆向,防止二次打包。(注意:该功能当前并非很完善,暂不建议商用,欢迎学习交流,欢迎提交 Pull requests)。 > 注意:加固后的 apk 启动时会做签名校验,...
混淆的目的是为了加大反编译的成本,但是并不能彻底防止反编译。 2、如何开启混淆 通常我们需要找到项目路径下app目录下的build.gradle文件,找到minifyEnabled这个配置,然后设置为true即可,如下: release { ...
5.支持APK加固,可以给DEX文件加一层壳,防止DEX中的代码被静态反编译软件分析 6.支持APK保护功能,防止APK被修改包名,重签名和被调试 7.支持防止反编译功能,可以有效防止一些主流的APK反编译工具对APK文件进行...