这是一个签名验证的方法吗?改如何入手修改呢?
如果apk反编译出来后,有多个smali出现signature,该如何判断哪一个是验证签名的呢?
[Java] 纯文本查看 复制代码 .method private getField(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
.locals 5
.param p2, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/String;",
")",
"Ljava/lang/reflect/Field;"
}
.end annotation
.prologue
.line 17
.local p1, "cls":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
invoke-virtual {p1}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;
move-result-object v2
array-length v3, v2
const/4 v1, 0x0
:goto_0
if-lt v1, v3, :cond_1
.line 26
const/4 v0, 0x0
:cond_0
return-object v0
.line 17
:cond_1
aget-object v0, v2, v1
.line 19
.local v0, "field":Ljava/lang/reflect/Field;
invoke-virtual {v0}, Ljava/lang/reflect/Field;->isAccessible()Z
move-result v4
if-nez v4, :cond_2
.line 20
const/4 v4, 0x1
invoke-virtual {v0, v4}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 22
:cond_2
invoke-virtual {v0}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v4, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_0
.line 17
add-int/lit8 v1, v1, 0x1
goto :goto_0
.end method
|