[Java] 纯文本查看 复制代码
.method public static a(Landroid/content/Context;Ljava/lang/String;)Z
.registers 10
const v7, 0xffff
const/4 v6, 0x4
const/4 v1, 0x1
const/4 v0, 0x0
if-nez p1, :cond_9
:cond_8
:goto_8
return v0
:cond_9
invoke-static {p0}, Lcn/autohack/hondahack/m;->h(Landroid/content/Context;)Z
move-result v2
if-eqz v2, :cond_8
invoke-static {p0}, Lcn/autohack/hondahack/m;->b(Landroid/content/Context;)Ljava/lang/String;
move-result-object v2
const-string v2, "9999999" #这里把文本型V2修改了为你所需要的机器码
invoke-static {v2}, Lnp/NPLogEncryptString;->NPPrintFuncSrc(Ljava/lang/String;)V #输出V2 就是输出虚拟的机器码
const-string v3, "-"
invoke-virtual {p1, v3}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_8
array-length v4, v3
const/4 v5, 0x2
if-ne v4, v5, :cond_8
aget-object v4, v3, v0
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
if-ne v4, v6, :cond_8
aget-object v4, v3, v1
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
if-ne v4, v6, :cond_8
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {}, Lcn/autohack/hondahack/m;->a()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->hashCode()I
move-result v2
mul-int v4, v2, v2
const/16 v5, 0x35
div-int/2addr v5, v2
add-int/2addr v4, v5
div-int/lit8 v2, v2, 0x4
mul-int/lit8 v2, v2, 0x71
add-int/2addr v2, v4
and-int v4, v2, v7
const/high16 v5, -0x10000
and-int/2addr v2, v5
ushr-int/lit8 v2, v2, 0x10
add-int/2addr v2, v4
and-int/2addr v2, v7
const-string v4, "%04X"
invoke-static {v4}, Lnp/NPLogEncryptString;->NPPrintFuncSrc(Ljava/lang/String;)V #输出"%04X"
new-array v5, v1, [Ljava/lang/Object;
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
aput-object v2, v5, v0
invoke-static {v4, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Lnp/NPLogEncryptString;->NPPrintFuncSrc(Ljava/lang/String;)V #前缀,这个就是你的机器码的注册码
aget-object v3, v3, v0
invoke-static {v3}, Lnp/NPLogEncryptString;->NPPrintFuncSrc(Ljava/lang/String;)V #后缀,没啥用
invoke-virtual {v2, v3}, Ljava/lang/String;->compareToIgnoreCase(Ljava/lang/String;)I
move-result v2
if-nez v2, :cond_8
move v0, v1
goto :goto_8
.end method