(android实战)破解apk

简介: 简单的总结几个关键步骤:   一、工具准备:apktool , dex2jar , jd-gui二、使用dex2jar + jd-gui 得到apk的java源码 1.用解压工具从 apk包中取出 classes.

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

 

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

 

目录
相关文章
|
2月前
|
安全 Android开发 Kotlin
Android经典实战之SurfaceView原理和实践
本文介绍了 `SurfaceView` 这一强大的 UI 组件,尤其适合高性能绘制任务,如视频播放和游戏。文章详细讲解了 `SurfaceView` 的原理、与 `Surface` 类的关系及其实现示例,并强调了使用时需注意的线程安全、生命周期管理和性能优化等问题。
152 8
|
25天前
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
18 3
|
2月前
|
Android开发 开发者 索引
Android实战经验之如何使用DiffUtil提升RecyclerView的刷新性能
本文介绍如何使用 `DiffUtil` 实现 `RecyclerView` 数据集的高效更新,避免不必要的全局刷新,尤其适用于处理大量数据场景。通过定义 `DiffUtil.Callback`、计算差异并应用到适配器,可以显著提升性能。同时,文章还列举了常见错误及原因,帮助开发者避免陷阱。
173 9
|
1月前
|
Android开发
Android实战之如何快速实现自动轮播图
本文介绍了在 Android 中使用 `ViewPager2` 和自定义适配器实现轮播图的方法,包括添加依赖、布局配置、创建适配器及实现自动轮播等步骤。
22 0
|
2月前
|
开发工具 Android开发 git
Android实战之组件化中如何进行版本控制和依赖管理
本文介绍了 Git Submodules 的功能及其在组件化开发中的应用。Submodules 允许将一个 Git 仓库作为另一个仓库的子目录,有助于保持模块独立、代码重用和版本控制。虽然存在一些缺点,如增加复杂性和初始化时间,但通过最佳实践可以有效利用其优势。
38 3
|
1月前
|
Android开发
Android开发显示头部Bar的需求解决方案--Android应用实战
Android开发显示头部Bar的需求解决方案--Android应用实战
21 0
|
2月前
|
Java Android开发 UED
🧠Android多线程与异步编程实战!告别卡顿,让应用响应如丝般顺滑!🧵
在Android开发中,为应对复杂应用场景和繁重计算任务,多线程与异步编程成为保证UI流畅性的关键。本文将介绍Android中的多线程基础,包括Thread、Handler、Looper、AsyncTask及ExecutorService等,并通过示例代码展示其实用性。AsyncTask适用于简单后台操作,而ExecutorService则能更好地管理复杂并发任务。合理运用这些技术,可显著提升应用性能和用户体验,避免内存泄漏和线程安全问题,确保UI更新顺畅。
92 5
|
2月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
129 1
|
2月前
|
编解码 前端开发 Android开发
Android经典实战之TextureView原理和高级用法
本文介绍了 `TextureView` 的原理和特点,包括其硬件加速渲染的优势及与其他视图叠加使用的灵活性,并提供了视频播放和自定义绘制的示例代码。通过合理管理生命周期和资源,`TextureView` 可实现高效流畅的图形和视频渲染。
223 12
|
2月前
|
Android开发 容器
Android经典实战之如何获取View和ViewGroup的中心点
本文介绍了在Android中如何获取`View`和`ViewGroup`的中心点坐标,包括计算相对坐标和屏幕上的绝对坐标,并提供了示例代码。特别注意在视图未完成测量时可能出现的宽高为0的问题及解决方案。
47 7