首先我们了解下什么是apk

APK是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别。

一个android的apk安装包文件结构

1. META-INF\ (注:Jar文件中常可以看到);

2. res\ (注:存放资源文件的目录) ;

3. AndroidManifest.xml (注:程序全局配置文件) ;

4. classes.dex (注:Dalvik字节码);

5. resources.arsc (注:编译后的二进制资源文件)。

了解了之后我们现在就开始来破解它。

为了方面大家理解,我下了个黄金矿工来图文并茂的给大家讲解,为了解决那些中文编码格式,我改名为 kg1.apk。

1.    获取apk的资源图片

绝得他图片不爽?到image目录下就能看到该程序使用的所有图片了如下图。

修改图片:命名还是用他的命名,因为程序中调用的就是这些图片,改了名字可能导致不能正常显示,建议图片大小和名字都和原来的相同。

2.    查看其他资源文件

直接用 WinRAR打开,res/drawable直接拖拽出来即可。如下图

但是我们不能直接查看,所以得用其他工具来弄下。继续往下看

3.    获取xml文件信息

虽然能用WinRAR看到里面的xml文件,但是xml是经过优化的,无法直接查看,所以我们需要使用apktool工具,下载地址:https://code.google.com/p/android-apktool/

下载apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2

下载后,解压到同一个目录,然后把待破解的apk文件拷贝到同一目录,如下图

然后我们进入dos反编译。

DOS在cmd下进入apktool所在路径,然后输入apktool d "XXX1" "XXX2",XXX1指的是你要反编译的apk文件,XXX2指的是反编译后文件存放的路径,

如:apktool d "e:\apk-open\kg1.apk" "e:\apk-open\kg"就是把我e盘apk-open这个文件下的kg1.apk文件 反编译 到e盘apk-open\kg这个目录下。当看到baksmaling…等就表示正在反编译,如下面我dos窗口操作

4.    反编译dex获取Java源代码

这个是看源码最重要的,因为大多android的apk文件都是java编写的

Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个开源工具:dex2jar,

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

这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件

然后可以通过jad工具把jar文件反编译成Java源文件,

jd-gui下载地址:http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip

详细步骤:

解压apk文件,直接拖拽(rar解压软件),找到classes.dex文件

在cmd下进入dex2jar.bat所在路径,

然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称(classes上面解压得到),

如:dex2jar.bat e:\apk-open\kg1\classes.dex

(ex2jar.bat后面有空格哦,路径后面不要打符号)就是把我e:\apk-open\kg1\classes.dex这文件给他弄成个一个jar文件,如下图

用jd-gui工具将jar文件反编译成java文件,选择保存所有,它会生成一个压缩文件,所有的源码都在这个压缩文件中,解压了就可以看到详细的代码了。

最后我们就可以随便弄这个东西了,如果你懂编程,那我们就给他弄到MyEclipse来看,来改,来看他的每个程序具体怎么实现的(因为没改包名,所以有红叉)

以上经过本机win7测试完全通过 ,希望对大家有帮助!

Apk文件破解反编译(转)相关推荐

  1. 游走Android系列之APK文件的反编译、修改和重新编译打包

    Android apk反编译.重新编译和签名 将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.dex文件中得到.class,再将.class处理 ...

  2. 【apk破解尝试之旅】-——apk文件的反编译与回编译

    前段时间玩了个手游,中途碰到一个副本迟迟无法攻破,又不没钱氪金,想着弄个破解版的,搜了半天没找到,于是决定自己动手干! 首先要对apk有个初步的了解,..apk文件是一种压缩文件,网上有种说法:apk ...

  3. 还是关于apk文件的反编译

    说起APK的汉化,目前大部分教程都是让用Hex Workshop或者Android ResEdit来做.但是实际操作后,就会发现: 1.Hex Workshop操作繁琐,经常出现搜不到想要修改的字符的 ...

  4. app加固apk文件防止反编译apk打包流程

    文章目录 [1]加固 一.为什么要加固 二.加固方案 ①免费的第三方加固方案 ②付费的第三方加固方案SDK ③Java IO 流实现AES加密dex [2]加固方案的实现方式 [3]apk文件构造 [ ...

  5. 如何修改apk文件,反编译(转)

    APK文件的解包打包和修改 相信每位玩机的人对APK文件都不陌生.你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具.插件.好玩的游戏等等...你可曾知道这些每天都伴随着你的APK文件是什 ...

  6. java的class文件批量反编译成java

    近来刚做完项目闲来无事就研究起了反编译,之前做一个orc识别vin码功能在度娘出来的全是那几家公司在做广告,后在在公司数据破解的同事帮助下弄了个apk过来.反编译看看是怎么实现的,后面反编译出来看到是 ...

  7. 【Android 安全】使用 360 加固宝加固应用 ( 购买高级加固服务 | 设置资源加固 | 设置 SO 文件保护配置 | 设置 SO 防盗用文件配置 | 反编译验证加固效果 )

    文章目录 一. 购买加固服务 二. 设置资源加固 三. 设置 SO 文件保护配置 四. 设置 SO 防盗用文件配置 五. 反编译验证加固效果 本博客用于记录下 360 加固保 加固应用流程 ; ( 上 ...

  8. Apk文件结构, Dex反编译

    android 系统最常见的莫过就似乎apk文件了,这就是android的安装文件 下面简单说说这个apk的文件格式吧,转载了下别人的说明: Apk文件: Android application pa ...

  9. Android APK系列6-------APK反编译

    Android APK系列6-------APK反编译 前面系列提到的工具在此依然有用,比如可以用yaff2img浏览器或者unyaffs来解压system.img,如果手里是手机,则需要用豌豆荚或3 ...

最新文章

  1. pci 中断冲突_Linux 内核PCI 中断
  2. 开发日记-20190905 关键词 Linux (Ubuntu) 下的Android模拟器:Genymotion
  3. 不带头结点的单链表------C语言实现
  4. React开发(102):别写立即执行函数
  5. Palindrome Index
  6. python抓取网站图片_利用python抓取网站图片
  7. 一道海量日志的随机选取问题
  8. SQL--存储过程+触发器 对比!
  9. hdu4045(递推)
  10. 学习图(最短路径)算法
  11. mysql字段前拼接字符串_Mysql之字段字符串拼接
  12. JAVA除数为0报错?
  13. Open Set Domain Adaptation by Backpropagation
  14. 4个问题带你了解用户画像
  15. python学习笔记(九)异常处理
  16. 模拟器Active Sync同步使用pc网络
  17. 10套word版个人简历模板,各种风格个人简历模板
  18. Java架构师学习路线图
  19. YOLOv3测试人物和舰船检测效果
  20. 数据预处理之数据清洗

热门文章

  1. 零基础学怎么学Java_零基础学java难么?怎么自学?
  2. 超级计算机算200p什么意思,超级计算机一万年的运算仅需200秒,量子霸权的神话真的能实现吗?...
  3. 2021年信号与系统处理期中考试与课堂交互分数
  4. python3调用函数len结果不返回字符串长度_Python通过len函数返回对象长度
  5. python 写cs程序_Python cs.cmdutils包_程序模块 - PyPI - Python中文网
  6. 北京科技大学计算机科学与技术复试,【2017年整理】北京科技大学计算机科学与技术考研经验.doc...
  7. kali linux提示安装系统失败,kali“安装系统”失败分析及解决
  8. makefile清除目标文件的规则
  9. c语言测试代码怎么写,初学C语言,写了一个测试手速的工具,代码发上来,存着。。...
  10. 为什么要设置java环境变量_为什么要配置JDK环境变量?