2019独角兽企业重金招聘Python工程师标准>>>

反编译代码:

1、解压apk得到class.dex

2、dex2jar.bat  class.dex

3、用Java decompiler查看编译出来的*.jar文件就可以看到代码

反编译资源文件:

1、apktool.bat  d   *.apk   <dri>

APKTool是GOOGLE提供的APK编译工具,需要JAVA运行环境,推荐使用JDK1.6或者JDK1.7。
如果你想对APK文件进行修改,那么就不可避免的要使用到APKTool。论坛里有很多关于ROM美化的帖子都需要自己动手修改APK文件,比如修改framework-res.apk、systemUI.apk等等。
相信各位有不少人看了后都想亲自来修改一番,但是结果却是遇到了各式各样的错误却无法进行改正,甚至都不知道自己错在哪里。
一.APKTOOL使用环境配置
1.安装JAVA并设置环境变量。
下载安装都很简单,关键是安装完后还需要亲自设置环境变量以方便其他程序能够条用JAVA。
以WIN7为例,在桌面上右键点击计算机——>属性——>高级系统设置——>环境变量——>在下边的系统变量里新建一个变量,变量名为JAVA_HOME,值为JAVA的安装路径,比如我的是H:\ProgramFiles\Java\jdk1.6.0_26
二.APKTool的安装
1.其实这个谈不上安装,不过如果你愿意的话可以把下载到的APKTOOL中的三个文件(aapt.exe、apktool.bat、apktool.jar)解压缩到你的Windows安装目录下,以方便使用Dos命令.
2.可能有些人下载的APKTOOL里有个安装的bat文件,并且有另外两个方便使用的bat文件,在这里我不推荐大家使用这些bat文件,虽然使用起来很方便(其实我并不觉得方便),但是如果出现错误不方便查看。
三.APKTool的使用
1.decode
该命令用于进行反编译apk文件,一般用法为
apktool d <file.apk> <dir>
<file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk
<dir>代表了反编译后的文件的存储位置,比如C:\MusicPlayer
如果你给定的<dir>已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令
apktool d –f <file.apk> <dir>
这样就会强行覆盖已经存在的文件
2.build
该命令用于编译修改好的文件,一般用法为
apktool b <dir>
这里的<dir>就是刚才你反编译时输入的<dir>(如C:\MusicPlayer),输入这行命令后,如果一切正常,你会发现C:\MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。
3.install-framework
该命令用于为APKTool安装特定的framework-res.apk文件,以方便进行反编译一些与ROM相互依赖的APK文件。具体情况请看常见问题
四.常见问题
1.关于安装和管理framework文件
以下大部分其实是翻译自http://code.google.com/p/android-apktool/wiki/FrameworkFiles
一般来说,你在使用apktool进行反编译前不需要做其他的事情,然而由于有的厂商,如HTC,三星等,他们定制了framework文件并且在他们的系统应用中使用了这些文件,这时,为了能正常的反编译这些apk文件,你就必须从你的设备中拷贝出framework文件并且安装到apktool中。
举一个例子,比如你想反编译HTCHero这款手机中的HtcContacts.apk,当你尝试反编译的时候,你会得到以下错误信息。
$ apktool d HtcContacts.apk 
I: Loading resource table...
I: Decoding resources...
I: Loading resource table from file: /home/brutall/apktool/framework/1.apk
W: Could not decode attr value, using undecoded value instead: ns=android, name=drawable, value=0x02020542
...
W: Could not decode attr value, using undecoded value instead: ns=android, name=icon, value=0x02020520
Can't find framework resources for package of id: 2. You must install proper framework files, see project website for more info.
复制代码
这就是在通知你必须先安装HTC定制的framework文件,事实上在修改一些三星的系统应用时也是如此。
以三星的设备来举例,你需要复制两个framework文件来进行安装,framework-res.apk和tzframework-res.apk,一般来说,这两个文件在手机中的位置应该是system\framework\
使用以下代码进行安装
apktool if C:\framework-res.apk
apktool if C:\tzframework-res.apk
这里假设2个文件都放在C盘根目录
2.直接用build编译后在dist中找到的apk文件无法使用
其实这个问题我也不是特别理解,目前知道的就是,APK文件虽然本质是个zip文件,但是事实上zip包中的文件是按照两种方式压缩的,即XML文件进行deflate压缩,其他文件不进行压缩(使用store存储),而直接编译得到的APK文件对任何的文件都进行了deflate压缩,因此你会发现编译得到的文件比原文件小好多。
同样的,当你使用build文件夹中的文件替换原apk文件中的资源时,请务必确认是使用store存储还是deflate压缩
3.其他错误
其实在编译过程中会遇到很多其他的问题,大多数是由于删除、修改、添加了资源后,没有对应的修改res\values\public.xml文件而造成的,这里我给大家说下修改的原则:
第一,public.xml文件中的资源不能重复定义。
第二,public.xml文件中的任意两个资源的ID不能一样
第三,public.xml文件中定义的资源必须能找到该文件(如果你删除了一些文件,必须要对应的删除public.xml中的该行)
第四,public.xml文件中尽可能全面(如果你添加了某资源,最好确保在public.xml中也添加)
第五,public.xml文件中的资源的ID尽可能连续(当你为添加的文件添加声明时,赋予的ID尽可能是连续的)

