-
-
[原创]Android逆向-爆破B站App的点赞动画
-
发表于: 2022-10-20 14:21 1577
-
背景
阳光沙滩App开发点赞功能,有同学觉得点赞需要点效果,我第一印象就是b站的点赞挺好看的,那就拿过来!
个人博客地址 http://www.debuglive.cn/article/869313012241006592
需要的环境
- 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
把他拖进去看看。
收工了~~~,三点几了
总结
1:ddms的使用
2:录制trace文件并分析
3:jadx定位代码
4:你必须有一套逆向的工具
5:xposed辅助逆向工具
6:本文是逆向入门文章,大佬轻喷
7:如果你有更好的方法,记得来评论区告诉我