so反调用android api,完全爆破某碰视频App的后台API(脱壳、反编译dex,反汇编so文件)...

只分享技术,不分享成品!

只分享技术,不分享成品!

一、抓包分析

首先打开抓包工具、软件,抓取访问数据库的url。我这里是在真机中安装vmos虚拟机,然后用真机上的HttpCanary抓虚拟中某碰视频App的包。你可以用pc抓手机/虚拟机的包,都是一样的。

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.06.33.png (198.42 KB, 下载次数: 3)

2020-5-21 22:06 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.02.31.png (268.79 KB, 下载次数: 5)

2020-5-21 22:02 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.11.16.png (130.62 KB, 下载次数: 3)

2020-5-21 22:11 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.13.00.png (114.57 KB, 下载次数: 3)

2020-5-21 22:13 上传

1、请求某优的视频抓到的包

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.14.05.png (83.7 KB, 下载次数: 5)

2020-5-21 22:15 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.17.15.png (122.31 KB, 下载次数: 5)

2020-5-21 22:17 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.15.33.png (87.95 KB, 下载次数: 4)

2020-5-21 22:17 上传

用Postman工具测试一下抓到的url,是否能够正确访问。

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.26.03.png (109.26 KB, 下载次数: 4)

2020-5-21 22:26 上传

2、请求所有视频抓到的包

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.19.50.png (90.98 KB, 下载次数: 5)

2020-5-21 22:21 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.20.28.png (157.28 KB, 下载次数: 2)

2020-5-21 22:21 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.20.53.png (168.35 KB, 下载次数: 3)

2020-5-21 22:21 上传

用Postman工具测试一下抓到的url,是否能够正确访问。

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.28.50.png (123.42 KB, 下载次数: 2)

2020-5-21 22:28 上传

二、脱壳、反编译使用Xposed+反射大师脱某60的壳,我这里是在虚拟中配置的环境,如果是真机,还需要root。

1、打开反射大师

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.37.00.png (38.26 KB, 下载次数: 4)

2020-5-21 22:50 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.38.53.png (76.91 KB, 下载次数: 5)

2020-5-21 22:50 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.39.21.png (57.32 KB, 下载次数: 4)

2020-5-21 22:50 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.40.06.png (63.24 KB, 下载次数: 4)

2020-5-21 22:50 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.12.32.png (74.62 KB, 下载次数: 3)

2020-5-21 23:12 上传

2、用反射大师脱出dex文件

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.42.28.png (123.66 KB, 下载次数: 8)

2020-5-21 22:51 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.43.09.png (101.64 KB, 下载次数: 3)

2020-5-21 22:51 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.44.54.png (101.35 KB, 下载次数: 3)

2020-5-21 22:52 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.45.59.png (62.5 KB, 下载次数: 4)

2020-5-21 22:53 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.46.34.png (84.84 KB, 下载次数: 2)

2020-5-21 22:53 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.48.51.png (87.2 KB, 下载次数: 1)

2020-5-21 22:53 上传

3、反编译得到的dex文件

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2122.59.01.png (54.61 KB, 下载次数: 3)

2020-5-21 23:00 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2216.40.25.png (71.12 KB, 下载次数: 3)

2020-5-22 16:43 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.01.59.png (62.26 KB, 下载次数: 2)

2020-5-21 23:02 上传

三、请求参数逆向分析

1、分析请求某优的视频的url参数构造

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.23.01.png (45.6 KB, 下载次数: 5)

2020-5-21 23:25 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.22.39.png (173.99 KB, 下载次数: 2)

2020-5-21 23:25 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.23.56.png (137.84 KB, 下载次数: 5)

2020-5-21 23:26 上传分析请求头参数d的加密方式

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.28.59.png (156.19 KB, 下载次数: 5)

2020-5-21 23:30 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.29.41.png (169.5 KB, 下载次数: 5)

2020-5-21 23:30 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.32.18.png (149.67 KB, 下载次数: 2)

