初识 android 反/回编译

[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 简单反编译分析

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容