https://github.com/CalebFenton/simplify/releases/download/v1.3.0/sdbg-0.1.0.jar
"C:\Program Files\Java\jre-1.8\bin\java.exe" -jar sdbg-0.1.0.jar smali "Lu/ad;->c()V"
其中smali为文件夹名称。
###### Class p124u.C12414ad (u.ad)
.class public Lu/ad;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field private static a:Z = true
.field private static b:J = 0x0L
.field private static c:Z = true
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static c()V
.registers 4
const/16 v2, 0xc
new-array v1, v2, [C
const/16 v3, -0x68d8
xor-int/lit16 v3, v3, -0x68b4
int-to-char v3, v3
const v2, 0x3
aput-char v3, v1, v2
const v2, 0x3
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0x1
int-to-char v3, v3
const v2, 0x4
aput-char v3, v1, v2
const v2, 0x4
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0xc
int-to-char v3, v3
const v2, 0x5
aput-char v3, v1, v2
const v2, 0x3
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0xb
int-to-char v3, v3
const v2, 0x0
aput-char v3, v1, v2
const v2, 0x3
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0xa
int-to-char v3, v3
const v2, 0x8
aput-char v3, v1, v2
const v2, 0x3
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0x6
int-to-char v3, v3
const v2, 0x2
aput-char v3, v1, v2
const v2, 0x2
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0xa
int-to-char v3, v3
const v2, 0x7
aput-char v3, v1, v2
const v2, 0x5
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0xb
int-to-char v3, v3
const v2, 0x6
aput-char v3, v1, v2
const v2, 0x3
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0xf
int-to-char v3, v3
const v2, 0x1
aput-char v3, v1, v2
const v2, 0x5
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0x0
int-to-char v3, v3
const v2, 0xb
aput-char v3, v1, v2
const v2, 0x4
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0xf
int-to-char v3, v3
const v2, 0xa
aput-char v3, v1, v2
const v2, 0x6
aget-char v3, v1, v2
xor-int/lit16 v3, v3, 0xe
int-to-char v3, v3
const v2, 0x9
aput-char v3, v1, v2
new-instance v3, Ljava/lang/String;
invoke-direct {v3, v1}, Ljava/lang/String;-><init>([C)V
invoke-virtual {v3}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
return-void
.end method
如上是某app的混淆例子,我的手机因为root了导致没法使用该app,只能自己想办法研究。
把文件命名为c.smali放在smali\u\ad目录下,逻辑是system.loadlibrary一个混淆的库。
使用continue和info命令可以得到最终运行结果解除混淆。
还挺好用。