심야식당내 base64코드 자동복호화
// ==UserScript==
// @name arca live 심야식당 자동복호화
// @namespace http://tampermonkey.net/
// @version 0.226
// @description 심야식당내 base64코드 자동복호화
// @author SYJ
// @match https://arca.live/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=arca.live
// @grant none
// @license MIT
// ==/UserScript==
function doDecode() {
///'use strict';
const article = document.querySelector("body div.article-body > div.fr-view.article-content");
function dec(reg)
{
try
{
while (reg.test(article.innerHTML))
{
let decoded = reg.exec(article.innerHTML)[0];
while (decoded.match(/aHR0c[0-9A-Za-z]{8,}[=]{0,2}/) == null)
{
decoded = atob(decoded);
}
decoded = atob(decoded); console.log(decoded);
article.innerHTML = article.innerHTML.replace(reg, `<a href=${decoded} target='_blank' rel='noreferrer'>${decoded}</a>`);
}
}
catch(e)
{
console.log(e,article);
}
}
dec(/aHR0c[0-9A-Za-z]{20,}[=]{0,2}/); //aHR0c:1회인코딩된것.
dec(/YUhSMGN[0-9A-Za-z]{80,}[=]{0,2}/); //YUhSMGN:2회인코딩된것.
dec(/[0-9A-Za-z]{30,}[=]{1,2}/); //문자열 30회 + '=' 1~2회
dec(/[0-9A-Za-z]{200,}[=]{0,2}/); //문자열 200회 + '=' 0~2회
}
window.addEventListener('load',doDecode);