转载于:https://my.oschina.net/kevinvane/blog/72869

反编译androd的apk文件相关推荐

  1. 【反编译】安卓APK反编译为java文件

    [反编译]安卓APK反编译为java文件 准备工具 要反编译的apk文件, 以微信8.0.apk为例子 dex2jar   下载地址 dex2jar-2.0反编译.zip-Android文档类资源-C ...

  2. Android studio编译好的apk文件在哪里?

    Eclipse中编译好的apk文件在bin文件夹里, 但是在Android Studio有一个比较大的改动了,编译好的apk在android studio里面是直接看不到了, 而且apk文件所在目录也 ...

  3. 反编译C#的dll文件并修改,再重新生成dll

    1.把dll文件导入到ildasm工具中,ildasm是由微软提供的.net程序反编译工具,位于"C:\Program Files\Microsoft SDKs\Windows\v6.0A\ ...

  4. 如何实行反编译,将.class文件转化为.java文件

    #如何实行反编译,将.class文件转化为.java文件 1.使用win+R快捷键,打开"运行"界面. 2.输入cmd,打开命令窗口. 3.因为我的jad.exe软件在e盘里,所以 ...

  5. java eclipse 反编译_java的class文件反编译和Eclipse、MyEclipse反编译插件安装、使用...

    本帖最后由 pig2 于 2014-3-4 10:58 编辑 前言 我们在做项目中,可能经常需要看下别人写的源码,而别人提供的往往是jar文件,根本看不了,很影响开发效率.本人最近就为此而感到很不爽, ...

  6. 反编译android的apk

    将要反编译的APK后缀名改为.rar或 .zip,并解压 得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具 ...

  7. vue打包代码反编译_Android逆向反编译代码注入APK过程思路分析

    一.名称解释 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密.反汇编.系统分析等多种计算机技术,对软件的结构.流程.算法. 代码等进行逆向拆解和分析,推导出软件产品的源代码. ...

  8. android apk 反编译工具,安卓apk反编译神器

    APK反编译神器安卓修改大师是一个解编APK文件的工具,使用它可以轻松地解编所有APK安装包,替换应用程序界面中的所有文本和图片,代码级别的修改可以增强中文.裂缝.功能等等. 软件说明 可以向所有界面 ...

  9. android将彩图转为黑白_Android逆向反编译代码注入APK过程思路分析

    一.名称解释 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密.反汇编.系统分析等多种计算机技术,对软件的结构.流程.算法. 代码等进行逆向拆解和分析,推导出软件产品的源代码. ...

最新文章

  1. 青桔单车 chameleon 跨平台实践
  2. iOS -- UIApplication
  3. Sprint(第一天11.14)
  4. 以指针的形式和以下标的形式访问指针?以指针的形式和以下标的形式访问数组?
  5. 【报错】No match for argument: mysql-community-server Error: Unable to find a match: mysql-community-s
  6. 帮助文档的数据库结构
  7. 【机器视觉学习笔记】双边滤波算法(C++)
  8. EEPROM、FLASH、NOR FLASH、NAND FLASH 区别、关系总结
  9. Origin introduction and install
  10. 【代码重构】拒绝继承的遗赠(Refused Bequest)--如何处理子类无需使用到父类中的某些方法和变量的情况?
  11. android tv webview,Android TV中WebView的按键响应问题
  12. 职场的头几年决定你的一生,你hold住吗?
  13. 依据Right-BICEP要求的对四则运算2的测试
  14. 常用工具 [ubuntu 图像编辑软件]
  15. Windows Azure为锤子科技Smartisan T1手机提供“工匠”级云服务
  16. 第十章、epub文件处理 -- 样式处理
  17. Android学习:Service自问自答
  18. 给定一个10位的整数组成的串,形式如: d1d2d3d4d5d6d7d8d9d10 。 其中最后的一位(即 )是校验和,其使用以下运算规则以前面的9位上的整数作为参数获得结果
  19. [推荐系统]利用用户行为数据
  20. 固定资产管理系统的一般操作流程

热门文章

  1. iOS 操作系统被曝无线网络命名bug 导致 iPhone无法连接无线网络
  2. 因多年不受重视,研究员公开2个未修复 Tor 0day且承诺再放3个
  3. 【日常水题-bfs】马的遍历
  4. Linux shell 脚本入门教程+实例
  5. mysql 简单游标
  6. jquery获取元素索引
  7. 验证码识别服务提供商
  8. jQuery Howto: 如何快速创建一个AJAX的加载的图片效果
  9. fedora下java环境配置
  10. 关于3D Pie Chart (ActiveReport 4.2.0)的学习总结 (一)