Android逆向-爆破B站App的点赞动画

背景

阳光沙滩App开发点赞功能,有同学觉得点赞需要点效果,我第一印象就是b站的点赞挺好看的,那就拿过来!

需要的环境

  • Android手机root,xposed
  • b站App
  • ddms
  • 需要把ro.debuggable设置1,这样在ddms中可以看到全部进程
  • 分析trace文件
  • jadx分析apk代码
  • root explorer工具查看/data/下的安装数据
  • 突破ddms文件trace的8mb限制

获取点赞的时候的堆栈

我们打开ddms,选择b站app的进程。 我们先找到他的包名,包名就是进程名字。打开App,随便一个页面。然后执行我们的find

图片描述

包名:tv.danmaku.bili

打开ddms查看进程。

图片描述

开始打开的时候,可能什么都不显示,我们需要reset adb一次。

图片描述

点击之后就能看到全部进程了。

图片描述

找到了主进程就行,如果同名字后面有:xxx的是子进程,这个我们不需要关注,我们的ui在主进程中。

接下来,我们打开随便一个视频,点赞一下,发现了点赞的动画显示了。我们再点赞取消它。下面开始录制堆栈

选中进程,点击一下这个红色的录制按钮。弹出录制框。

图片描述

选择下面这个,然后点击ok

图片描述

点击ok之后,马上点赞一次触发动画。然后马上回来工具,点击停止录制

图片描述

一定要快,不然录制堆栈数据很多,分析起来麻烦。

ddms停止后,会显示这样的一份文件,开始分析里面的堆栈就行了。这个工具是记录运行中全部的运行记录,也就是不管他有没有加壳,什么混淆的,都记录在里面了,想跑都跑不掉,除了native的方法。

图片描述

分析trace

我们通过搜索click,然后把全部堆栈一条一条看一次。

图片描述

看到我头晕了,翻到差不多结尾的时候突然发现了一些端倪,这个地方创建了一个popwindow,里面有SVGAImageView??pop设置宽度,后面还有一些File的操作?

应该就是你了,验证自己的猜想。

反编译apk找动画代码

二营长,把意大利炮(jadx)抬上来。

apk丢进去jadx中,根据上面的路径,找对应的class:tv.danmaku.bili.ui.vide.widget.k.a 看到这个路径,widget?这不是常用的组件才放这个里的?

找对这个类的代码,打开看看。

图片描述

代码不对,直接阅读下就好了,找对重要的地方,再验证就行了。

图片描述

好家伙,看文件命名就知道跑不掉了,这里有2个版本的点赞svga文件,也就是我们找到文件就行了。

把apk改.zip解压,在搜索中过滤.svga,看看结果。

图片描述

在apk中一个都没有?

可能是远程下载的文件。换个方式。我们去/sdcard/Andord/data/包名下搜索,结果也是没有的。

那就直接进入安装目录搜索吧。使用re文件管理器的搜索功能.svga

图片描述

里面好几十个文件,当就快绝望的时候,翻到尽头了,熟悉的文件名啊~~~

把他复制出来,验证下是不是点赞?

图片描述

打开svga的在线播放器:http://svga.io/svga-preview.html

把他拖进去看看。

图片描述

收工了~~~,三点几了

图片描述

评论
0/256
文章评论
回复:学习
一起学习
2021-07-26 12:19 . 回复
回复:学习
0.0
2021-07-26 12:19 . 回复
学习
2021-07-26 12:19 . 回复