简单的总结几个关键步骤:

一、工具准备:apktool , dex2jar , jd-gui

二、使用dex2jar + jd-gui 得到apk的java源码 
1.用解压工具从 apk包中取出 classes.dex 文件 
用命令(dex2jar.bat classes.dex )得到一个 jar文件
2.用jd-gui反编译工具将得到.jar文件反编译成.java文件

三、使用apktool得到apk的xml文件 
1.用命令(apktool d xxx.apk xxx_xml )反编译xxx.apk包
2.从 xxx_xml 文件夹得到xml文件

四、第二步得到的程序源代码和第三步得到的xml文件组合下,即可得到完整的apk源码。

五、汉化/去广告,加 values-zh-rCN, values-zh-rTW, values-de, values-fr

1.在步骤三的文件夹里 建文件夹: values-zh-rCN,values-zh-rTW

2.1复制values\strings.xml 到   values-zh-rCN 并翻译.

2.2 去广告见:http://www.cnblogs.com/wangjianh ... /07/05/2098563.html

3.重建APK,用命令(apktool b xxx ) ,输出到ABC/dist/out.apk

或命令( apktool b xxx out.apk )

六、签名

1.把未签名的apk 复制到 sign.bat 目录下。
2.打开cmd, 进入到 sign.bat 目录下, 输入命令:
sign out.apk out_signed.apk 
    out.apk 即为没签名的apk, out_signed.apk 为签名的

sign.bat 要改下:

@echo OFF
java -jar signapk.jar testkey.x509.pem testkey.pk8 %1 %2

--------------------------------- 以下是整理/摘选的 ---------------------------------

在官网下载 apktools 工具

http://code.google.com/p/android-apktool/

apktool1.4.3.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2

解压分别得到 apktool.jar 和  apktool.bat , aapt.exe .

把这3个文件复制到 系统文件夹下面, 一般是C:\Windows

jd-jui:      http://java.decompiler.free.fr/?q=jdgui

dex2jar : http://code.google.com/p/dex2jar/downloads/list

=================================================

部分内容摘自: http://www.cnblogs.com/afirefly/archive/2011/10/12/2208461.html

一、工具准备:apktool , dex2jar , jd-gui

工具包也可以在这里下载。http://www.kuaipan.cn/index.php?ac=file&oid=3166172581218989

1、dex2jar下载,jd-gui下载。
2、apktool,可以去Google的官方下载,apktool-1.0.0.tar.bz2(里面有apktool.jar)和apktool- install-windows-2.1_r01-1.zip两个包都要下。解压 apktool.tar.bz2,把apktool.jar 放到 C:\Windows下,解压apktool-install-windows.zip到任意文件夹(例如E盘根目录或 C:\Windows )。

二、使用dex2jar + jd-gui 得到apk的java源码

步骤如下:
1、用.rar打开apk文档,将classes.dex文件解压出来,然后使用工具反编译成.jar文件。 
在cmd下进入dex2jar.bat所在路径,然后输入命令:

dex2jar.bat XXX

,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称,比如:我的dex2jar.bat在D:\Android \apk_decode\dex2jar-0.0.7-SNAPSHOT路径下, classes.dex在D:\Android下,所以: 你进入dex2jar.bat路径下后,输入dex2jar.bat D:\Android\classes.dex ,这样会生成一个jar文件(一般是:classes.dex.dex2jar.jar)。

2.用jd-gui反编译工具将得到.jar文件反编译成.java文件

三、使用apktool得到apk的xml文件  
1、Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入命令:
apktool d XXX.apk ABC

反编译XXX.apk到文件夹ABC 
2、 在解压后的文件夹中可以得到apk的xml配置文件

四、第二步得到的程序源代码和第三步得到的xml文件组合下,就成一个android工程,即可得到完整的apk源码。

=================================================

部分内容摘自: http://zhangyan1158.blog.51cto.com/2487362/683234

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文件。具体情况请看常见问题

==========================

jadclipse Decompiler.zip

jad158e.linux.intel.zip
jad158g.win.zip ( jad.exe ) 
jadclipse.txt
jadclipse_3.1.0.jar
jadclipse_3.2.0.jar
net.sf.jadclipse_3.2.4.jar
net.sf.jadclipse_3.3.0.jar

