dex2jar和JD-GUI这2个工具配合学习android太靠谱了,所以放上来给大家共享,开源的好处就是好东西大家一起分享。
dex2jar下载地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下载地址:
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
Linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz
1.首先找到Android软件安装包中的classes.dex
把apk文件改名为.zip,然后解压缩其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件
2.把classes.dex拷贝到dex2jar.bat所在目录。
windows系统下:
在命令行模式下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar
Ubuntu系统下:(3楼正解!)
在终端下定位到dex2jar.sh所在目录,运行
sh dex2jar.sh classes.dex
则可生成classes.dex.dex2jar.jar
3.运行JD-GUI工具(它是绿色无须安装的)
打开上面的jar文件,即可看到源代码
反编译xml
采用apktool进行反编译
《android-apktool》软件软件可以访问它的主页http://code.google.com/p/android-apktool/下 载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。下载 后解开,为了方便使用,按作者的推荐把得到的4个文件复制到C:\Windows文件夹里。
这个工具是Java写的,需要你的电脑安装了JRE或者JDK,并在系统环境变量Path里加入java.exe所在路径。
以上准备工作做好后,就可以用它来反编译APK了。这里我用动态壁纸的APK来做示范。
如果用过动态壁纸,你也许会发现在设置壁纸时,界面的显示有点问题:“动态壁纸”,在手机上中文显示为“当前壁纸”。这是“动态壁纸选择 器”LiveWallpapersPicker.apk的翻译错误造成的。
(假设LiveWallpapersPicker.apk放在C盘根目录)
开始 > 运行,输入cmd,回车。 apktool d "C:\LiveWallpapersPicker.apk" "C:\LiveWallpapersPicker"
复制代码(命令行解释:apktool d 要反编译的文件 输出文件夹)
改完后,就可以重打包了。还是在cmd命令行里,输入: apktool b "C:\LiveWallpapersPicker"
复制代码(命令行解释:apktool b 要打包内容所在文件夹)
就可以了。生成的APK在C:\LiveWallpapersPicker\dist文件夹里,叫out.apk。
这个out.apk是没有签名的,所以不能直接装到手机里。签名工具和方法见http://www.hiapk.com/bbs/thread-21261-1-1.html, 这里不说了。
签名后得到的APK,就是可以装到手机里的了。
分享到:
相关推荐
4. 如需修改源代码,可利用jd-gui或其他IDE进行编辑,然后将修改后的代码再通过反向过程打包回APK。 在实际应用中,APK反编译技术广泛应用于安全审计、漏洞挖掘、代码学习和应用优化等方面。但需要注意的是,未经...
安卓反向编译.APK文件,查看java代码。 一、用压缩软件打开apk,得到五个文件或文件夹 1、META-INF 2、res 3、AndroidManifest.xml 4、classes.dex 5、resources.arsc 二、xml文件是被压缩过的,可以使用...
反编译的工具,apk逆向工具,可以用于反编译,可将apk文件逆向转换为代码,从class.dex文件里提取代码 反编译教程博客:https://blog.csdn.net/Nobody_else_/article/details/83996441
- **ProGuard**(反向工程):APK通常会经过混淆处理,以增加逆向工程的难度。ProGuard就是这样一个混淆工具,而JEB等高级反编译器可以尝试还原混淆代码。 3. **反编译步骤** - 使用Apktool提取APK的资源文件和...
ApkTool能够解码APK文件,将Dalvik字节码(DEX)转换回人类可读的Smali代码,并且可以反向操作,重新打包生成新的APK。这为开发者提供了对APK内部资源和代码的透明访问。 1. **ApkTool的基本操作**: - **反编译**...
Android反向工程通常包括以下几个步骤:提取APK,反编译DEX文件,解密资源,以及可能的动态分析。 Android反编译工具有很多种,其中包括: 1. **Apktool**:这是一个强大的工具,用于解包和重新打包APK文件,以及...
APK Editor Studio 是一个功能强大但易于使用的 APK 反向工程工具。提取,编辑或替换 APK 资源,图像和图标;添加翻译,创建自己的 APK mod 或了解其内部结构。多种便捷工具将帮助您轻松更改应用程序图标,应用程序...
在Android开发领域,有时我们需要对APK文件进行反编译以了解其内部结构或修改代码。这个主题“反编译apk后打包”涉及到一系列技术工具和步骤,它们可以帮助开发者或安全研究人员深入理解APK的工作原理。 首先,让...
各大市场APP软件质量良莠不齐,很多应用滥用权限窃取用户隐私、嵌入过多广告影响用户体验,亦或者你想了解软件后台的运作原理,甚至是要对系统和软件进行美化等等,这都需要对APK进行反向编译,以达到修改应用权限、...
APK Editor Studio 是一个功能强大但易于使用的 APK 反向工程工具。提取,编辑或替换 APK 资源,图像和图标;添加翻译,创建自己的 APK mod 或了解其内部结构。多种便捷工具将帮助您轻松更改应用程序图标,应用程序...
Apk2Java.exe由于版本较旧,有些会反向失败,但最终都会得到xml和res,xml文件可以用AXMLPrinter2.jar进行反向。 可以先把apk解压,剥离出classes.dex,再使用工具集里的dex2jar-0.0.7.8-SNAPSHOT,可以反向出jar...
3. 修改完成后,运行`编译.bat`,它会使用smali.jar的反向操作(即dex assembler)将Smali代码重新编译回`classes.dex`。 4. 最后,如果需要,将修改后的`classes.dex`整合回APK,并重新签名APK,使其可以在设备上...
1. **显示包名**:用户只需将Apk文件拖放到工具界面,就能快速获取包名,无需使用ADB命令行工具或者反编译Apk。 2. **查看版本信息**:包括版本代码(Version Code)和版本名称(Version Name)。版本代码是整数值...
1. **aapt.exe**:Android Asset Packaging Tool,是Android SDK的一部分,用于处理应用的资源文件,包括编译、打包和提取资源信息。在这个场景下,可能用于获取APK的元数据,包括包名。 2. **APK-Info.exe**:很...
6. 反编译与反向工程: 解析APK有时是为了进行反编译,即把DEX文件转换回Java源代码。这通常需要第三方工具,如dex2jar和JD-GUI。dex2jar将DEX转换为可读的JAR,而JD-GUI则显示JAR中的源代码。这些工具可以帮助...
通过已经打包的APK安装包作为模板,反编译后,动态修改配置文件或者SMALI代码中的渠道标志来实现批量重新多渠道打包,由于不是源代码级别的打包,所以大大提升了批量打包的速度和效率。 随机包名,应用名打包 对于...
编译RotationWatcher.apk 需要Android Studio等开发环境,通过导入源码项目,设置好依赖和构建配置后,可以使用IDE的编译功能生成最终的APK文件。生成的mobile-debug.apk 是调试版本的应用程序,可以在真机或模拟器...
它可以帮助开发者、安全研究人员以及逆向工程爱好者深入理解APK的结构,进行反编译、调试和分析工作。在本文中,我们将详细介绍apkAnalyzer的用途、功能以及如何使用它。 **1. APK文件解析** APK是Android应用的...
1. **反编译**:首先,你需要将APK的Java字节码(Dalvik Executable, .dex 文件)转换回可读的Java源代码。常用的工具有dex2jar和JD-GUI。dex2jar将.dex文件转换为.jar,然后JD-GUI可以显示对应的Java源代码。 2. *...
- 内部版本号:也称为编译版本号,是开发者内部使用的,主要用于追踪应用的迭代和更新,不直接展示给用户。 2. **包名**: 包名是Android应用的唯一标识,它遵循Java的命名规范,由反向域名加上应用名组成。包名...