2020-5-21 23:35 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.35.39.png (154.18 KB, 下载次数: 4)

2020-5-21 23:36 上传

现在我们跳到AES.encryptToBase64声明处,看加密方式

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.38.03.png (126.68 KB, 下载次数: 5)

2020-5-21 23:41 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.39.06.png (112.26 KB, 下载次数: 2)

2020-5-21 23:41 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.39.51.png (65.43 KB, 下载次数: 3)

2020-5-21 23:41 上传

现在已经知道加密方式是AES/CBC/PKCS5Padding,但是我们还不知道加密秘钥、偏移量,回到此图

我们分别跳到EncryptUtils.getUmeng_kv()与EncryptUtils.getUmeng_iv()的声明,看看到底是什么字符串

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.45.58.png (55.22 KB, 下载次数: 3)

2020-5-21 23:45 上传

这里需要反汇编so文件,暂且不提,先告诉大家我反汇编得到的结果加密秘钥  xPxo2S5uGPhKHx5g加密偏移量   0a1b2c3d4e5f6789现在我们拿着这个秘钥、偏移量去解密某优的视频的请求头中的参数d

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.50.14.png (112.21 KB, 下载次数: 5)

2020-5-21 23:52 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.51.42.png (122.03 KB, 下载次数: 6)

2020-5-21 23:52 上传

[C] 纯文本查看 复制代码[/font][/align][align=left]

