首页
论坛
课程
招聘
[求助]有什么工具可以找到android apk里面两个不同类方法的调用关系?
2021-5-26 10:17 1970

[求助]有什么工具可以找到android apk里面两个不同类方法的调用关系?

2021-5-26 10:17
1970

分析apk经常遇到一个问题,发现类A的方法A_a,以及类B的方法B_b,假定我已经知道A_a有一条路径一定调到B_b,但问题是吭哧吭哧逆向很难还原出这条路径。原因有几个:

  1. 异步操作:调用路径中如果出现异步操作,则很可能将被跟踪的对象弄丢,因为它会在另外一处代码进行操作。
  2. 路径太长:假定没有异步操作,单纯调用路径太长,也很难逐一排查每条路径,太费劲。
    请问有什么工具或者方法能帮助我解决这个问题,不胜感激!

2021 KCTF 秋季赛 防守篇-征题倒计时(11月14日截止)!

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 4560
活跃值: 活跃值 (2298)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
[軍] 活跃值 1 2021-5-26 11:28
2
0
可以试试ddms的方法跟踪功能并把捕捉的方法数设的大一点或者试一下动态调试能不能强制跟进去。当然,上述方法某些时候可能不会奏效。
除了上面所提的那两种情况外,某些动态加载的dex也会比较难跟踪。
雪    币: 611
活跃值: 活跃值 (575)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_foyotena 活跃值 2021-5-26 11:56
3
0
异步或协程很难
雪    币: 3
活跃值: 活跃值 (1407)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
不吃早饭 活跃值 2021-5-26 13:43
4
0
非异步的话可以hook一下被调用函数,然后输出一下调用堆栈
雪    币: 25
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
万里星河 活跃值 2021-5-26 13:51
5
0
异步可以试试hook Thread的start方法 打印堆栈看哪里开启的线程
雪    币: 256
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
军哥i 活跃值 2021-6-2 23:45
6
0
hook类B的方法B_b,然后打印出调用堆栈
游客
登录 | 注册 方可回帖
返回