android那些事--初识反编译

一直比较喜欢反编译之类的操作,没有不尊重原创的意思.就是感觉好玩,或者向别人说的想看下别人怎么实现的.

对于android反编译重要的是这么两步,java代码的反编译,资源文件的反编译.这个由apk的解压结果可以看出来.
这里写图片描述
由这个结论也就引出了反编译所需要的工具, dex2jar和apktool

java代码的处理

得到jar文件

解压的内容有个classes.dex文件.
1. dex文件是android平台上的可执行文件.这个里面就是处理后的java代码.
2. 所以想要看到java代码只要对这个文件处理可以了
3. 所需要的工具就是dex2jar

使用方法就是命令行输入 d2j-dex2jar dex文件
需要注意的是你的电脑系统window的执行 d2j-dex2jar.bat
mac 的执行 d2j-dexjar.sh
因此这里执行的命令格式为 sh d2j-dex2ajr.sh dex文件

这里写图片描述
这里写图片描述

到这里已经得到了jar文件,是不是非常简单.如果想看jar文件这里就需要另外一个工具了jd-gui可以根据不同的系统区下载相应的工具

查看jar文件内容
jd-gui 就是查看jar文件的java代码的可视化工具直接将jar文件
拖进工具就可以看到结果.

这里写图片描述

xml文件的处理

上面就已经看到了java代码,另外对于引用的图片资源,在我们解压后打开相应的文件夹就可以看到
这里写图片描述

同样的方式那么布局文件也是这样的,有一点不同的是布局文件打开是乱码的这个时候就需要另外一个工具apktool

这里写图片描述

下载apktool

下载apktool后按照说明,将apktool和apktool.jar(window平台的是apktoo.bat 和apktool.jara)放到同一个文件夹,然后就可以执行下面的相关步骤了.
这里写图片描述

为了方便处理,我将apk文件也放到该目录下

1.执行命令 apktool d release.apk 的到一个编译后的文件夹结果
这里写图片描述
2.打开release 文件夹 进入相关文件夹内 再次找到原来乱码的xml文件打开发现已经看到正常的布局文件了,其他的xml文件也一样
这里写图片描述

3.通过这种方式的到的结果中还有一个smali文件夹,这个里面放的也是处理后的java代码,smali文件还是有必要学习一下的.

重新打包

如果我们修改了布局之后,如何重新打包呢?同样的还是apktool来完成,因为不会修改java代码所以革命的学习路线还是遥远的.

通过如下命令
apktool b release -o new_file.apk

这里写图片描述
可以看到新的apk已经得到了,正常情况下现在的这个apk还不能安装,因为需要重新签名.
另外在开发者模式下,通过adb命令可以将目前的这个apk安装,但是不建议这么区做.android系统为了安全考虑,规定每个软件或者ROM都要签名,如果没有签名系统会认为那对系统有害,无法安装.

对新文件进行签名安装
通过如下格式命令进行签名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 签名文件名 -storepass 签名密码 待签名的APK文件名 签名的别名

这里写图片描述
线路如图
这里写图片描述
相关工具的下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值