跳至内容

Jixun's Blog 填坑还是开坑,这是个好问题。

Mastodon

利用 ES6 模板函数特性安全生成正则表达式

const escapeRegex = s => (s || '').replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
const r = (strs, ...exps) => new RegExp(strs.raw.map((x, i) => x + escapeRegex(exps[i])).join(''));

利用方法:

const js = `}(__0x12345, 0x123));`;
const varName = '__0x12345';
const rotate = js.match(r`${varName}\s*,\s*(\w+)`)[1]; // "0x123"
继续阅读 »

BookWalker TW - 抓取反混淆后的漫画页

抓取渲染的一整页,可利用浏览器作为爬虫下载。

预览

const c = document.createElement('canvas');
const backup = window.NFBR.a6G.a5x.prototype.b9b;

window.NFBR.a6G.a5x.prototype.b9b = function () {
  const [targetCanvas, page, image, drawRect, flag] = arguments;
  if (image) {
    // 如果 image === null ,那么这一页是空白页。
    c.width = image.width;
    c.height = image.height;
    backup.call(this, c, page, image, {x:0, y:0, width:image.width, height:image.height}, flag);
    // c 现在有整页图
    // 用 c.toDataURL() 等函数提取图像内容
  }
  return backup.apply(this, arguments);
}

Hook 的是渲染函数,所以可能会出现上下一页的预渲染内容;page 对象又包含被渲染图像的一些元信息,可以预览下截取的图像内容:

继续阅读 »