(android实战)破解apk

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

 

一、工具准备: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

 

时间: 2024-08-04 09:46:17

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

apktool动态破解apk

那么今天我们就用另外一种方式来破解apk:动态方式,关于动态方式其实很广义的,因为动态方式相对于静态方式来说,难度大一点,但是他比静态方式高效点,能够针对更过的破解范围.当然动态方式很多,所以这里就分为三篇文章来讲解这块: 1.动态方式破解apk前奏篇(Eclipse动态调试smail源码) 2.动态方式破解apk升级篇(IDA动态调试so源码) 3.动态方式破解apk终极篇(应对加固的apk破解方法) 从这三篇文章能够让我们破解一般的apk没有任何问题,不过不能代表能够破解所有的apk,因为没

Android 多个APK数据共享

Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户(Android 系统是基于Linux)的.所以不同APK(用户)间互相访问数据默认是禁止的. 但是它也提供了2种APK间共 享数据的形式: 1. Share Preference. / Content Provider APK可以指定接口和数据给任何其他 APK读取. 需要自己实现接口和Share的数据. 2. Shared User id 通过Shared User id,拥有同

android apk-请教apk打包包含另一个apk的问题

问题描述 请教apk打包包含另一个apk的问题 最近想引用另一个apk的功能,没有源码,只知道入口,可以调起另一个apk,前提是另一个apk也装好了,因为只能推一个apk,这个怎么处理?静默安装会有界面,会对用户造成疑惑,请大家多多指教 解决方案 android studio打包apk 百度地图不显示的问题 解决方案二: 静默安装我肯定会卸载掉你的应用,这种方式不推荐.可以参考一下微信/QQ分享之类的,具体实现不太清楚.

android 调用第三方apk setResult回来intent为null

问题描述 android 调用第三方apk setResult回来intent为null 有2个程序互相调用,A程序通过发intent,使用startActivityForResult()方法, 调用B程序,B程序启动后做了一些自己的事,其中会切换很多activity 显示B自己的UI, 现在我在B处理完逻辑后,通过发intent或者handler的方式把参数传回给B程序的主入口activity, 再通过此activity调用setResult()方法返回给A程序,现在发现A程序的onActiv

android 反编译 apk 分享 smali2java 1.0.0.558

smali2java 1.0.0.558 smali2java是一个将smali代码反编译成java代码的工具. 什么是smali?smali是将Android字节码用可阅读的字符串形式表现出来的一种语言,可以称之为Android字节码的反汇编语言.使用baksmali或apktool可以将Android应用程序包(apk或jar)反编译为smali代码. smali2java工具基于apktool v1.5.0(baksmali v1.3.4)生成的smali文件,依赖于smali文件中的代码

Xamarin开发Android应用打包apk

原文:Xamarin开发Android应用打包apk Visual Studio中用Xamarin开发Android应用,生成apk文件有3种方法 1.debug时,代码目录下bin\Debug中会自动生成调试用***-Signed.apk文件,但是文件Size非常大,不建议使用. 2.Release时,"部署"勾选√,生成--部署解决方案后,代码目录下bin\Release中会自动生成部署用***-Signed.apk文件,文件Size比较小. 3.自己打包,工具--Publish

Android实战打飞机游戏之子弹生成与碰撞以及爆炸效果(5)_Android

Android实战打飞机游戏子弹生成,新建子弹类 public class Bullet { // 子弹图片资源 public Bitmap bmpBullet; // 子弹的坐标 public int bulletX, bulletY; // 子弹的速度 public int speed; // 子弹的种类以及常量 public int bulletType; // 主角的 public static final int BULLET_PLAYER = -1; // 鸭子的 public st

用 flash cs5.5新建 air for android打包成apk失败

问题描述 用 flash cs5.5新建 air for android打包成apk失败 flash提示 创建文件失败 : C:UsersAdministratorAppDataLocalTempHZ$D.042.4593HZ$D.042.4595Adobe Flash Professional CS5.5Adobe Flash CS5.5air 2.6libadt.jar 求指教

Android实战打飞机游戏之子弹生成与碰撞以及爆炸效果(5)

Android实战打飞机游戏子弹生成,新建子弹类 public class Bullet { // 子弹图片资源 public Bitmap bmpBullet; // 子弹的坐标 public int bulletX, bulletY; // 子弹的速度 public int speed; // 子弹的种类以及常量 public int bulletType; // 主角的 public static final int BULLET_PLAYER = -1; // 鸭子的 public st