(android实战)破解apk的更多相关文章

  1. Android动态方式破解apk进阶篇(IDA调试so源码)

    一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为 ...

  2. Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)

    一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用 ...

  3. Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)

    Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...

  4. android黑科技系列——静态分析技术来破解Apk

    一.前言 从这篇文章开始我们开始我们的破解之路,之前的几篇文章中我们是如何讲解怎么加固我们的Apk,防止被别人破解,那么现在我们要开始破解我们的Apk,针对于之前的加密方式采用相对应的破解技术,And ...

  5. Android逆向之旅---静态分析技术来破解Apk

    一.前言 从这篇文章开始我们开始我们的破解之路,之前的几篇文章中我们是如何讲解怎么加固我们的Apk,防止被别人破解,那么现在我们要开始破解我们的Apk,针对于之前的加密方式采用相对应的破解技术,And ...

  6. 动态方式破解apk进阶篇(IDA调试so源码)

    动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/qq_21051503/article/details/74907449 下面就说关于在IDA中And ...

  7. Android实战技巧:深入解析AsyncTask

    AsyncTask的介绍及基本使用方法 关于AsyncTask的介绍和基本使用方法可以参考官方文档和Android实战技巧:多线程AsyncTask这里就不重复. AsyncTask引发的一个问题 上 ...

  8. Android中的Apk的加固(加壳)原理解析和实现

    一.前言 今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理.现阶段.我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk, ...

  9. apktool动态破解apk

    那么今天我们就用另外一种方式来破解apk:动态方式,关于动态方式其实很广义的,因为动态方式相对于静态方式来说,难度大一点,但是他比静态方式高效点,能够针对更过的破解范围.当然动态方式很多,所以这里就分 ...

随机推荐

  1. php 中的 short_open_tag 的作用

    在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的段标签:(<? ?>). 同时,只有开启这个才可以使用 <?= 以代替 < ...

  2. HTML性能优化

    摘要: 页面优化是对网页中的HTML代码进行必要的调整,可以有效地精简页面中的冗余代码,加快网页显示速度,减少网页占用搜索引擎服务器的存储空间,提高用户体验和搜索引擎友好性,当然也可以更好的突出页面的 ...

  3. MFC 小知识总结五

    1 移动无标题对话框   响应WM_NCHITTEST 消息 [cpp] view plaincopy LRESULT CTimeJishiDlg::OnNcHitTest(CPoint point) ...

  4. try catch finally的执行顺序

    1.将预见可能引发异常的代码包含在try语句块中. 2.如果发生了异常,则转入catch的执行.catch有几种写法: catch 这将捕获任何发生的异常. catch(Exception e) 这将 ...

  5. 关于直播学习笔记-004-nginx-rtmp、srs、vlc、obs

    1.采集端:OBS RTMP推流地址:rtmp://192.168.198.21:1935/live 流密钥:livestream(任意-但播放地址与此一致) 2.播放端:nginx-rtmp-win ...

  6. laravel 强大的关联模型

    内容比较多,不总结了,直接看学院君的译文吧,已经写得很详细了 传送门:http://laravelacademy.org/post/6191.html PS1: laravel的关联模型并不是遍历一次 ...

  7. Oracle里 用sql*plus 登陆时,用户名和密码是多少啊?

    Oracle里sql*plus的用户名即system用户,密码是自己设置的密码. 如果密码忘记,可通过如下方法重置. 1.win键+R键,输入cmd,打开命令提示符. 2.输入sqlplus /nol ...

  8. 【Mysql】大数据处理优化方法

    1.应尽量避免在 where 子句中使用 != 或  <>  操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 orde ...

  9. Intellij debug模式使用

    1.这里以一个web工程为例,点击图中按钮开始运行web工程. 2.设置断点 3.使用postman发送http请求 4.请求发送之后会自动跳到断点处,并且在断点之前会有数据结果显示 5.按F8 在 ...

  10. IE8及以下的数组处理与其它浏览器的不同

    在解决search-box的bug时,由于IE8-的数组处理与其它浏览器的不同,而导致报错. 示例:arr=[1,3,3,]; 当数组的最后是一个逗号时: IE9+默认 arr=[1,3,3];也就是 ...