Skip to content

joyin5344/Decompiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

反编译 - 环境搭建

VolleyDemo

上几章通过封装Volley实现的网络处理框架,做了简单的网络应用。接下来将以此为原型,进入我们的《反编译》系列章节。

工欲善其事,必先利其器。

工具

该系列章节中使用到的工具 包括但不限于以下内容,同时反编译系列的工具也会同代码共享到https://github.com/joyin5344/Decompiler上。

  • apktool

    ApkTool是Google提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。需要java支持。——百度百科

  • signapk

实现对安卓ROM和安卓应用进行签名。

  • dex2jar

dex2jar 是一个能操作Android的dalvik(.dex)文件格式和Java的(.class)的工具集合。

  • jd-gui

绿色、免费的Java反编译工具。

环境准备

反编译工具目录结构主要有apktool_sign和jd-gui。

github把资源下载下来,目录结构如下图所示:

目录结构 有兴趣的读者可以按照我后面的方法设置环境。

  1. apktool_signjd-gui-0.3.5.linux.i686目录copy到~/lib目录下:

~/lib目录

**注意:**如果apktool_sign不是放在~/lib/下,一定要修改apktool_sign/sign.sh文件中第六行,将变量libdir的值设为脚本所在目录(该脚本在后面用到时再详解):

libdir=~/lib/apktool_sign/
  1. 创建链接(便于后续在任意路径使用工具):
sudo ln -s ~/lib/apktool_sign/sign.sh /usr/local/bin/apksign
sudo ln -s ~/lib/apktool_sign/apktool /usr/local/bin/apktool
sudo ln -s ~/lib/apktool_sign/dex2jar/dex2jar.sh /usr/local/bin/dex2jar
sudo ln -s ~/lib/jd-gui-0.3.5.linux.i686/jd-gui /usr/local/bin/jd-gui

/usr/local/bin/目录

  1. framework-res.apk

很多时候我们会忘记安装framework-res.apk,导致操作不成功,对于我们的项目,直接用自己手机里面导出的apk即可。

adb pull system/framework/framework-res.apk .

安装framework-res,使用如下命令:

apktool install-framework framework-res.apk

apktool if framework-res.apk

测试

正确按照上面的步骤执行,此时便可以进行反编译操作了。

源文件

我们先创建目录~/android/decompile/,然后将之前VolleyDemo.apk1复制到该目录下。

mkdir -p ~/android/decompile/
cp [VolleyDemo.apk路径] ~/android/decompile/
cd !$

decode

apktool反编译apk文件,执行如下命令:

apktool d VolleyDemo.apk 

decode输出

目录结构

VolleyDemo/目录下则是反编译后生成的文件,具体内容后续章节会介绍到。

build

apktool b VolleyDemo

build输出

build后会生成VolleyDemo/dist/VolleyDemo.apk文件,该文件是没经过签名的,也就意味着不能安装使用。

签名

通过apksign命令进行签名,具体实现的脚本代码后续介绍。

apksign VolleyDemo/dist/VolleyDemo.apk

sign输出

最终生成的VolleyDemo/dist/VolleyDemo.apk_sign.apk文件就是经过签名,可安装使用的apk。

至此,反编译、回编译、签名,流程已经跑通,后续章节将在此基础上讲解签名脚本,查看源码、进行代码注入等操作。

Footnotes

  1. 前面章节代码编译后的成果,同时在Decompiler项目中apks/路径下。

About

反编译系列

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published