美文网首页
初步了解smali文件

初步了解smali文件

作者: Andy周 | 来源:发表于2016-07-29 13:18 被阅读151次

    准备工作
    smali下载地址
    https://bitbucket.org/JesusFreke/smali/downloads
    环境变量的配置这里不解释

    编写Main.java文件

    public class Main {
        public static void main(String[] args){
            System.out.println("Hello World");
        }
    }
    

    接着编译Main.java为Main.class

    javac Main.java
    

    然后将Main.class转成Main.dex

    java -jar dx.jar --dex --output=Main.dex Main.class
    

    最后将Main.dex转成Main.smali文件

    java -jar baksmali-2.1.3.jar Main.dex
    

    最终文件生成

    在out文件夹里就有Main.smali文件

    #定义类名
    .class public LMain;
    #定义父类
    .super Ljava/lang/Object;
    .source "Main.java"
    
    
    # direct methods
    .method public constructor <init>()V
        .registers 1
    
        .prologue
        .line 2
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        return-void
    .end method
    
    #声明静态main()方法
    .method public static main([Ljava/lang/String;)V
        .registers 3
    
        .prologue
        .line 4
        sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
    
        const-string v1, "Hello World"
    
        invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
    
        .line 5
        return-void
    .end method
    

    相关文章

      网友评论

          本文标题:初步了解smali文件

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