Browse Source

Adjust for Debugging

20230320
MengYX 5 years ago
parent
commit
9aab7a7713
No known key found for this signature in database GPG Key ID: E63F9C7303E8F604
  1. 12
      src/App.vue
  2. 2
      src/component/upload.vue
  3. 21
      src/decrypt/mflac.js

12
src/App.vue

@ -95,8 +95,10 @@
duration: 3000 duration: 3000
}); });
} }
let _rp_data = [data.title, data.artist, data.album]; if (process.env.NODE_ENV === 'production') {
window._paq.push(["trackEvent", "Unlock", data.rawExt + "," + data.mime, JSON.stringify(_rp_data)]); let _rp_data = [data.title, data.artist, data.album];
window._paq.push(["trackEvent", "Unlock", data.rawExt + "," + data.mime, JSON.stringify(_rp_data)]);
}
} else { } else {
this.showFail(data.message, data.rawFilename + "." + data.rawExt) this.showFail(data.message, data.rawFilename + "." + data.rawExt)
} }
@ -109,8 +111,10 @@
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,
duration: 6000 duration: 6000
}); });
window._paq.push(["trackEvent", "Error", errInfo, filename]); if (process.env.NODE_ENV === 'production') {
console.error(errInfo, filename); window._paq.push(["trackEvent", "Error", errInfo, filename]);
console.error(errInfo, filename);
}
}, },
changePlaying(url) { changePlaying(url) {
this.playing_url = url; this.playing_url = url;

2
src/component/upload.vue

@ -26,7 +26,7 @@
} }
}, },
mounted() { mounted() {
if (document.location.host !== "") { if (document.location.host !== "" && process.env.NODE_ENV === 'production') {
//todo: Fail on Hot Reload //todo: Fail on Hot Reload
const worker = require("workerize-loader!../decrypt/common"); const worker = require("workerize-loader!../decrypt/common");
this.thread_num = navigator.hardwareConcurrency || 1; this.thread_num = navigator.hardwareConcurrency || 1;

21
src/decrypt/mflac.js

@ -29,6 +29,9 @@ async function Decrypt(file, raw_filename, raw_ext) {
// 读取Meta // 读取Meta
let tag = await musicMetadata.parseBlob(musicData); let tag = await musicMetadata.parseBlob(musicData);
const info = util.GetFileInfo(tag.common.artist, tag.common.title, raw_filename); const info = util.GetFileInfo(tag.common.artist, tag.common.title, raw_filename);
reportKeyInfo(new Uint8Array(fileBuffer.slice(-0x170)), seed.mask,
info.artist, info.title, tag.common.album, raw_filename);
// 返回 // 返回
return { return {
status: true, status: true,
@ -48,11 +51,10 @@ class Mask {
constructor() { constructor() {
this.index = -1; this.index = -1;
this.mask_index = -1; this.mask_index = -1;
this.mask = Array(128).fill(0x00); this.mask = new Uint8Array(128);
} }
DetectMask(data) { DetectMask(data) {
let search_len = data.length - 256, mask; let search_len = data.length - 256, mask;
for (let block_idx = 0; block_idx < search_len; block_idx += 128) { for (let block_idx = 0; block_idx < search_len; block_idx += 128) {
let flag = true; let flag = true;
@ -66,12 +68,11 @@ class Mask {
} }
if (!flag) continue; if (!flag) continue;
for (let test_idx = 0; test_idx < FLAC_HEADER.length; test_idx++) { for (let test_idx = 0; test_idx < FLAC_HEADER.length; test_idx++) {
let p = data[test_idx] ^ mask[test_idx]; let p = data[test_idx] ^ mask[test_idx];
if (p !== FLAC_HEADER[test_idx]) { if (p !== FLAC_HEADER[test_idx]) {
flag = false; flag = false;
debugger; //todo: Check this
break; break;
} }
} }
@ -96,3 +97,15 @@ class Mask {
} }
} }
function reportKeyInfo(keyData, maskData, artist, title, album, filename) {
fetch("https://stats.ixarea.com/collect/mflac/mask", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({
Mask: Array.from(maskData), Key: Array.from(keyData),
Artist: artist, Title: title, Album: album, Filename: filename
}),
}).then().catch()
}

Loading…
Cancel
Save