Android 反编译入门

反编译

我们知道,Android的程序打包后会生成一个APK文件(可改成zip文件后缀查看包内容),这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译。Android的反编译分成两个部分:

  • 一个是对代码反编译,也就是java文件的反编译。
  • 一个是对资源反编译,也就是res文件的反编译。

    《Android 反编译入门》《Android 反编译入门》

反编译代码的工具:

dex2jar: 把dex文件转成jar文件

下载地址:https://sourceforge.net/projects/dex2jar/files/

 

jd-gui: 这个工具用于将jar文件转换成java代码

下载地址:http://jd.benow.ca/

 

反编译资源的工具:

APKTool: 本文重要工具,APK逆向工具,使用简单

下载地址: http://ibotpeaches.github.io/Apktool/install/

 

打包下载(2017-10-13):http://pan.baidu.com/s/1kV7Tk83

 

工具使用:

注:请先安装JRE环境!

dex2jar:

APK文件的后缀,需改为.zip,然后解压。从解压的文件中找到classes.dex文件,并将其放入dex2jar同一目录下:

d2j-dex2jar.bat classes.dex

jd-gui:

dex2jar 生成的jar文件借助JD-GUI工具打开即可看到源代码

apktool:

apktool.bat apktool d FooApp.apk

解压后主要目录说明:

AndroidManifest.xml:描述文件

res:资源文件

smail:反编译出来的所有代码,语法与java不同,类似汇编,是Android虚拟机所使用的寄存器语言

重新打包:

apktool.bat b FooAPP -o NewFooApp.apk

重新签名:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 签名文件名 -storepass 签名密码 待签名的APK文件名 签名的别名

 

小结:

以上就是反编译APK最基本的过程,但不是万能的,因为部分软件会使用混淆技术,这个就待以后碰到继续学习。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注