初步了解smali文件
2016-07-29 本文已影响151人
Andy周
准备工作
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