qinlili23333 / HyReadDownloader

HyRead下载器
https://greasyfork.org/zh-CN/scripts/442845
Mozilla Public License 2.0
22 stars 2 forks source link

進階解密失敗 #3

Open HaaiSo opened 1 year ago

HaaiSo commented 1 year ago

https://ebook.hyread.com.tw/bookDetail.jsp?id=303070

有時候無法觸發進階解密...有時候可以觸發,但是出來圖片都是亂序的

qinlili23333 commented 1 year ago

正在核查

qinlili23333 commented 1 year ago

hyread又改了加密方式,目前暂时无法攻克

HaaiSo commented 1 year ago

现在似乎普通的epub也无法解密了

hyread又改了加密方式,目前暂时无法攻克

qinlili23333 commented 1 year ago

现在似乎普通的epub也无法解密了

hyread又改了加密方式,目前暂时无法攻克

新的密钥长度变成35位了,我还不确定加密方式,虽然大体逻辑应该还没变化

IvanaGyro commented 1 year ago

可以用下面這段把 34 或 35 位的密鑰還原成 32 位,但直接送入 AES-ECB 依然無法正確解密

key = Base64.atob(msg.token);
let offset;
if (key.length === 35) {
    offset = parseInt(key.substring(0, 2));
    key = key.substring(2, 34);
} else {
    offset = parseInt(key.substring(0, 1));
    key = key.substring(1, 33);
}

if (offset % 2 === 0) {
    key = key.substring(offset) + key.substring(0, offset).split('').reverse().join('')
} else {
    key = key.substring(offset).split('').reverse().join('') + key.substring(0, offset);
}
qinlili23333 commented 1 year ago

可以用下面這段把 34 或 35 位的密鑰還原成 32 位,但直接送入 AES-ECB 依然無法正確解密

key = Base64.atob(msg.token);
let offset;
if (key.length === 35) {
    offset = parseInt(key.substring(0, 2));
    key = key.substring(2, 34);
} else {
    offset = parseInt(key.substring(0, 1));
    key = key.substring(1, 33);
}

if (offset % 2 === 0) {
    key = key.substring(offset) + key.substring(0, offset).split('').reverse().join('')
} else {
    key = key.substring(offset).split('').reverse().join('') + key.substring(0, offset);
}

我觉得不是ecb了现在