.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