1、smali-1.2.6.jar

用途:.smali文件 转成 classes.dex文件

说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改。

用法举例:命令行:java -jar smali.jar classout/ -o classes.dex

下载:http://code.google.com/p/smali/downloads/list

2、baksmali-1.2.6.jar

用途:classes.dex文件 转成 .smali文件

说明:classes.dex不便于查看和理解,使用此工具转成的.smali文件易于阅读和修改。

用法:命令行:java -jar baksmali.jar -o classout/ classes.dex

下载:http://code.google.com/p/smali/downloads/list

3、AXMLPrinter2.jar

用途:xml文件 转成 普通文本文件(txt)

说明:apk中的xml文件被搞成二进制了,无法阅读,使用此工具转换后,可以查看正常的xml文件。

用法举例:命令行:java -jar AXMLPrinter2.jar main.xml > main.txt

下载:http://code.google.com/p/android4me/downloads/list

学习了楼下dohkoos兄弟的总结,我也大概再补充一下:

1、dexdump

androidSDK提供的反编译工具dexdump.exe,将dex文件反编译为较易理解的文本文件。

位于路径:\android\sdk\android-sdk-windows\platform-tools

用法:

dexdump: [-c] [-d] [-f] [-h] [-i] [-l layout] [-m] [-t tempfile] dexfile...

-c : verify checksum and exit

-d : disassemble code sections

-f : display summary information from file header

-h : display file header details

-i : ignore checksum failures

-l : output layout, either 'plain' or 'xml'

-m : dump register maps (and nothing else)

-t : temp file name (defaults to /sdcard/dex-temp-*)

例子:dexdump classes.dex >dexdump.txt

2、Dedexer

使用工具ddx1.11.jar来进行反编译dex,一般可读性比dexdump工具能强点,但还是不好理解。

用法:

Usage: java -jar ddx.jar -o -D -r -d <destination directory> <source>

       <destination directory> is where the generated files will be placed.

       <source> is the name of the source DEX file.

       -D - if present, more detailed error report is printed in case of failure

.

       -o - if present, detailed log file will be created about the input DEX fi

le (dex.log).

       -r - if present, register trace will be emitted after each instruction

       -e <deps> - if present, the <deps> directory is supposed to contain depen

dencies necessary for ODEX disassembly. Read the manual for details.

例子:

java -jar ddx1.11.jar -o -D -r -d src classes.dex //在src目录下生成ddx文件

3、AXMLPrinter2

查看apk中的XML资源文件,因为xml都被压缩成bytecode了,所以使用此工具帮助查看。

用法:

java -jar AXMLPrinter2.jar AndroidManifest.xml > out.xml

4、apktool

dohkoos兄弟对这个讲了不少了。能反编译,也能编译,能看class,也能看xml资源,是个不错的工具。这里推荐一个此工具的下载说明地址。

http://bbs.gfan.com/thread-971865-1-1.html

5、dex2jar

将apk或者dex转化为可以用gui查看的class文件。此种貌似很强大。

下载地址:http://code.google.com/p/dex2jar/downloads/list

6、smali和baksmali

类似于apktool生成的smali文件。此两个工具,smali编译,baksmali反编译。


最后再上一张自己总结的excel,这个应该比较直观,有些看了dohkoos兄弟的,参考总结的不太好,凑和着理解吧,截个图上来:

声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。

andriod的apk文件相关的编译反编译工具的更多相关文章

  1. class文件直接修改_反编译修改class文件变量

    今天笔者同事遇到一个问题,客户同事的数据库连接信息直接写在代码中,连接的密码改了,但是又没有源代码,所以只能直接修改Java class文件. 记录一下修改步骤: 1.下载JClassLib_wind ...

  2. android编译/反编译常用工具及项目依赖关系

    项目依赖关系 apktool:依赖smali/baksmali,XML部分 AXMLPrinter2 JEB:dx 工具依赖 AOSP , 反编译dex 依赖 apktool dex2jar:依赖 A ...

  3. eclipse怎么查看class文件(eclipse安装反编译插件)

    本人eclipse版本: Eclipse Java EE IDE for Web Developers. Version: Mars.2 Release (4.5.2) 步骤1:下载两个我们需要的东西 ...

  4. apk反编译工具

    反编译工具: apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar:将apk反编译成Java源码(classes.dex转化成jar文件) jd-gui:查看APK中 ...

  5. Android反编译获取资源文件-android学习之旅(69)

    有时候你看到一些很好看的布局,会考虑别人怎么实现的,回想参考一下,那么这时候反编译一下是很必要的. 要用到的工具apktool.bat和aapt.exe和apktool.jar(要最新版本) 下载前两 ...

  6. Android安全攻防战,反编译与混淆技术完全解析(下)

    在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码.反编译资源.以及重新打包等内容.通过这些内容我们也能看出来,其实我们的程序并没有那么的安全.可能资源被反编译影响还不是很 ...

  7. Android安全攻防战,反编译与混淆技术完全解析(上)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/49738023 之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值 ...

  8. Android安全攻防战,反编译与混淆技术全然解析(下)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/50451259 在上一篇文章其中,我们学习了Android程序反编译方面的知识,包括 ...

  9. Androd安全——反编译技术完全解析

    )第二步成功后我们会发现在当前目录下多了一个<APKName>文件夹,这个文件夹中存放的就是反编译的结果了.我们可以打开AndroidManifest.xml.res/layout即可查看 ...

随机推荐

  1. 02、Unicode 汉字转码小工具

    在做 Windows app 的时候,与服务器端交互使用的是 json 格式的数据,里面的汉字内容被 编码成 unicode 格式,在调试的时候不太方便,就写了个工具,把里面的 unicode 内容转 ...

  2. jquery 怎么触发select的change事件

    可以使用jQuery的trigger() 方法来响应事件 定义和用法 trigger() 方法触发被选元素的指定事件类型. 语法 $(selector).trigger(event,[param1,p ...

  3. 一个很好用的系统管理的命令lsof(转载)

    最近发现LOSF 命令在系统管理方面特别有用,把我搜集的资料总结如下 1.当在lsof后边没有跟任何参数时,该命令将会列出当前系统中被所有进程打开的所有文件#lsof|nl #nl命令打印出行号 2. ...

  4. oracle autotrace

    --======================= -- 启用 AUTOTRACE功能 --======================= AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL ...

  5. git学习(二):git config命令

    不同的git config操作不同的参数文件 git config --global // 配置用户目录下的.gitconfig那文件 git config --system // 配置系统级配置文件 ...

  6. STM32F10x_硬件I2C主从通信(轮询发送,中断接收)

    Ⅰ.写在前面 关注我分享文章的朋友应该知道我在前面讲述过(软件.硬件)I2C主机控制从机EEPROM的例子.在I2C通信主机控制程序是比较常见的一种,可以说在实际项目中,很多应用都会使用到I2C通信. ...

  7. 002Jsp的内置对象

    1 课程回顾 Jsp基础 1)Jsp的执行过程 tomcat服务器完成:jsp文件->翻译成java文件->编译成class字节码文件-> 构造类对象-> 调用方法 tomca ...

  8. 在mac下使用ppk文件ssh到远程主机

    You can ssh directly from the Terminal on Mac, but you need to use a .PEM key rather than the putty  ...

  9. hmacSHA1

    import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; publ ...

  10. 怎么用ChemDraw连接两个结构片段

    作为最新版的ChemOffice 15.1的核心组件,ChemDraw几乎能解决所有平面化学结构中的绘制问题.如果用户想连接两个分开的结构片段,ChemDraw提供两种连接两个化学结构片段的方法,分别 ...