美文网首页
android反编译之路

android反编译之路

作者: 代码界的泥石流 | 来源:发表于2021-03-16 21:18 被阅读0次

    一、需要的工具

    1. apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。
    2. dex2jar:将反编译后的classes.dex文件转化为.jar文件。
    3. jd-gui:用于将.jar文件转换成java代码。

    二、反编译步骤

    第一步:使用apktool工具对APK进行反编译

    1. 下载apktool

    image

    2. 把下载好的apktool脚本和apktool.jar文件移动到 /usr/local/bin 文件夹下

    image image image

    3. 使用命令chmod +x 分别对apktool和apktool.jar文件进行提权

    //先进入到/usr/local/bin文件夹下
    
    cd /usr/local/bin
    
    
    chmod +x apktool
    
    
    chmod +x apktool.jar
    
    

    4. 测试是否成功,终端输入apktool,若成功,如下图

    image

    5. 运行apoktool脚本进行反编译

    ①. 把你需要反编译的apk文件也复制到 /usr/local/bin 文件夹下,确保apktoolapktool.jar以及apk文件都在/usr/local/bin目录下
    ②. 终端输入命令 apktool d xxx.apk回车,等待执行完毕

    //如果当前已在/usr/local/bin 目录下,忽略此步
    cd /usr/local/bin  
    
    //开始反编译目标APK文件
    apktool d xxx.apk
    
    
    image

    ③. 执行完毕后目录下会生成反编译apk的对应文件夹

    image

    但是我们在反编译apk后的文件夹里并没有看到classes.dex文件,这时候就需要在上述命令行添加-s,表示禁止将dex文件解码成smali

    apktool d -s xxx.apk
    
    
    image image

    第二步:使用dex2jar工具把classes.dex文件转化成.jar文件

    1. 下载dex2jar并解压
    2. 进入到你解压后的dex2jar文件夹下(根据你的实际情况文件夹位置不一样),如:

    cd Downloads/dex2jar-2.0
    
    

    3. 把classes.dex文件复制到解压后的dex2jar文件夹下,终端执行命令sh d2j-dex2jar.sh classes.dex

    sh d2j-dex2jar.sh classes.dex
    
    
    image

    3. 执行完毕后,会在文件夹下生成一个.jar文件,里面就是java源码

    image

    第三步:使用JD-GUI软件查看jar包下的java源码

    1.下载并安装jd-gui
    2. 打开安装好的JD-GUI,直接把第二步生成的.jar文件拖进去,就能看到反编译出来的java源码了

    image image

    作者:AIllll
    链接:https://www.jianshu.com/p/3a305f32c4a3
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:android反编译之路

          本文链接:https://www.haomeiwen.com/subject/wbljcltx.html