You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell解密/解码JDownloader *.DLC容器文件内容?

用PowerShell处理JDownloader DLC文件

一、解密DLC容器文件

DLC文件本质是采用AES-256-CBC加密的XML内容,加密密钥为固定字符串jd://dlc/decode(需转成哈希后使用),文件前16字节为初始化向量(IV),剩余部分是加密数据。以下是具体实现代码:

# 替换为你的DLC文件路径
$dlcPath = "C:\files\example.dlc"
$dlcBytes = [System.IO.File]::ReadAllBytes($dlcPath)

# 分离IV(前16字节)与加密数据
$iv = $dlcBytes[0..15]
$encryptedData = $dlcBytes[16..($dlcBytes.Length - 1)]

# 生成AES密钥:固定字符串转UTF8后做SHA256哈希
$keyString = "jd://dlc/decode"
$keyBytes = [System.Text.Encoding]::UTF8.GetBytes($keyString)
$sha256 = [System.Security.Cryptography.SHA256]::Create()
$aesKey = $sha256.ComputeHash($keyBytes)

# 初始化AES解密器
$aes = [System.Security.Cryptography.Aes]::Create()
$aes.Mode = [System.Security.Cryptography.CipherMode]::CBC
$aes.Key = $aesKey
$aes.IV = $iv

# 执行解密并转成XML字符串
$decryptor = $aes.CreateDecryptor()
$decryptedBytes = $decryptor.TransformFinalBlock($encryptedData, 0, $encryptedData.Length)
$decryptedXml = [System.Text.Encoding]::UTF8.GetString($decryptedBytes)

运行后,$decryptedXml变量即为解密后的原始XML内容。

二、解码DLC主体内容

解密后的XML中,<content>标签内的内容是Base64编码格式,包含真实的下载链接、文件名等核心信息,解码代码如下:

方法1:用正则快速提取内容

$contentMatch = [regex]::Match($decryptedXml, '<content>(.*?)</content>', [System.Text.RegularExpressions.RegexOptions]::Singleline)
if ($contentMatch.Success) {
    $encodedContent = $contentMatch.Groups[1].Value
    # Base64解码
    $decodedBytes = [System.Convert]::FromBase64String($encodedContent)
    $decodedContent = [System.Text.Encoding]::UTF8.GetString($decodedBytes)
    Write-Host "解码后的主体内容:`n$decodedContent"
} else {
    Write-Host "未找到有效的<content>标签"
}

方法2:用XML解析器规范提取(推荐)

$xmlDoc = New-Object System.Xml.XmlDocument
$xmlDoc.LoadXml($decryptedXml)
$encodedContent = $xmlDoc.SelectSingleNode("//content").InnerText

$decodedBytes = [System.Convert]::FromBase64String($encodedContent)
$decodedContent = [System.Text.Encoding]::UTF8.GetString($decodedBytes)
Write-Host "解码后的主体内容:`n$decodedContent"

解码后的内容为XML格式,可从中提取<links>标签下的下载地址、<package>标签内的文件名等信息。

注意事项

  • 该方法仅适用于标准JDownloader生成的DLC文件,自定义加密的DLC可能不兼容
  • 若解密后出现乱码,可尝试将UTF8替换为Unicode重新转换字符串

内容的提问来源于stack exchange,提问作者Carsten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:50:20