android 反编译书,Android反编译

http://blog.csdn.net/guolin_blog/article/details/49738023一、反编译代码

要想将APK文件中的代码反编译出来,我们需要用到以下两款工具:

dex2jar这个工具用于将dex文件转换成jar文件

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

c2f6e029774f

其中我们要用到的是d2j-dex2jar.bat这个文件

2.然后我们将Demo.apk文件也进行解压,如果不知道怎么直接解压的可以先将文件重命名成Demo.zip,然后用解压软件打开。解压之后你会发现里面有一个classes.dex文件,如下图所示:

c2f6e029774f

3.这个classes.dex文件就是存放所有java代码的地方了,我们将它拷贝到dex2jar解压后的目录下,并在cmd中也进入到同样的目录,然后执行:

d2j-dex2jar classes.dex

执行结果如下图所示:

c2f6e029774f

没有报任何错误,这就说明我们已经转换成功了。现在观察dex2jar目录,你会发现多了一个文件,如下图所示:

c2f6e029774f

4.可以看到,classes-dex2jar.jar这个文件就是我们借助工具之后成功转换出来的jar文件了。但是对于我们而言,jar文件也不是可读的,因此这里还需要再借助一下jd-gui这个工具来将jar文件转换成java代码。

下面就很简单了,使用jd-gui工具打开classes-dex2jar.jar这个文件,结果如下图所示:

c2f6e029774f

OK,由此可见,我们的代码反编译工作已经成功了二、反编译资源

apktool这个工具用于最大幅度地还原APK文件中的9-patch图片、布局、字符串等等一系列的资源。

c2f6e029774f

2.接下来的工作就很简单了,我们将Demo.apk拷贝到和这两个文件同样的目录当中,然后cmd也进入到这个目录下,并在cmd中执行如下命令:

apktool d Demo.apk

上述命令的执行结果如下图所示:

c2f6e029774f

这就说明反编译资源已经成功了。三、重新打包

1.首先我们来看一下通过apktool反编译后的包目录情况,如下图所示:

c2f6e029774f

其中,original文件夹下存放的是未经反编译过、原始的AndroidManifest.xml文件,res文件夹下存放的是反编译出来的所有资源,smali文件夹下存放的是反编译出来的所有代码,AndroidManifest.xml则是经过反编译还原后的manifest文件。

2.在做了改动之后,我们现在来把反编译后的Demo文件夹重新打包成APK吧,其实非常简单,只需要在cmd中执行如下命令:

apktool b Demo -o New_Demo.apk

其中b是build的意思,表示我们要将Demo文件夹打包成APK文件,-o用于指定新生成的APK文件名,这里新的文件叫作New_Demo.apk。执行结果如下图所示:

c2f6e029774f

现在你会发现在同级目录下面生成了一个新的APK文件:

c2f6e029774f

3.签名打包安装

jarsigner-verbose-sigalgSHA1withRSA-digestalgSHA1-keystore签名文件名-storepass签名密码 待签名的APK文件名 签名的别名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值