吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5385|回复: 7
收起左侧

[Android 原创] 如何跟进特殊方法的调用

[复制链接]
落华无痕 发表于 2014-4-28 20:58
本帖最后由 淡然出尘 于 2015-2-3 19:22 编辑

因帖子去除安卓程序自动发短信权限 与天天跑你妹的另类破解有感,所以特意提出来讨论下。

原帖楼主在查找方法“a(ILjava/lang/String;)V”的调用时,直接搜索“a(ILjava/lang/String;)V”,找到了很多无用结果。

按常理查找方法的调用时,是搜索这样形式的关键字“Lpackage/name/ObjectName;->MethodName(III)Z”。

“Lpackage/name/ObjectName;”的具体代码,由当前smali文件的第一行代码给出“.class final Lpackage/name/ObjectName;”。“MethodName(III)Z”就是方法名。

照格式,查找上面提到的方法“a(ILjava/lang/String;)V”的调用时,应在原代码中搜索“Lcom/luyougame/pay/a/b;->a(ILjava/lang/String;)V”。

但是很快会发现,这样查找没有任何结果,是不是就说明这个方法没有被调用过呢?答案是否定的。如果细心点,可以发现当前类的前面部分有这样的代码。

[Java] 纯文本查看 复制代码
.class final Lcom/luyougame/pay/a/b;
.super Ljava/lang/Object;

# interfaces
.implements Lcom/uucun/pay/c;



这里要重点关注这个“.implement”,implements是一个类实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。
至于什么是抽象方法,自行脑补。

“.implements Lcom/uucun/pay/c;”,表明当前类实现了“Lcom/uucun/pay/c;”中定义的抽象方法。


我们查看“Lcom/uucun/pay/c;”的代码,如下:

[Java] 纯文本查看 复制代码
.class public interface abstract Lcom/uucun/pay/c;
.super Ljava/lang/Object;


# virtual methods
.method public abstract a()V
.end method

.method public abstract a(ILjava/lang/String;)V
.end method

.method public abstract b()V
.end method

.method public abstract b(ILjava/lang/String;)V
.end method


看到了“.method public abstract a(ILjava/lang/String;)V”,这里的“a(ILjava/lang/String;)V”是抽象方法。

到这里,大家应该有所悟了吧?为什么之前搜索“Lcom/luyougame/pay/a/b;->a(ILjava/lang/String;)V”找不到结果。

搜索下“.implements Lcom/uucun/pay/c;”,只找到了一个结果,也就是说“Lcom/uucun/pay/c;”的虚拟方法只有一个实现接口。

回到上面说的,查找方法“a(ILjava/lang/String;)V”的调用。我们应该修改下搜索关键字,改为查找“Lcom/uucun/pay/c;->a(ILjava/lang/String;)V”。

很快找到了5处调用。

上面说的是单一实现接口虚拟方法的调用。还有其他特殊方法的调用,有空待续。如onPostExecute(Ljava/lang/Object;)V、run()V、JNI方法。





免费评分

参与人数 2热心值 +2 收起 理由
御剑 + 1 学习了...
小试锋芒 + 1 基础知识很重要!无痕很细心!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hangaofeng 发表于 2014-5-1 00:05
ip怎么不粗线了
御剑 发表于 2014-5-3 17:11
gy3026 发表于 2014-5-4 18:34
前来膜拜,可以问一个关于签名验证的问题不?目前只知道一种获取签名进行本地对比的方法【就是搜索signature进行跟踪】,但是目前着手CRACK的软件分析不出来,求问其他思路...

点评

如果只是修改smali的话,那很简单。只是这是目前一些软件的最后的自我保护措施,所以不公开讨论  发表于 2014-5-4 20:23
gy3026 发表于 2014-5-4 20:32
嗯,还是谢谢楼主,也修改游戏好几年了,希望能与大大多交流交流~~
LzG 发表于 2014-8-26 01:53
基础知识很重要!
xiaobaiyey 发表于 2014-8-26 02:38
对 就是这样跟进的有时候向单个线程也会编译成单个smali文件,所以搜索的时候注意上下文,可以用JD-GUI查看方法名 然后查看
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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