吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1022|回复: 22
收起左侧

[已解决] 【Python】爬取m3u8视频,有AES-128加密和IV偏移,自己研究三天三夜,来论坛求助大...

[复制链接]
大兵马元帅 发表于 2023-11-18 11:08
200吾爱币
本帖最后由 大兵马元帅 于 2023-11-18 13:58 编辑

先试下载001.ts,下载后一直是无法打开,求助各位大佬
谢谢私信
链接请先base64解密:aHR0cHM6Ly93d3cuOTJneXcuY29t
image.png

[Python] 纯文本查看 复制代码
from Cryptodome.Cipher import AES
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import requests
key_url = "https://www.*****.com/video/d7d2d2590b54a7c57cd62eecaa919498c14f156683503e8b682791f139995d20.key"
key_response = requests.get(key_url)
key_bytes = key_response.content
print(key_bytes)
# IV = '0xAC516370842EFE6802965DCE1C918CC6'(开发者工具获取到IV值)
# //取前16位
iv_bytes = b"AC516370842EFE68"
print(iv_bytes)
video_url_1 = "https://f.*****.com/video/00/00/0b/9c/001.ts"
video_response_1 = requests.get(video_url_1)
video_data_1 = video_response_1.content

# 创建 Cipher 对象时包括 IV
ci = AES.new(key_bytes, AES.MODE_CBC, iv_bytes)
decrypted_data_1 = ci.decrypt(video_data_1)

# 保存解密后的视频数据到本地文件
with open("output_001.mp4", "wb") as file_1:
    file_1.write(decrypted_data_1)

最佳答案

查看完整内容

key在本地经过二次处理 [mw_shl_code=python,true]from Cryptodome.Cipher import AES from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.backends import default_backend import requests import struct def decrypt_key(response_data, revise_value, little_endian=False): new_data = b'' for i in range(4): fmt = 'I' da ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Arcticlyc 发表于 2023-11-18 11:08
key在本地经过二次处理

[Python] 纯文本查看 复制代码
from Cryptodome.Cipher import AES
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import requests


import struct

def decrypt_key(response_data, revise_value, little_endian=False):
    new_data = b''
    for i in range(4):
        fmt = '<I' if little_endian else '>I'
        data = struct.unpack(fmt, response_data[i*4: i*4+4])[0] ^ revise_value[i]
        new_data += struct.pack(fmt, data)
    return new_data


# revise从course/getLessonVideo中获取
revise = [
    3854078970,
    2917115795,
    3887476043,
    3350876132
]


key_url = "https://www.*****.com/video/d7d2d2590b54a7c57cd62eecaa919498c14f156683503e8b682791f139995d20.key"
key_response = requests.get(key_url)
key_bytes = key_response.content

key_bytes = decrypt_key(key_bytes, revise)

print(key_bytes)
# IV = '0xAC516370842EFE6802965DCE1C918CC6'(开发者工具获取到IV值)
# //取前16位
iv_bytes = b"AC516370842EFE68"
print(iv_bytes)
video_url_1 = "https://f.*****.com/video/00/00/0b/9c/001.ts"
video_response_1 = requests.get(video_url_1)
video_data_1 = video_response_1.content
 
# 创建 Cipher 对象时包括 IV
ci = AES.new(key_bytes, AES.MODE_CBC, iv_bytes)
decrypted_data_1 = ci.decrypt(video_data_1)
 
# 保存解密后的视频数据到本地文件
with open("output_001.mp4", "wb") as file_1:
    file_1.write(decrypted_data_1)
sai609 发表于 2023-11-18 11:54
 楼主| 大兵马元帅 发表于 2023-11-18 11:59
sai609 发表于 2023-11-18 11:54
得合并碎片啊,

按道理来说,不合并也可以打开一小段,现在是一小段都不打开,应该是还没有解密成功
pwp 发表于 2023-11-18 12:17
既然求助就拿出诚意来,网址别打码呀
平淡最真 发表于 2023-11-18 12:27
直接用逍遥大仙的下载器试一下如果失败,说明你的key是错的,二次加密了
天天涨停天天盈 发表于 2023-11-18 12:28
蹲一个后续,这个怎么使用呢
8970665 发表于 2023-11-18 12:28
有道 理,有道理
 楼主| 大兵马元帅 发表于 2023-11-18 12:29
pwp 发表于 2023-11-18 12:17
既然求助就拿出诚意来,网址别打码呀

https://www.92gyw.com,我担心论坛不让发链接,所以开始没敢放
 楼主| 大兵马元帅 发表于 2023-11-18 12:41
平淡最真 发表于 2023-11-18 12:27
直接用逍遥大仙的下载器试一下如果失败,说明你的key是错的,二次加密了

提示:m3u8文件无效
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 20:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表