繁体   English   中英

如何将 Java 代码转换为 smali - dalvik 字节码

[英]How to convert Java code to smali - dalvik bytcode

我有 java 代码(android studio),如何将其转换为 .smali?

例子:java

public void onStart() {
        super.onStart();
        a(this.a.a());
    }

.smali(达尔维克代码)

.method public onStart()V
    .locals 1

    .line 80
    invoke-super {p0}, Landroid/support/v7/app/e;->onStart()V

    .line 82
    iget-object v0, p0, Llkstudio/uchannel/ManHinhDangNhapActivity;->a:Lcom/google/firebase/auth/FirebaseAuth;

    invoke-virtual {v0}, Lcom/google/firebase/auth/FirebaseAuth;->a()Lcom/google/firebase/auth/FirebaseUser;

    move-result-object v0

    .line 83
    invoke-direct {p0, v0}, Llkstudio/uchannel/ManHinhDangNhapActivity;->a(Lcom/google/firebase/auth/FirebaseUser;)V

    return-void
.end method

一种选择是ApkTool反编译 APK,即提取 smali 文件。

例子:

java -jar apktool.jar d -f MyApp.apk -o MyApp_Decompiled/

ls -lha MyApp_Decompiled/

-rw-r--r-- 1 狼用户 12K Mar 26 21:16 AndroidManifest.xml

drwxr-xr-x 143 狼用户 4.0K Mar 26 21:16 res

drwxr-xr-x 13 wolf users 4.0K Mar 26 21:16 smali

drwxr-xr-x 8 狼用户 4.0K Mar 26 21:16 smali_classes2

drwxr-xr-x 4 狼用户 4.0K Mar 26 21:16 smali_classes3

ls -lha MyApp_Decompiled/smali/com/airbnb/android/react/maps/

-rw-r--r-- 1 狼用户 4.8K Mar 26 21:16 AirMapCalloutManager.smali

-rw-r--r-- 1 狼用户 956 Mar 26 21:16 AirMapCallout.smali

-rw-r--r-- 1 狼用户 6.5K Mar 26 21:16 AirMapCircleManager.smali


如果你只想转换一个文件,我推荐使用这个 Jar 工具。

技术开发人员 / Java2Smali

java -jar Java2Smali.jar <JavaSourceFile>


如果您想查看更多选项,请尝试:

Git Hub Java2Smali 搜索。

扩展搜索 Java 和 Smali。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM