某鹅通js逆向

群里一直有小伙伴,不知道咋下载某鹅通的视频,这里说一下我的逆向过程(开始那个某利威的确实不怎么详细,逻辑也很胡乱,主要是我不知道有挺多小伙伴需要这个,我当时就随便写写,记录一下,也没想有多少人看)

1.首先找m3u8链接

这里我们直接抓包,可以看到,这个m3u8链接

这个抓包过程就不赘述了,我们看一下这个m3u8的返回。

可以看到,这个返回的是一串字符,看来是加密的。

2.寻找解密代码

这个m3u8文本是加密的,但是他肯定要解密后才能进行解析,所以,我们要找到他的解密代码。这里对这个m3u8解密视频的key下一个断点。

就是这个链接。

查看一下他的发起程序。

可以看到一个loadkey,既然已经loadkey了,那肯定在这个之前就已经解密完成了,我们再往下移一下看看。

可以看到这个loadsuccess,这个很可疑。点进入看一下。

可以看到这样的代码,很熟悉,应该是对m3u8文件进行解析。看来解密不远了。先打结果断点。断住看看。

断住过后,找到这个解密函数,是这个D.decrypt,输出一下这个t.data。可以看到。

就是没解密的数据,而 D.decrypt(t.data)就是解密后的数据。

3.进入D.decryp函数

进入到decrypt函数,可以看到这些东西,乍一看,人都麻了,这一定是混淆了吧?头都大了,殊不知,这都是障眼法。他是直接运行了这样一行代码。

return t[y[1] + m[54] + y[9] + y[32] + y[26] + m[50] + y[10]](y[24] + v[50] + v[2]) > -1 ? (t = (t = (t = (t = (t = t[y[27] + m[34] + v[29] + y[58] + m[58] + y[30] + y[32]](m[27] + m[42] + v[2], ""))[y[27] + y[32] + m[17] + y[58] + m[58] + y[30] + m[34]](/@/g, y[35]))[m[60] + y[32] + y[19] + m[55] + y[12] + y[30] + y[32]](/#/g, m[44]))[m[60] + m[34] + v[29] + m[55] + v[2] + y[30] + v[8]](/\$/g, y[48]))[v[58] + v[8] + y[19] + v[53] + m[58] + y[30] + v[8]](/%/g, v[11]),I(O(t))) : t

return了一个值,判断ty[1] + m[54] + y[9] + y[32] + y[26] + m[50] + y[10]是否大于-1,如果不大于,就直接返回t,大于则执行,

(t = (t = (t = (t = (t = ty[27] + m[34] + v[29] + y[58] + m[58] + y[30] + y[32])y[27] + y[32] + m[17] + y[58] + m[58] + y[30] + m[34])m[60] + y[32] + y[19] + m[55] + y[12] + y[30] + y[32])m[60] + m[34] + v[29] + m[55] + v[2] + y[30] + v[8])v[58] + v[8] + y[19] + v[53] + m[58] + y[30] + v[8], I(O(t)))这一行代码。

在控制台输出一下,可以看到y,m,v都是定值,他是从里面选字母,组成单词,对t进行解密。

解密后的代码是这样的。

(t = (t = (t = (t = (t = t.replace("_ba", "")).replace(/@/g, 1)).replace(/#/g, 2)).replace(/\$/g, 3)).replace(/%/g, 4))
const buff = Buffer.from(t, 'base64');
const str = buff.toString('utf-8');

先移除一些关键词,在对结果对base64解码。就可以得到解密后的m3u8文本了。

4.请求m3u8文本

这里有一点要注意,请求链接的时候要带上refererorigin,某鹅通对这个有检测。这里你就可以请求视频下载了。

这个总体还是很简单的。可以作为练手。

有啥问题加群:342096685

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
某flutter-app逆向分析是指对于一个使用flutter框架开发的应用进行逆向工程分析。逆向工程是通过分析应用的代码、二进制文件等来了解其内部实现细节。 首先,我们需要获取该应用的安装包文件(APK或IPA文件),然后进行解包操作,将其转换为可读取的文件目录结构。 接下来,我们可以使用一些工具来提取应用的资源文件、代码文件等。对于flutter-app来说,可以提取出dart文件,这是flutter的主要代码文件,其中包含了应用的逻辑实现。 通过阅读dart文件,我们可以了解应用的代码结构、数据模型、界面设计等。可以分析应用的逻辑实现方法,包括各种函数、类、方法的调用关系。 同时,还可以通过分析相关配置文件、资源文件等来了解应用的各种设置、资源加载方式等。 在逆向过程中,还可以使用一些调试工具来进一步了解应用的运行机制。例如,hook工具可以拦截应用的函数调用,并捕获输入输出数据,用于进一步分析。 逆向分析的目的可以有很多,比如了解应用的工作原理、发现潜在的漏洞或安全问题、提供参考用于自己的开发等。 需要注意的是,逆向分析需要遵守法律规定。未经授权的逆向分析可能侵犯他人的知识产权,涉及到隐私等方面的问题。因此,在进行逆向分析之前,应该了解并遵守当地相关法律法规,避免产生法律纠纷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值