在Java控制台应用程序中使用smali代码

时间:2018-08-06 16:58:15

标签: java android smali

首先,我使用apktoolfile.apk反编译为smali文件。接下来,我找到了有趣的方法并将其复制:

.method private compressAndFormat([B)J
    .locals 10
    .param p1, "userData"    # [B

    .prologue
    const/4 v9, 0x1

    // REST OF CODE
.end method

我想在我的应用程序中使用此方法,因此我使用名为private long compressAndFormat(byte[] userData)的方法创建了新项目,将该项目反编译为small并用与原始{ {1}}个文件,并编译为small

它奏效了!不幸的是,在我对应用程序进行的每次更改之后,我都不得不将其反编译为apk,替换为small方法的内容,然后将其编译为compressAndFormat

现在,我想使用apk方法创建Java控制台应用程序。有什么办法吗?我在想这样的事情:

  1. 将file.apk反编译为file.smali

  2. 将file.smali反编译为file.dex

  3. 将new_file.jar反编译为new_file.dex

  4. 从file.dex复制方法到new_file.dex

  5. 将new_file.dex编译为new_file.jar

您对此有何看法?

1 个答案:

答案 0 :(得分:0)

我了解您想将smali代码复制到Java 您是否尝试过https://github.com/pxb1988/dex2jar? 使用此工具,您可以将dex转换回Java(在大多数情况下)