最近下载了一个直播app,因为有会员时间限制,只能只用十分钟,但最近接触了一些逆向知识,抱着尝试的态度尝试首次成功,特发帖纪录。
先准备好apk,放到桌面
看看app有没有加固,如果加固了,逆向起来就有一定的难度,相反没有加固的程序,如同裸体在大街之上。
所以首先用AndroidKiller解析apk,很明显没有加固
接着再用工具加载apk
突破点:我们要突破的就是这个弹窗,所以我们就开始分析apk中有没有类似的字眼出现
很遗憾并没有
这个时候就要换个思路,因为app一般都是走http协议进行请求的,所以经过文件查 找到了一个HttpManage文件,在这个类里边发现了所有的http请求都打印了日志,(其实它打不打印都无所谓,没有打印方法我们也可以自己加,只不过是省了自己的一些事情了)
接着用模拟器运行程序 然后再用logcat工具连接模拟器进行日志查看,发现每次点击主播图片的时候都会打印一个数字503,接着用查找工具去查询503,于是就发现了
再通过logcat查看日志,发现当会员过期后这个请求就回返回如下数据
我们再注册个新账号发现返回的数据是这样的
到此为止思路就有了:就是无论是否会员到期,把返回的数据替换成功的数据就行了,如下图,发现503就把数据改成正常的数据
接下来就是比较麻烦的地方。上图是java代码,其实我们要修改的是smali文件如下图,smali相对来说是比较难以理解,不符合人类易于理解的方式(对于经常改的大神就像小学作文了。。)
作为初次接触smali的新手,我是先用java写好类似的代码,然后编译成smail代码,然后再黏贴到apk中的smail文件中,因为这样就只需要做到调正p1 p2这样的变量心中有数就行了
到此编译打包,一个新的apk诞生
测试图片的这个主播好吓人。。。
逆向之路到此就完成了,但是还有另外一些思路可以开发,可以看到上图在点开app的时候弹出一些文字,其实这些是直播的实际播放流,我把直播流地址复制到系统的剪贴板中,然后又开发了一个监测剪贴板的程序,当监测剪贴板中有直播流地址就提示是否下载。点击确定后再调用程序对直播流进行转存,直接保存到电脑中,于是乎
原版apk貌似失效了,并且貌似漏洞也已经补上了,大家就别求资源了,下载那些视频流开了N多线程貌似硬盘的访问速度都变差了,并且都是一些录制好的主播视频,实在没什么意思,发帖主要是交流纪录学习知识