发新帖

一个简单的签名验证绕过,求指点~~标题要长- -

[复制链接]
17761 3
5NB

这是一个签名验证的方法吗?改如何入手修改呢?

如果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

举报 使用道具

回复

精彩评论3

听鬼哥说故事    发表于 2015-4-17 10:47:14 | 显示全部楼层
看着这里不像是签名验证的地方,你再继续慢慢寻找。

举报 使用道具

回复
ceshi999    发表于 2015-4-17 16:20:14 | 显示全部楼层
签名验证不会以这种形式出现。

举报 使用道具

回复
水波摇曳    发表于 2015-4-20 09:23:12 | 显示全部楼层
最好上传个apk/..
这样看不出来啥

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表