Android反编译工具介绍与简单实用方法
Android反编译的目的无非就是为了看到APK的xml、资源和代码:
得到代码的方式:直接解压APK文件 --> 得到classes.dex文件 --> 使用 dex2jar classes.dex classes.jar生成jar文件 --> [可选的解压jar文件] -->使用XJad或者JDCompiler查看源代码
得到XML的方式:
方式1:直接解压APK文件 --> 通过axmlprinter工具查看XML文件(这种方式查看的XML文件的id都是数字--即R文件中id对应的值)
方式2:使用APKTool工具解压APK文件可以直接查看XML文件
Android反编译常常使用如下的一些工具:
1、反编译命令:
apktool d D:\\Developer\androidDecode\Test0201.apk D:\\Developer\androidDecode\test0201
D:\\Developer\androidDecode\Test0201.apk:要反编译的APK文件
D:\\Developer\androidDecode\test0201:反编译文件的保存目录,必须为空目录
2、从反编译的文件编译成APK apktool b D:\\Developer\androidDecode\test0201 D:\\Developer\androidDecode\test020101.apk
D:\\Developer\androidDecode\test0201:保存编译后文件的目录
D:\\Developer\androidDecode\test020101.apk:生成的新的APK文件的保存的绝对路径
3、签名APK文件:
singedAPK.bat文件
java -jar "%~dp0signapk.jar" "%~dp0testkey.x509.pem" "%~dp0testkey.pk8" %1 signed.apk
执行singedAPK.bat命令
singedAPK D:\\Developer\androidDecode\test020101.apk 生成一个singed.apk文件和test020101.apk在同一个目录
4、使用baksmali.jar把一个dex文件转换为一个smali文件
java -jar D:\\Developer\ApkTool\baksmali.jar -o D:\\Developer\androidDecode\baksmaliout D:\\Developer\androidDecode\Hello.dex
D:\\Developer\ApkTool\baksmali.jar:baksmali.jar文件所存在的全路径
D:\\Developer\androidDecode\baksmaliout:生成的smali文件的保存目录
D:\\Developer\androidDecode\Hello.dex:要转成smali文件的路径
5、使用ddx.jar把一个dex文件转换为ddx文件
java -jar D:\\Developer\ApkTool\ddx.jar -d D:\\Developer\androidDecode\ddxout D:\\Developer\androidDecode\Hello.dex
D:\\Developer\ApkTool\ddx.jar:ddx.jar文件的绝对路径
D:\\Developer\androidDecode\ddxout:要保存ddx文件的路径
D:\\Developer\androidDecode\Hello.dex:要转换的dex路径
6、Android自带dexdump工具:dex文件转为smali文件 dexdump -d xxxx.dex > xxxx.smali
7、dex2jar.jar:dex2jar XXX.dex YYY.jar
说明:
apktool项目地址:https://code.google.com/p/android-apktool/
baksmali项目地址:https://code.google.com/p/smali/
dex2jar项目地址:https://code.google.com/p/dex2jar/downloads/list
java Decompiler(JD)项目地址:http://jd.benow.ca/
XJAD百度网盘下载地址:http://pan.baidu.com/share/link?shareid=406366626&uk=3558809438&fid=881236853
axmlprinter项目地址:https://code.google.com/p/android4me/downloads/detail?name=AXMLPrinter2.jar&can=2&q=
Android反编译工具介绍与简单实用方法的更多相关文章
- Android 反编译工具简介
Android 反编译工具: 所需工具:1 apktool : 用于获取资源文件 2 dex2Jar : 用于将classes.dex转化成jar文件 2 jd-gui: 将jar文件转化成java文 ...
- 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库
工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...
- Android反编译工具的使用-Android Killer
今天百度搜索“Android反编译”搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android反编译.在这,我将使 ...
- ApkDec android反编译工具
转自:http://www.newasp.net/soft/70498.html 下载 ApkDec是一款免费的绿色APK反编译工具 forandroid ,由android开发者社区开发. ApkD ...
- mac上Android反编译工具apktool、dex2jar入门
MAC上Apktool的安装 官网链接 image.png 使用步骤如图1-6 第一:下载一个shell脚本,保存的名字就是”apktool”,不要带.sh后缀.可以复制到sublimetext, ...
- android反编译工具总结
序:总结反编译主要的目的在于学习.利用反编译进行相关的汉化或修改,都是不道德的! 大家都知道,将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.d ...
- android反编译工具 ApkDec-Release-0.1
(1 )使用帮助 1. 选择 all 全部编译内容包括jar .xml .及其他资源文件 2. 选择 jar 只反编译并打成jar 包 3. 反编译后你可以使用jd-gui.ex ...
- Android反编译工具的用法
Android的APK文件时可以反编译的,通过反编译我们就能查看到大体的代码,帮助学习.反编译仅仅提供的是学习的方式,禁止使用该技术进行非法活动. 其实就是两个命令: 1:运行(WIN+R)-> ...
- Android 反编译工具
想必玩安卓的童鞋大多都知道,安卓的APK安装包是可以反编译出源代码的,如果开发人员发布时没有对其混淆等加密处理,反编译出来的代码几乎与真实的源代码一模一样. 想要反编译apk,需要用到apktool. ...
随机推荐
- 小措施提高Linux服务器安全
禁止root远程登录 作为默认系统管理账号root是最容易攻击的目标.禁止通过ssh远程登录是绝对必须的. 方法: 编辑 /etc/ssh/sshd_config PermitRootLogin no ...
- linux 获取网卡信息
sar -n DEV 2 10:41:37 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s10:41:39 AM eth ...
- Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql
Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql
- filter和map的区别
filter和map初一看很像 都是filter(func,iterable) map(func,iterable) 实际情况是filter函数:filter()为已知的序列的每个元素调用给定的布尔函 ...
- logback.xml配置文件详解
越是老司机越会对日志重视. 如下配置实现了 1.日志文件使用相对路径输出. 2.从日期与文件大小两个纬度分割. 3.特定包与类的日志输出 ** 当存在多个name相同的logger时,逻辑不是很清楚 ...
- spring security笔记
当指定http元素的auto-config=”true”时,就相当于如下内容的简写. <security:http> <security:form-login/> <se ...
- MySQL递归查询树状表的子节点、父节点
表结构和表数据就不公示了,查询的表user_role,主键是id,每条记录有parentid字段; 如下mysql查询函数即可实现根据一个节点查询所有的子节点,根据一个子节点查询所有的父节点.对于数据 ...
- 卡片式ViewPager,一屏展示多个pager item,设置高度不一致的tabBar
ViewPager的基本用法不必多说,这都很简单,我们可以在ViewPager中加载一个ImageView,也可以加载一个Fragment,这都是目前非常常见的用法.那么我今天说的是ViewPager ...
- SQL Server 2012 books
SQL Server 2012 Introducing Microsoft SQL Server 2012 Microsoft SQL Server 2012 High-Performance T-S ...
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用
一. 在res/values 文件下定义一个attrs.xml 文件.代码如下: <?xml version="1.0" encoding="utf-8" ...