移动安全入门(一)——Android的反编译工具以及使用

移动安全入门(一)——Android的反编译工具以及使用

我倾向于使用命令行工具来做这些工作

找到的Android下的反编译工具主要有:

  1. apktool,将apk文件解析并反编译为smali
  2. dex2jar,将dex文件反编译为jar
  3. jd-gui,解析jar包,反编译为Java源码,但是是图形化界面
  4. jadx,将dexapk等文件反编译为Java源代码

apktool

安装:在https://github.com/iBotPeaches/Apktool的README界面下面的Download链接下下载jar

编写脚本

#!/bin/bash

APKTOOL_PATH=/home/xxx/Documents/xxx/apktool_2.5.0.jar

java -jar $APKTOOL_PATH apktool $1 $2 $3

放在/usr/local/bin或者是~/.local/bin目录下即可运行

使用方法:https://ibotpeaches.github.io/Apktool/documentation/

  1. apktool d testapp.apk -o target,Decoding
  2. apktool b bar -o new_bar.apk,Building
  3. if参数:Frameworks,配合-t(tag frameworks)或-p(store framework into dir)使用

直接解压的apk文件下的AndroidManifest.xml是不可读的,通过apktool就能清楚地浏览,并提供可读的AndroidManifest.xml

dex2jar

安装:https://sourceforge.net/projects/dex2jar/files/latest/download

下载的是一个zip包,解压后既有bat文件也有shell文件
使用chmod + x *.sh为所有的shell文件赋予执行权限

这些脚本各有各的功能,很丰富

为了不必每次使用的时候都要打开,在/usr/local/bin或者~/.local/bin下面创建一个软链指向d2j-dex2jar.sh

它的功能是将dex文件转为为jar文件
同样的,也可以将apktool反编译的smali文件转为jar文件
我们马上就会看到,它其实没什么大用

jd-gui

听名字就觉得很邪恶
任何必须要用鼠标操作的都不是什么好东西

用处是打开jar文件

jadx

dex2jarjd-gui的合体

下载:https://github.com/skylot/jadx

解压之后也是一个有很多文件的文件夹
可执行文件都放在bin里面

同样的,使用软链链接,以便到处使用

它的功能蛮强大的,可以使用其直接解析apk文件
用其直接解析,会解析很多第三方的库

可以使用unzip先进行解压,之后再使用jadx进行解析

--------------------------------------- 分界线 ---------------------------------

apk直接解压之后的文件有:

+----------------------------+
|             assets            |	需要打包的静态文件(任意深度)
+----------------------------+
|               lib                 |  使用C/C++编写生成的native库文件
+----------------------------+
|              res                |  存放资源文件
+----------------------------+
|         META-INF         |  存放签名信息
+----------------------------+
|  AndroidManifest.xml |  存放程序配置
+----------------------------+
|         classes.dex       |  可执行文件
+----------------------------+
|      resources.arsc      |  资源配置文件
+----------------------------+
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值