android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原。
因此开发人员如果不准备开源自己的项目就需要知道怎样防止反编译和反编译他人的项目来学习。
2.3版本以上在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”可以对代码进行混淆,反编译后是很难看懂的。
2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可。
有些应用反编译后java代码用jd-ui根本都无法打开,连混淆的代码都看不到的,本人尝试多次都做不到,希望知道的告知下怎么处理的。
注意:上面的功能只是把java代码混淆了,xml和资源文件、图片并没有混淆,有些游戏应用图片比较重要需要转换成dat文件 再加上自己的加密解密算法还原。
另外加了混淆功能后还有压缩的功能,混淆后的apk比原来的小(具体比例看你的代码重复量了)
说完防止反编译再来说说怎么反编译吧
先说一下反编译的流程和原理:
1.用apktool 把apk--> 资源包(java代码变成smali文件看不懂的),可以修改资源包里面的文件。
2.apk后缀名改成zip或rar解压,获取 classes.dex 文件,用dex2jar转换成jar包(注:直接解压出来的资源文件是不能直接打开的,要用第一步的反编译工具)。
3.用jd-ui等java反编译工具直接查看java代码。
4.把java代码和第一版的资源包整到一起重新组成一个新的应用。
5.用apktool 重新编译。
6.用签名工具重新签名。
7.重新发布带新的签名的应用。
注:如果不用改java代码,只是换换风格和汉化2.3.4步则不用做。
google code上的开源项目
apktool http://code.google.com/p/android-apktool/
dex2jar http://code.google.com/p/dex2jar/
另外有人做了个工具套装,集成了apktool dex2jar jd-ui,不过我下载了运行不了 不知道是不是相应环境没有配对导致的
hackapk http://code.google.com/p/hackapk/
另外有人把apktool做了个封装 弄成exe文件 图形界面的方便使用,截个图出来给大家看看吧
注:上面那个软件不能签名的,要用另外一个软件(APKSign)来进行签名,截图如下:
另给出上面两个工具的下载连接 机锋论坛上面的,估计直接点击连接下载不了
Xwindows,带图形界面: apktool.rar (3.33 MB) -->这个下载后可以自己到 http://code.google.com/p/android-apktool/ 下载最新版的apktool.jar替换原来的。
签名工具:Auto-sign.rar(312.45 KB)
另外还有些命令行的工具,本人给APK编辑器不同版本上面的说明不对应浪费了很多时间
1.普通apk文件(就是从各种网站上下载下来的第三方软件)
(1)把他放到place-apk-here-for-modding文件夹里面。(不要有空格和中文,中文的改成英文的)
(2)打开Script.exe,在CMD窗口中输入22或23(设置目前的工程),选择要编辑的apk文件的编号,回车确认
如上:有些版本设置目前的工程选项改成23了,但说明文件没有改过来,按22一直都无法选择apk,原因很不好找。
建议还是使用图形界面。
分享到:
相关推荐
总之,Android反编译jar包是一个涉及多种工具和技术的过程,需要对逆向工程有一定的了解。正确使用这些工具可以帮助开发者解决特定问题,但同时也需要遵循法律和道德规范,尊重软件开发者的劳动成果。
“Android反编译利器”可能已经内置了错误检测和修复机制,确保在遇到编码问题或者复杂的混淆代码时,仍能尽可能地提供可用的反编译结果。 安全性是Android应用开发的一个重要方面。了解如何反编译应用可以帮助...
1. 获取AXMLPrinter工具:AXMLPrinter通常作为Apktool的一部分提供,Apktool是一个流行的Android反编译和打包工具。你可以从Apktool的GitHub仓库下载最新版本。 2. 安装和配置:解压Apktool包,将包含AXMLPrinter的...
"Android反编译工具包"提供了必要的工具来帮助开发者和安全研究人员完成这些任务。下面将详细介绍这个工具包中可能包含的内容及其用途。 1. **dex2jar**: 这个工具用于将Dalvik Executable (DEX) 文件转换为Java...
除了dex2jar之外,还有一些其他的Android反编译工具,如Apktool用于解包和重新打包APK,Smali/Baksmali用于直接处理DEX文件,以及Frida和Xposed框架用于动态代码注入和调试。 7. **安全与防护**: 开发者可以通过...
本压缩包提供的“android反编译工具包”正是为此目的设计,经过亲测,效果理想,能够帮助开发者高效地完成这些任务。 一、Android反编译的基本概念 反编译是将已编译的二进制程序(如APK文件)转换回源代码的过程。...
"Android反编译工具包"正为此目的提供了必要的资源和教程。以下是对这个主题的详细阐述: 一、反编译的必要性 反编译Android APK的主要原因有: 1. 学习与研究:通过查看他人的代码,学习新的编程技巧和设计模式。...
在IT行业中,Android应用开发是一项重要的技能,而“Android反编译工具”是开发者和逆向工程师们常用的一种技术手段。这些工具可以帮助我们查看、分析甚至是修改APK文件中的源代码,这对于调试、安全评估、学习他人...
对于商业应用,开发者可能会使用更复杂的方法来防止反编译,因此这个过程可能并不总是顺利。 总的来说,掌握`apktool`、`dex2jar`和`jd-gui`的使用,将使你在Linux环境下对Android应用的逆向工程有更深入的理解,...
总结,Android反编译是一个复杂的过程,需要对Android系统、Dalvik虚拟机和汇编语言有一定的了解。APKTool、JD-GUI等工具为开发者提供了方便,但正确使用这些工具并理解反编译结果是关键。在实际操作中,务必遵守...
那麼有什么办法能防止 Android APK 反编译和破解呢?本文将对 Android APK 反编译之有效防止破解和反编译加密方法进行详细介绍。 一、混淆代码 混淆代码是 Android APP 的源码进行混淆后混淆器将代码中的所有变量...
"Android反编译工具"就是用于这个目的的软件,帮助开发者或者逆向工程师分析和理解APK的内部结构。以下将详细介绍Android反编译过程以及相关的工具和技术。 1. **Apktool**:Apktool是一款开源的Android APK反编译...
在Android开发过程中,有时我们需要对APK进行反编译和打包操作,这通常是出于调试、学习、安全分析或优化的目的。本压缩包“android反编译和打包工具”提供了相关工具,帮助开发者进行这些任务。以下将详细介绍...
`命令反编译和正编译`可能是一份文档或脚本,详细说明了执行反编译和重新打包的步骤。`lib`目录通常包含APK运行所需的库文件,而`bin`目录可能包含编译后的二进制文件或可执行程序。 反编译过程中,需要注意以下几...
dex2jar是一款常用的Android反编译工具,它能够将DEX(Dalvik Executable)文件转换为JAR文件,然后使用JD-GUI或者JD-Core等Java反编译器将JAR文件反编译回Java源码。为了防御这种情况,开发者可以采用以下方法: 1...
android decompiler dex2jar 反编译 简易教程android decompiler dex2jar 反编译 简易教程android decompiler dex2jar 反编译 简易教程android decompiler dex2jar 反编译 简易教程android decompiler dex2jar 反...