纯小白,记一次某日番动漫网视频地址解密全过程

查看 78|回复 10
作者:lenvy1   
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
目标网址:aHR0cHM6Ly9hbmltZS5naXJpZ2lyaWxvdmUuY29tL3BsYXlHVjI2NDY3LTEtMS8=
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PS:本人纯小白,对逆向JS等编程语言一窍不通,分析过程均借助AI辅助理解。开发者工具的使用、逆向思维的认知,均源于52pj论坛,多看多动手就有一定认知了。
1、随意打开动漫剧集一个章节视频,习惯性F12开发者工具,发现有反调试机制。
2、尝试Ctrl + U打开页面源代码,Ctrl + F查找
[color=] .m3u8

[color=] .mp4
,果然也没有找到视频地址。
3、遍历HTML源代码,发现以下这段js很可疑,根据经验应该就是经过混淆加密的视频地址代码段了:


Snipaste_2025-03-20_00-02-45.jpg (126.78 KB, 下载次数: 1)
下载附件
2025-3-20 00:03 上传

4、在开发者工具控制台输入这段代码中的变量名
[color=]player_aaaa
回车查询,将结果展开,果然验证上述JS代码段就是真实视频地址经过加密的代码片段:


Snipaste_2025-03-20_00-10-15.jpg (235.57 KB, 下载次数: 1)
下载附件
2025-3-20 00:11 上传

5、网站设置有反调试机制如何解码?没关系,发现它还是可以加载JS出来的(半反调试?),切换到网络选项卡,点JS标签,根据js文件名推测
[color=] player.js
里面有解密的方法函数。


Snipaste_2025-03-20_00-23-24.jpg (96.53 KB, 下载次数: 1)
下载附件
选择JS
2025-3-20 00:24 上传

6、双击打开
[color=] player.js
,发现里面有疑似自定义的64位加密解密混淆的方法(纯小白真的看不懂啊):


Snipaste_2025-03-20_00-27-18.jpg (113.85 KB, 下载次数: 1)
下载附件
2025-3-20 00:30 上传

7、看不懂没关系,发现里面的代码长度并不长,就试着全扔给AI助手,并提问AI:
[color=]”请解释这段代码的主要功能?"



Snipaste_2025-03-20_00-35-04.jpg (57.85 KB, 下载次数: 1)
下载附件
2025-3-20 00:38 上传



Snipaste_2025-03-20_00-54-06.jpg (24.01 KB, 下载次数: 1)
下载附件
2025-3-20 00:54 上传



Snipaste_2025-03-20_00-43-59.jpg (145.15 KB, 下载次数: 1)
下载附件
2025-3-20 00:45 上传

8、每一个字都看得明白,但结合起来就不太明白了。没关系,至少知道是解密函数,直接让AI助手重写一个方法(本人对Python略懂,就让AI写解密方法了),借助AI:
[color=]”已知加密字符串
"JTY4JTc0JTc0JTcwJTczJTNBJ……",基于上述方法,转写成Python的解密方法并测试打印结果“:


Snipaste_2025-03-20_00-58-16.jpg (67.08 KB, 下载次数: 1)
下载附件
2025-3-20 01:00 上传

9、测试结果:


Snipaste_2025-03-20_01-03-50.jpg (103.29 KB, 下载次数: 1)
下载附件
2025-3-20 01:04 上传

10、引用
[color=]from urllib.parse import unquote

[color=]unquote()
明文结果:


Snipaste_2025-03-20_01-07-39.jpg (104.83 KB, 下载次数: 1)
下载附件
2025-3-20 01:08 上传

相关解密代码:
[Python] 纯文本查看 复制代码import base64
def decode_custom_base64(encoded_str: str) -> str:
    # 补充可能的填充符处理
    missing_padding = 4 - (len(encoded_str) % 4)
    if missing_padding != 4:
        encoded_str += '=' * missing_padding
    return base64.b64decode(encoded_str).decode('utf-8')
# 测试用例
encrypted_str = "JTY4JTc0JTc0JTcwJTczJTNBJTJGJTJGJTZEJTMzJTc1JTM4JTJFJTY3JTY5JTcyJTY5JTY3JTY5JTcyJTY5JTZDJTZGJTc2JTY1JTJFJTYzJTZGJTZEJTJGJTdBJTY5JTZBJTY5JTYxJTZFJTJGJTZGJTZDJTY0JTYxJTZFJTY5JTZEJTY1JTJGJTMyJTMwJTMyJTM1JTJGJTMwJTM0JTJGJTVBJTYxJTc0JTczJTc1JTU0JTYxJTYyJTY5JTU0JTY4JTYxJTc0JTczJTRBJTZGJTc1JTcyJTZFJTY1JTc5JTJGJTMwJTMxJTUwJTcyJTY1JTYxJTY5JTcyJTJGJTcwJTZDJTYxJTc5JTZDJTY5JTczJTc0JTJFJTZEJTMzJTc1JTM4"  
result = decode_custom_base64(encrypted_str)
from urllib.parse import unquote
result = unquote(result)
print("解密结果:", result)
最后,复制解密的视频地址,测试,成功播放:


Snipaste_2025-03-20_01-13-15.jpg (144.1 KB, 下载次数: 1)
下载附件
2025-3-20 01:14 上传

下载次数, 下载附件

ligege888   

第一步应该是放到 CyberChef 碰碰运气:


a-2.gif (179.65 KB, 下载次数: 1)
下载附件
2025-3-20 04:37 上传

fanqie8   

复杂了,哥,你这我学不会,我会简单的,


1.jpg (55.89 KB, 下载次数: 1)
下载附件
2025-3-21 00:26 上传

1. 复制url地址.


2.jpg (54.29 KB, 下载次数: 1)
下载附件
2025-3-21 00:26 上传

2. 放入base64解码


3.jpg (40.18 KB, 下载次数: 1)
下载附件
2025-3-21 00:26 上传

3. 放入ESCAPE解密


4.jpg (32.26 KB, 下载次数: 1)
下载附件
2025-3-21 00:26 上传

4. 收工.
这是maccms的默认加密..根据这个,可以写批量获取工具.
不过,,还是感谢分享
xinghuichulin   

经验丰富就是好,有枣没枣先捅一杆子,
neto0   

谢谢大佬的分享,前段时间还在研究视频的提取,(因为我想提取的那个视频作者设置了权限,所以那些网上搜的解析站用不了),最后没研究出来,结果今天就看到这方面的帖子了,准备今天晚上试试,虽然我是纯小白w
yxf515321   

历害我的哥
mhdythaha   

万能的deepseek啊,感谢楼主分享
yancy76   

经验丰富就是好,有枣没枣先捅一杆子,
knight0531   

学到了学到了
cdyzb   

写的不错,过程也挺好的,适合新手练习。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部