[font=-apple-system, BlinkMacSystemFont, "]解密结果[/font][/align][align=left]

[font=-apple-system, BlinkMacSystemFont, "]{"Connection":"close","app":"22","platform":"1","s":"ccb55292556c0f435c7aed54df225215","t":"78406572844305","token":"dmwyUFdwZzltVkk4dStaS1IyeTNZNGlleGp3aldHejZ5ei96V1pselRBRm9MVTNCYzQxSzNvWHc1ZUptZ3A0WWt3RzdzQ09nVlRUeUVQcDZQMUhjcWNuSWVxRXFiaWRkOWYyMGhkb085ZlUzbm9BUzljVkFEcWQxN0ZyM3hteEs=","version":"1.2.0","versionapi":"1.5.0"}秘钥、偏移量去解密某优的视频的请求响应

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.54.45.png (101.66 KB, 下载次数: 4)

2020-5-21 23:56 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2123.56.44.png (116.5 KB, 下载次数: 4)

2020-5-21 23:56 上传

现在我们已经知道了解密的套路,其实经过测试,请求头中的参数d是不需要修改的,只需要修改请求的url

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2200.00.18.png (138.06 KB, 下载次数: 3)

2020-5-22 00:00 上传总结一下:请求某优的作品列表url格式为http://www.xxxx.com/api/girls/videos/优id/页码 (比如某多野的id为1463,请求她的作品第三页链接为http://www.xxxx.com/api/girls/videos/1463/3),并且请求头中参数d不需要修改,一直使用第一次抓到的请求头即可。

2、请求所有视频参数分析

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2208.53.10.png (149.94 KB, 下载次数: 4)

2020-5-22 08:53 上传

我们把url中的参数d提出来,

[C] 纯文本查看 复制代码pSr5p6QhATCH%2F....5W0VrA%3D%3D

看到%3D这种字符,盲猜是进行了url编码,先对其进行url解码得到

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2208.57.19.png (90.39 KB, 下载次数: 5)

2020-5-22 09:00 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2209.00.06.png (83.76 KB, 下载次数: 4)

2020-5-22 09:01 上传

[C] 纯文本查看 复制代码[/font][/align][align=left]

[font=-apple-system, BlinkMacSystemFont, "]解密得到的结果[/font][/align][align=left]

[font=-apple-system, BlinkMacSystemFont, "]{"method":"views","order":"desc","s":"f55f22f136448d847f0a0824cabbf8b4","step":"1","t":"92752815308885"}[/font][/align][align=left]

[font=-apple-system, BlinkMacSystemFont, "]method、order的作用是根据观看量降序排列[/font][/align][align=left]

[font=-apple-system, BlinkMacSystemFont, "]step的作用是请求列表的第几页[/font][/align][align=left]

[font=-apple-system, BlinkMacSystemFont, "]t表示的是时间戳[/font][/align][align=left]

[font=-apple-system, BlinkMacSystemFont, "]s表示的其他参数md5值[/font][/align][align=left]

[font=-apple-system, BlinkMacSystemFont, "]

现在我们只要改变step的值,再进行AES加密、url编码,就可以访问到所有视频url

但是,注意这里s参数,有点特殊,我们先看请求头中校验参数s的来源

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2209.13.30.png (164.56 KB, 下载次数: 5)

2020-5-22 09:13 上传那我们类推一下,在校验url中的参数s时,也引入了参数k,并且最后删除了参数k

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2209.24.51.png (200.56 KB, 下载次数: 5)

2020-5-22 09:25 上传

总结:修改http://www.xxx.com/api/query/getQuery?d=pSr5p6...%2FyWIAPT05W0VrA%3D%3D中的参数d即可得到所有视频的url,其中参数d的拼接过程在上面已经介绍过了。(注意在两种请求方式中,请求头都不需要修改,每次需要修改url即可)3、根据视频id请求视频m3u8链接

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2209.38.02.png (223.29 KB, 下载次数: 4)

2020-5-22 09:38 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2209.32.42.png (145.29 KB, 下载次数: 4)

2020-5-22 09:38 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2209.42.46.png (139.7 KB, 下载次数: 5)

2020-5-22 09:46 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2209.48.00.png (108.13 KB, 下载次数: 4)

2020-5-22 09:48 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2209.45.49.png (110.73 KB, 下载次数: 4)

2020-5-22 09:48 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot2020-05-2209.52.29.png (44.43 KB, 下载次数: 2)

2020-5-22 09:52 上传

总结:根据http://www.xxx.com/api/video/play/视频id请求视频的m3u8链接,请求头用前面的即可,无需修改

四、so文件反汇编

最后一步了,我们把刚刚遇到的两个加载so文件的类拎出来。

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.17.21.png (63.69 KB, 下载次数: 3)

2020-5-22 10:19 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.19.56.png (66.38 KB, 下载次数: 3)

2020-5-22 10:20 上传

用解压缩工具打开某碰视频的apk文件,拿到Java动态加载的两个so文件

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.23.04.png (293.99 KB, 下载次数: 2)

2020-5-22 10:23 上传

1、查看libbaseEncryptLib.so文件

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.25.34.png (50.85 KB, 下载次数: 3)

2020-5-22 10:39 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.26.51.png (118.03 KB, 下载次数: 5)

2020-5-22 10:39 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.27.22.png (89.41 KB, 下载次数: 6)

2020-5-22 10:39 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.29.53.png (293.87 KB, 下载次数: 4)

2020-5-22 10:39 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.31.21.png (361.07 KB, 下载次数: 3)

2020-5-22 10:39 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.32.31.png (220.63 KB, 下载次数: 3)

2020-5-22 10:39 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.33.38.png (220.2 KB, 下载次数: 4)

2020-5-22 10:39 上传

2、查看libencryptLib.so文件

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.35.14.png (246.6 KB, 下载次数: 3)

2020-5-22 10:42 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.36.10.png (324.44 KB, 下载次数: 5)

2020-5-22 10:42 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

iShot 2020-05-22 10.37.20.png (220.52 KB, 下载次数: 4)

2020-5-22 10:42 上传

总结:通过IDA直接查看getUmeng_iv()、getUmeng_kv()、getUmengMv()函数的结果,主要是由于三个函数都是简单的返回常量的函数,如果是加密算法等比较复杂函数的话可以用unidbg,直接调用so文件中的函数。thread-1184085-1-1.html

最后一次总结:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值