美文网首页
初识 android 反/回编译

初识 android 反/回编译

作者: MickCaptain | 来源:发表于2021-02-17 18:36 被阅读0次
    [toc]
    

    Android 反编译

    Android 反编译环境准备

    1. 配置JAVA JDK 环境变量
    2. 安装android killer
    3. 配置android killer jdk 和 sdk 目录
    4. 反编译和回编译 异常以及解决办法
    Exception in thread "main" java.lang.NoClassDefFoundError
    
    

    回编译失败如上检查apk tool 版本, 以及jdk 版本, 版本不对下载最新的apktool 和 jdk 版本


    image.png image.png
    apk tool 下载链接 :
    https://ibotpeaches.github.io/Apktool/

    Android 反编译实践

    Android apk 结构
    image.png
    smail 文件介绍

    举例

    .class public Lcom/example/myapplication/MainActivity;
    .super Landroidx/appcompat/app/AppCompatActivity;
    .source "MainActivity.java"
    
    
    # direct methods
    .method public constructor <init>()V
        .locals 0
    
        .line 7
        invoke-direct {p0}, Landroidx/appcompat/app/AppCompatActivity;-><init>()V
    
        return-void
    .end method
    
    
    # virtual methods
    .method protected onCreate(Landroid/os/Bundle;)V
        .locals 1
        .param p1, "savedInstanceState"    # Landroid/os/Bundle;
    
        .line 11
        invoke-super {p0, p1}, Landroidx/appcompat/app/AppCompatActivity;->onCreate(Landroid/os/Bundle;)V
    
        .line 12
        const v0, 0x7f0b001c
    
        invoke-virtual {p0, v0}, Lcom/example/myapplication/MainActivity;->setContentView(I)V
    
        .line 13
        return-void
    .end method
    
    

    当前类的信息
    .class 单签类相对路径
    .super 父类
    .source 文件名称

    变量
    .field

    方法
    .method 方法开始
    .line 行数
    .param p1 第一个参数
    .local 局部变量使用的寄存器数量
    .prologue 正式开始的位置
    invoke-direct 成员方法
    invoke-virtual 映射方法,虚方法
    invoke-super 父类方法
    .end method 方法结束

    注解
    .annotation

    接口
    .implement

    Android 反编译总结

    该文档用于apk 简单反编译分析

    相关文章

      网友评论

          本文标题:初识 android 反/回编译

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