- 浏览: 197569 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
sarah_susan:
我想说的是: 真机测试的时候,addresses = gc.g ...
android GPS定位,定位城市称,经纬度 -
lenomon:
看看这个,项目中会碰到的。JAVA使用AXMLPrinter获 ...
android的apk包签名 -
wangjunjunwangjunjun:
写出的代码不能运行,为什么啊?
android GPS定位,定位城市称,经纬度 -
AndMacLinuXp:
liang86liang 写道 Criteria criter ...
android GPS定位,定位城市称,经纬度 -
jmshx8:
这种方法在2.2以上的版本就显示不出地址了
android GPS定位,定位城市称,经纬度
Made by 李文栋 rayleeya@gmail.com 2010-12-13 Monday 于北京 一、反编译流程图 准备工作 假设我的工作目录为 $AndroidDecompile,首先要将system.img中(或者说从源码中编译好的)几个重要的odex文件拷贝到工作目录中,他们是:core.odex, ext.odex, framework.odex, android.policy.odex, services.odex(也可以放在别的目录,通过设置BOOTCLASSPATH指定,默认就是当前目录,关于BOOTCLASSPATH请参考baksmali的帮助信息)。 下载以下工具到 $AndroidDecompile中: Baksmali : http://code.google.com/p/smali/downloads/list Smali : http://code.google.com/p/smali/downloads/list Dex2jar : http://code.google.com/p/dex2jar/downloads/list JD-GUI (Java Decompile GUI) : http://java.decompiler.free.fr/?q=jdgui<!--[if !supportNestedAnchors]--><!--[endif]--> AutoSign : http://d.download.csdn.net/down/2768910/fjfdszj Apktool http://code.google.com/p/android-apktool/downloads/list 假设我们有一个应用,它的类文件编译后被单独拿了出来,即有两个文件app.apk和app.odex,把他们放在$AndroidDecompile下。 1. 使用 baksmali.jar 将 odex 文件分解为 smali 文件 $ java –jar baksmali-1.2.5.jar –x app.odex 如果成功的话,会在 $AndroidDecompile下生成一个 out目录,里面是一些以“.smali”为后缀名的文件,在此不深究这些文件的作用。 2. 使用 smali.jar将 out/目录下的smali文件转换为 classes.dex $ java -Xmx512M –jar smali-1.2.5.jar out –o classes.dex classes.dex便是Dalvik VM所使用的编译后的类文件格式,在正常的apk文件里都会有。 3. 使用 dex2jar将classes.dex反编译为jar文件 将下载后的dex2jar压缩包解压后,里面会有dex2jar.sh(和dex2jar.bat)文件,假如classes.dex文件与dex2jar.sh在同一目录下,使用以下方式将classes.dex反编译为jar文件: $dex2jar.sh classes.dex 如果执行成功,则会在当前目录下生成反编译后的文件classes.dex.dex2jar.jar。 dex2jar即可以操作dex文件,也可以直接操作apk文件,它的使用规则为: dex2jar file1.dexORapk file2.dexORapk ... 4. 使用JD-GUI查看反编译后的jar文件 JD-GUI是一个可视化的Java反编译代码查看器,它可以实时的将class文件反编译成java文件进行查看。解压下载的jd-gui文件,执行目录中的jd-gui可执行文件启动,然后加载上一步中反编译好的classes.dex.dex2jar.jar文件即可。 5. 将从odex反编译后的classes.dex与其他资源文件重新打包成一个完整的apk 以上我们假设的情况是应用程序编译后的类文件从apk文件中被剥离出来,下面要做的是如何将上述步骤中得到的classes.dex与apk中的其他文件重新打包成一个可用的apk。 首先将反编译后的classes.dex和原先的app.apk(不含classes.dex)重新压缩成一个完整的app.apk(apk文件可用压缩工具打开),也就是说将classes.dex放进app.apk中。 将下载的AutoSign文件解压,可以看到有signapk.jar(还有个Sign.bat)文件,执行以下命令给app.apk文件签名,就可以生成一个可以运行的apk文件了。 $ java -jar signapk.jar testkey.x509.pem testkey.pk8 app.apk app_signed.apk 6. apktool的使用 网上还有个工具是apktool,可以对apk进行解析,反编译资源文件,并将类文件解析成smali文件;同时还可以将解析后的文件重新打包成apk。功能和以上介绍的几个工具类似,它的使用方法如下: apktool d app.apk and 反编译 app.apk到文件夹and apktool b app 从文件夹app重建APK,输出到ABC\dist\out.apk 具体的使用方法在此不再赘述,请参考官方网站,或者: http://www.geeka.net/2010/05/apktool-decode-android-google-code/ 7. 我的 $AndroidDecompile目录下的文件的截图 三、一些工具的帮助信息 1. baksmali 的帮助信息 usage: java -jar baksmali.jar [options] <dex-file> disassembles and/or dumps a dex file -?,--help Prints the help message then exits. -b,--no-debug-info Specify twice for debug options don't write out debug info (.local, .param, .line, etc.) -c,--bootclasspath <BOOTCLASSPATH> The bootclasspath jars to use, for analysis. Defaults to core.jar:ext.jar:framework.jar:andro id.policy.jar:services.jar. If the value begins with a :, it will be appended to the default bootclasspath instead of replacing it -d,--bootclasspath-dir <DIR> The base folder to look for the bootclasspath files in. Defaults to the current directory -f,--code-offsets Add comments to the disassembly containing the code offset for each address -l,--use-locals Output the .locals directive with the number of non-parameter registers, rather than the .register -o,--output <DIR> Directive with the total number of register the directory where the disassembled files will be placed. The default is out -p,--no-parameter-registers Use the v<n> syntax instead of the p<n> syntax for registers mapped to method parameters -r,--register-info <REGISTER_INFO_TYPES> Print the specificed type(s) of register information for each instruction. "ARGS,DEST" is the default if no types are specified. Valid values are: ALL: all pre- and post-instruction registers. ALLPRE: all pre-instruction registers ALLPOST: all post-instruction registers ARGS: any pre-instruction registers used as arguments to the instruction DEST: the post-instruction destination register, if any MERGE: Any pre-instruction register has been merged from more than 1 different post-instruction register from its predecessors FULLMERGE: For each register that would be printed by MERGE, also show the incoming register types that were merged -s,--sequential-labels Create label names using a sequential numbering scheme per label type, rather than using the bytecode address -v,--version Prints the version then exits -x,--deodex Deodex the given odex file. This option is ignored if the input file is not an odex file 2. smali 的帮助信息 usage: java -jar smali.jar [options] [--] [<smali-file>|folder]* assembles a set of smali files into a dex file -?,--help prints the help message then exits. Specify twice for debug options -o,--output <FILE> the name of the dex file that will be written. The default is out.dex -v,--version prints the version then exits 3. auto-sign 的帮助信息 SignApk.jar is a tool included with the Android platform source bundle. testkey.pk8 is the private key that is compatible with the recovery image included in this zip file testkey.x509.pem is the corresponding certificate/public key Usage: java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip update_signed.zip 4. apktool 的帮助信息 Apktool v1.3.2 - a tool for reengineering Android apk files Copyright 2010 Ryszard Wi?niewski <brut.alll@gmail.com> Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0) Usage: apktool [-v|--verbose] COMMAND [...] COMMANDs are: d[ecode] [OPTS] <file.apk> [<dir>] Decode <file.apk> to <dir>. OPTS: -s, --no-src Do not decode sources. -r, --no-res Do not decode resources. -d, --debug Decode in debug mode. Check project page for more info. -f, --force Force delete destination directory. -t <tag>, --frame-tag <tag> Try to use framework files tagged by <tag>. --keep-broken-res Use if there was an error and some resources were dropped, e.g.: "Invalid config flags detected. Dropping resources", but you want to decode them anyway, even with errors. You will have to fix them manually before building. b[uild] [OPTS] [<app_path>] [<out_file>] Build an apk from already decoded application located in <app_path>. It will automatically detect, whether files was changed and perform needed steps only. If you omit <app_path> then current directory will be used. If you omit <out_file> then <app_path>/dist/<name_of_original.apk> will be used. OPTS: -f, --force-all Skip changes detection and build all files. -d, --debug Build in debug mode. Check project page for more info. if|install-framework <framework.apk> [<tag>] Install framework file to your system. For additional info, see: http://code.google.com/p/android-apktool/ 四、参考资料 1. Smali http://code.google.com/p/smali/ http://www.geeka.net/2010/05/android-apk-odex-classes-dex/ 2. ApkTool http://code.google.com/p/android-apktool/ http://www.geeka.net/2010/05/apktool-decode-android-google-code/
Android 反编译资料整理二、工具使用方法(命令)
发表评论
-
Android---Service
2013-01-04 14:00 857一 什么是Service 服务是运行在后台的一段 ... -
WatchDog详解
2011-12-06 16:16 11538现在的CPU基本上都带有WatchDog功能,这种硬件的Wat ... -
android - ANR keyDispatchingTimedOut
2011-08-16 16:47 2210Android最佳实践之响应 ... -
android GPS定位,定位城市称,经纬度
2011-06-09 10:40 21514package com.test; import and ... -
悬浮窗口
2011-05-25 17:27 1700最近一些软件有了很牛X的悬浮窗口功能,很好奇怎么实现的, ... -
WindowManager.LayoutParams
2011-05-25 16:49 2805WindowManager.LayoutParams 是 ... -
Android核心分析
2011-05-06 10:05 860文章皆来自CSDN网友maxleng的专栏,maxleng ... -
Android Gesture 手势识别使用实例
2011-04-08 18:34 1548很高兴能在Android1.6的sdk看到手势识别这一 ... -
Anroid 反编译
2011-04-08 13:26 1526我目前接触的反编译的方法总共有三种,分别如下: ... -
AsyncTask
2011-04-07 17:26 1118平时我们在开发Android程序时遇到较耗时任务的处理,如 ... -
android的apk包签名
2011-03-10 16:52 2194为何要签名,因为android的安全设置,详细请参见frame ... -
Ubuntu32位编译Android2.3 -Gingerbread
2011-02-10 14:34 2550编译的过程中遇到下面的错误: *************** ... -
ubuntu 编译 Android 出现的若干错误及解决方法
2011-01-16 14:03 1907刚下好 android 源码后马上编译会发现有各种各样的错误, ... -
判断是否有sdcard
2010-11-18 14:55 1197判断是否有sdcard插入: Java代码 ...
相关推荐
本篇文章将详细探讨三种常用的Android反编译工具:Apktool、dex2jar以及JD-GUI。 首先,Apktool是一款强大的Android资源反编译工具,由IzzySoft开发。它能够解包APK文件,提取出其中的XML布局文件、图片资源、字符...
本文将详细介绍Android APK反编译工具及其重要性,以及如何使用集成aapt的res反编译、dex的反编译和class的反编译等技术来揭示APK的真实结构。 首先,让我们了解什么是反编译。反编译是将已编译的二进制代码转换回...
6. **使用步骤**:一般包括提取APK,使用Apktool解包,使用dex2jar和JD-GUI反编译Java代码,如果需要,使用Smali/Baksmali处理.dex文件,最后可能还需使用资源反混淆工具整理资源文件。 7. **实践应用**:APK反编译...
"Android反编译工具包(整理2zgl5)"很可能包含一个图形化的教程,指导用户如何使用这些工具。readme.txt文件通常包含重要信息,如使用说明、注意事项和教程链接。建议仔细阅读该文件以获取更多信息。 总之,...
Android开发市场广阔,是目前市场占有率最高的智能手机操作系统。这个文档里整理110个优质的Android开发资料,网上的...压缩包包含了最全的资料和ANdroid反编译工具! 对学习Android开发又很大的帮助! 【经典收藏】
因个人需要,特整理了一些常用android反编译工具。smali-1.2.6.jar、jd-gui.exe、dex2jar-0.0.7.9-SNAPSHOT.zip、baksmali.jar、AXMLPrinter2.jar。
常用的反编译工具,整理了一下,加了个批处理。 apktool1.5.2 -- 用这个反编译APK,得到主要的资源文件,xml等,当然有的apk直接改为.zip文件解压也可以看到。 自己写了批处理,修改路径和文件名就可以运行,核心...
整理收集更新了这一套用于Android安装文件apk反编译的工具套装。3个工具都是当前最新的版本了。各工具的版本:apktool-2.2.0.jar、dex2jar-2.0、dex2jar-0.0.9.15、JD-GUI 0.3.5。经过亲测可用,上传于此收仅1个资源...
包含下面四个压缩包: apktool1.5.2.tar.bz2 apktool-install-windows-r05-ibot.tar.bz2 dex2jar-0.0.9.15.zip jd-gui-0.3.7-RC-1.windows.zip 使用方法参考:...
Android学习笔记之反编译工具介绍及下载(Class文件反编译,xml文件反编译整理) 最近在网上查了一些Android文件反编译工具,供大家参考。
以下将详细介绍Android反编译的相关知识点和步骤。 首先,Android应用程序是通过打包成APK文件形式发布的。APK文件是一个压缩包,里面包含有DEX文件(Dalvik Executable),XML文件(资源文件),图片文件等。反...
Android应用程序的反编译是一个对开发者而言至关重要的技术,它能帮助我们理解已有的应用程序的工作原理,学习他人代码,甚至修复或改进现有应用。本文将详细介绍如何对Android APK进行反编译,以便提取和理解其内部...
4. **合并与重构**:反编译后的代码和资源可能需要手动整理和重构,因为原始的类名、方法名和变量名可能丢失。这一步通常需要编程技能和对Android框架的理解。 批量处理意味着上述步骤需要自动化。例如,你可以编写...
dex2jar-2.0 + jd-gui-1.4.0 + apktool2.3.0 + Smali2Java 最新反编译全套工具整理,用以反编译android apk源码。 内含详细安装/使用说明! 本工具内jd-gui-1.4.0包含windows、linux、mac等多个版本!
描述中的"走了很多弯路,很痛苦,整理mark一下,顺便分享给大家"暗示了作者在寻找和学习反编译工具的过程中遇到了挑战,但最终整理出了一套相对完整的资料,并愿意与社区共享。 在给定的压缩包文件中,唯一提到的子...
标题中的"反编译-可以直接反编译apk.rar"指的是一个与Android应用(APK)反编译相关的资源包,它可能包含了用于反编译APK文件的工具和教程。"jd-gui-windows-1.4.0"是文件名,这是一个Java反编译器JD-GUI的Windows...
免责声明:资料部分来源...收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。
### 安卓APK反编译详解 #### 一、引言 随着移动互联网的快速发展,安卓应用在我们的生活中扮演着越来越重要的角色。与此同时,安卓应用的安全性问题也日益凸显,其中,反编译技术成为了破解应用保护层的重要手段之...
4. 可能还需要对反编译出的源代码进行整理和重构,因为反编译的结果可能包含混淆的变量名和不完整的语法。 在安全领域,反编译有时用于检测恶意软件的行为,或者寻找潜在的漏洞。开发者也可能用此方法学习其他应用...
这种工具通常包括自动解压APK,运行dex2jar,反编译JAR,以及整理和显示源代码等功能。 至于“DecApkRelease”,这可能是一个具体的反编译工具的名称,或者是一个特定的反编译过程输出的文件夹。在实践中,"Release...