ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> 移动开发 >> apktool Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

apktool Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正(9/11)

来源:网络整理     时间:2016-06-15     关键词:apktool

本篇文章主要介绍了"apktool Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正",主要涉及到apktool方面的内容,对于移动开发感兴趣的同学可以参考一下: 一、前言在之前的破解过程中可以看到我们唯一离不开的一个神器那就是apktool了,这个工具多强大就不多说了,但是如果没有他我们没法涉及到后面的破解工作了,这个工...

2、Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file

异常原因:通过分析源码知道,这个错误主要是因为apk了做了resource.arsc头部信息的修改,导致在分析头部数据结构的时候出错,错误代码:ExtDataInput.java的skipCheckChunkTypeInt方法 73行

修复:修复resource.arsc头部数据,修改skipCheckChunkTypeInt检测方法逻辑

第二、Apktool的回编译源码分析

到这里我们就分析完了apktool的反编译功能源码,也解决了QQ和支付宝应用反编译的失败问题,下面再继续分析一下apktool的回编译功能,关于回编译功能的话,这里可以先看这篇文章:Android中编译Apk的步骤分析 这里我们可以知道aapt命令的功能:

 Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

使用aapt命令编译资源文件
aapt package -f -m -J gen -S res -I D:/android-sdk-windows/platforms/android-16/android.jar -M AndroidManifest.xml 
这里的命令参数有点多就不全部介绍了,就说明几个:
-J 后面跟着是gen目录,也就是编译之后产生的R类,存放的资源Id
-S 后面跟着是res目录,也就是需要编译的资源目录
-l 后面跟着是系统的库,因为我们在项目资源中会用到系统的一些资源文件,所以这里需要链接一下
-M 后面跟着是工程的清单文件,需要从这个文件中得到应用的包名,然后产生对应的R文件和包名。

而且,这个命令不仅可以进行编译,可以反编译,就是上面我们提到的解析AndroidManifest.xml和resource.arsc的时候,使用它可以做到的,解析dex文件可以使用dumpdex这个命令的。这些命令都是在androidsdk目录的build-tools目录下。

知道了这个编译过程,其实回编译就是按照这个步骤来的,而这里重要的就是使用aapt命令:

 Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

这里我们把命令放到了项目的framework目录下:

 Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

然后开始构造命令参数,主要需要引用系统的jar包:android.jar

 Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

这里就差不多分析完了回编译的功能,我们修改一下入口代码,添加回编译运行参数:

apktool相关图片

apktool相关文章