Нужна помощь в обращении с помощью метода smali, взятого из apk - PullRequest
0 голосов
/ 18 июня 2020

Кто-нибудь может помочь мне разобраться в этих строках кода, написанного с помощью Smali? Я бы хотел изучить его, но найти какой-либо надежный ресурс сложно. Спасибо, мне нужно понять, какое значение возвращает этот метод!

.method public final encryptionKey()Ljava/lang/String;
    .locals 8

    new-instance v0, Lo/mW;

    invoke-direct {v0, p0}, Lo/mW;-><init>(Ljava/lang/Object;)V

    const/16 v1, 0x1e

    new-array v1, v1, [I

    fill-array-data v1, :array_0

    const/4 v2, 0x1

    const/4 v3, 0x0

    :goto_0
    add-int/lit8 v4, v3, 0x1

    aget v3, v1, v3

    invoke-virtual {v0, v3}, Lo/mW;->ǃ(I)I

    move-result v3

    const/16 v5, 0x9

    const/16 v6, 0xd

    const/4 v7, 0x6

    packed-switch v3, :pswitch_data_0

    goto/16 :goto_2

    :pswitch_0
    const/16 v3, 0x17

    goto :goto_0

    :pswitch_1
    sget v3, Lo/mV;->Ɩ:I

    goto :goto_1

    :pswitch_2
    iput v2, v0, Lo/mW;->ι:I

    invoke-virtual {v0, v7}, Lo/mW;->ǃ(I)I

    invoke-virtual {v0, v6}, Lo/mW;->ǃ(I)I

    iget v3, v0, Lo/mW;->Ι:I

    sput v3, Lo/mV;->ɹ:I

    goto :goto_2

    :pswitch_3
    const/16 v3, 0x12

    invoke-virtual {v0, v3}, Lo/mW;->ǃ(I)I

    iget v3, v0, Lo/mW;->Ι:I

    if-nez v3, :cond_0

    const/16 v3, 0xa

    goto :goto_0

    :pswitch_4
    const/16 v3, 0x1d

    goto :goto_0

    :pswitch_5
    const/16 v3, 0x1a

    goto :goto_0

    :pswitch_6
    sget v3, Lo/mV;->ɹ:I

    :goto_1
    iput v3, v0, Lo/mW;->ι:I

    invoke-virtual {v0, v5}, Lo/mW;->ǃ(I)I

    goto :goto_2

    :pswitch_7
    iput v2, v0, Lo/mW;->ι:I

    invoke-virtual {v0, v7}, Lo/mW;->ǃ(I)I

    invoke-virtual {v0, v6}, Lo/mW;->ǃ(I)I

    iget v3, v0, Lo/mW;->Ι:I

    sput v3, Lo/mV;->Ɩ:I

    goto :goto_2

    :pswitch_8
    const/16 v3, 0xe

    invoke-virtual {v0, v3}, Lo/mW;->ǃ(I)I

    iget v3, v0, Lo/mW;->Ι:I

    if-nez v3, :cond_0

    const/16 v3, 0x13

    goto :goto_0

    :pswitch_9
    const/16 v3, 0x16

    goto :goto_0

    :pswitch_a
    const/16 v3, 0x14

    goto :goto_0

    :pswitch_b
    const/4 v1, 0x4

    invoke-virtual {v0, v1}, Lo/mW;->ǃ(I)I

    iget-object v0, v0, Lo/mW;->ɹ:Ljava/lang/Object;

    check-cast v0, Ljava/lang/String;


    return-object v0

    :pswitch_c
    const/4 v3, 0x1

    goto :goto_0

    :pswitch_d
    iput v2, v0, Lo/mW;->ι:I

    invoke-virtual {v0, v7}, Lo/mW;->ǃ(I)I

    const/4 v3, 0x7

    invoke-virtual {v0, v3}, Lo/mW;->ǃ(I)I

    iget-object v3, v0, Lo/mW;->ɹ:Ljava/lang/Object;

    check-cast v3, Lo/mV;

    iget-object v3, v3, Lo/mV;->і:Ljava/lang/String;

    iput-object v3, v0, Lo/mW;->Ɩ:Ljava/lang/Object;

    const/16 v3, 0x8

    invoke-virtual {v0, v3}, Lo/mW;->ǃ(I)I

    goto :goto_2

    :pswitch_e
    const/16 v3, 0xb

    goto/16 :goto_0

    :cond_0
    :goto_2
    move v3, v4

    goto/16 :goto_0

    nop

    :pswitch_data_0
    .packed-switch -0xf
        :pswitch_e
        :pswitch_d
        :pswitch_c
        :pswitch_b
        :pswitch_a
        :pswitch_9
        :pswitch_8
        :pswitch_7
        :pswitch_6
        :pswitch_5
        :pswitch_4
        :pswitch_3
        :pswitch_2
        :pswitch_1
        :pswitch_0
    .end packed-switch

    :array_0
    .array-data 4
        -0x1
        -0x2
        0x3f
        0x20
        0x1a
        0x11
        -0x3
        0x1d
        -0x4
        -0x5
        -0x6
        -0x7
        0x40
        0xb
        0xc
        -0x8
        0x1d
        -0x9
        -0xa
        -0xb
        0x3
        -0xc
        -0xb
        0x2e
        0x17
        -0xd
        0x5
        -0xe
        -0xf
        -0x6
    .end array-data
.end method
...