为漫画站增加双页阅读、翻译等优化体验的增强功能。百合会(记录阅读历史、自动签到等)、百合会新站、E-Hentai(关联外站、快捷收藏、标签染色、识别广告页等)、nhentai(彻底屏蔽漫画、无限滚动)、Yurifans(自动签到)、拷贝漫画(copymanga)(显示最后阅读记录、解锁隐藏漫画)、再漫画、漫画柜(manhuagui)、动漫屋(dm5)、mangabz、komiic、無限動漫、绅士漫画(wnacg)、禁漫天堂、NoyAcg、熱辣漫畫、hanime1、hitomi、hdoujin、SchaleNetwork、nude-moon、HentaiZap、IMHentai、HentaiEra、HentaiEnvy、MangaDex、welovemanga、kemono、nekohouse、Pixiv、明日方舟泰拉记事社、最前線、Tachidesk、LANraragi
新新漫画 https://www.77mh.nl/
以前折騰過
取得一話一集的圖片地址的代碼
無限動漫
//PC
let imgSrcTotal = window.ps; //圖片總數
let mainCode = [...document.scripts].find(s => s.textContent.includes("ge(e)")).textContent; //取得主要代碼
let [, keyCode] = mainCode.match(/ge\([^.]+\.src\s?=\s?([^;]+)/); //取得混淆過的關鍵代碼
let imgSrcArray = [];
for (let i = 1; i <= imgSrcTotal; i++) {
let replaceText = "(" + i + ")";
let code = keyCode.replace(/\(pp?\)/g, replaceText); //把關鍵代碼裡的(p)或(pp)替換成頁數(1)
let runCode = new Function("return " + code)(); //使用匿名函式運行改好的代碼返回圖片地址,用eval(code);也行。
let src = location.protocol + runCode; //補上協議湊成完整圖片地址
imgSrcArray.push(src);
}
console.log(imgSrcArray);
//Mobile
let imgSrcTotal = window.ps; //圖片總數
let imgSrcArray = [];
for (let i = 1; i <= imgSrcTotal; i++) {
let imgSrc = "https://img" + ss(c, 4, 2) + ".8comic.com/" + ss(c, 6, 1) + "/" + ti + "/" + ss(c, 0, 4) + "/" + nn([i]) + "_" + ss(c, mm([i]) + 10, 3, f) + ".jpg";
imgSrcArray.push(imgSrc);
}
console.log(imgSrcArray);
新新漫畫
msg.split("|").map(path => location.hostname.includes("m.77mh") ? ImgSvrList + path : img_qianz + path);
久等了,两个网站都更新支持了
@tony0809 非常感谢!直接复制完事省了我很多功夫
無限動漫網站改版了
if ("unescape" in window) {
const {
ps,
su,
ti,
nn,
mm
} = window;
const code = [...document.scripts].find(s => s.textContent.includes("ge(e)")).textContent;
const [, chapterId] = code.match(/img\s+s="(.{15})/);
const getSrc = (id, p) => {
let src = id + p;
const a = src.substring(15);
const b = eval(src.substring(0, 5));
const c = eval(src.substring(5, 10));
const d = eval(src.substring(10, 15));
src = '%68%74%74%70s%3A%2F%2F%69%6D%67' + su(b, 0, 1) + '%2e%38%63%6f%6d%69%63%2e%63%6f%6d%2f' + su(b, 1, 1) + '%2F' + ti + '%2F' + c + '%2F' + nn(a) + '%5F' + su(d, mm(a), 3) + '%2E%6A%70%67';
src = unescape(src);
return src;
};
const srcs = new Array(ps).fill().map((_, i) => getSrc(chapterId, i + 1));
console.log(srcs);
}
@tony0809 非常感谢!脚本已更新
@tony0809 非常感谢!脚本已更新
好像又加了點髒東西
if ("ge" in window) {
const code = [...document.scripts].find(script => script.textContent.includes("ge(e)")).textContent;
const [, obfuscated_chapter_code] = code.match(/img\s+s="([^"]+)/);
const chapter_code = obfuscated_chapter_code.replace(/'|\+\w\+/g, "");
const getSrc = (a) => {
const b = window[chapter_code.substring(0, 5)];
const c = window[chapter_code.substring(5, 10)];
const d = window[chapter_code.substring(10, 15)];
const src = "https://img" + su(b, 0, 1) + ".8comic.com/" + su(b, 1, 1) + "/" + ti + "/" + c + "/" + nn(a) + "_" + su(d, mm(a), 3) + ".jpg";
return src;
};
const srcs = Array.from({
length: ps
}, (v, i) => getSrc(i + 1));
console.log(srcs);
}
@tony0809 非常感谢!脚本已更新
無限動漫的前端開發是有在看這邊嗎?
一直改前端代碼這次混淆到不能從script著手
加強了代碼混淆但環境變量依然有解密後的html
反而降低了拿圖片網址的難度
if ("xx" in window) {
const html = decodeURIComponent(window.xx);
const srcs = html.match(/\/\/[^"]+/g).map(e => location.protocol + e);
console.log(srcs);
}
@tony0809 😂可能最近刚好在刷kpi吧(
換來換去的很好玩嗎...
換湯不換藥,要嘛解密code,要嘛直接能提取網址,揉合一下能用到出現第三種加密。
if ("xx" in window) {
const {
su,
ti,
nn,
mm,
xx
} = window;
const getSrc = (code) => {
const a = code.substring(15);
const b = window[code.substring(0, 5)];
const c = window[code.substring(5, 10)];
const d = window[code.substring(10, 15)];
const src = "https://img" + su(b, 0, 1) + ".8comic.com/" + su(b, 1, 1) + "/" + ti + "/" + c + "/" + nn(a) + "_" + su(d, mm(a), 3) + ".jpg";
return src;
};
const html = decodeURIComponent(xx);
const codes = html.matchAll(/ s="([^"]+)"/g);
const srcs = [...codes].map(([, code]) => {
if (code.startsWith("//")) {
return window.location.protocol + code;
} else if (code.replace(/\d+$/, "").length === 15) {
return getSrc(code);
} else {
return null;
}
});
console.log(srcs);
}
请求支持新网站
无限动漫(漫画站) https://www.comicabc.com/
p.s.作者大大的插件很好用,大赞