Prank

Makes pages difficult to read.

질문, 리뷰하거나, 이 스크립트를 신고하세요.
// ==UserScript==
// @name         Prank
// @namespace    https://greasyfork.org/en/users/85040-dan-wl-danwl
// @version      1.0.0.1
// @description  Makes pages difficult to read.
// @author       https://greasyfork.org/en/users/85040-dan-wl-danwl
// @include      *
// @grant        none
// @require      https://greasyfork.org/scripts/35370-add-css/code/Add_CSS.js?version=232364
// @run-at       document-end
// ==/UserScript==
const dictionary =
{
	_: JSON.parse("[[\"NUL\",\"00\",\"00000000\",\"0\"],[\"SOH\",\"01\",\"00000001\",\"1\"],[\"STX\",\"02\",\"00000010\",\"2\"],[\"ETX\",\"03\",\"00000011\",\"3\"],[\"EOT\",\"04\",\"00000100\",\"4\"],[\"ENQ\",\"05\",\"00000101\",\"5\"],[\"ACK\",\"06\",\"00000110\",\"6\"],[\"BEL\",\"07\",\"00000111\",\"7\"],[\"BS\",\"08\",\"00001000\",\"8\"],[\"HT\",\"09\",\"00001001\",\"9\"],[\"LF\",\"0A\",\"00001010\",\"10\"],[\"VT\",\"0B\",\"00001011\",\"11\"],[\"FF\",\"0C\",\"00001100\",\"12\"],[\"CR\",\"0D\",\"00001101\",\"13\"],[\"SO\",\"0E\",\"00001110\",\"14\"],[\"SI\",\"0F\",\"00001111\",\"15\"],[\"DLE\",\"10\",\"00010000\",\"16\"],[\"DC1\",\"11\",\"00010001\",\"17\"],[\"DC2\",\"12\",\"00010010\",\"18\"],[\"DC3\",\"13\",\"00010011\",\"19\"],[\"DC4\",\"14\",\"00010100\",\"20\"],[\"NAK\",\"15\",\"00010101\",\"21\"],[\"SYN\",\"16\",\"00010110\",\"22\"],[\"ETB\",\"17\",\"00010111\",\"23\"],[\"CAN\",\"18\",\"00011000\",\"24\"],[\"EM\",\"19\",\"00011001\",\"25\"],[\"SUB\",\"1A\",\"00011010\",\"26\"],[\"ESC\",\"1B\",\"00011011\",\"27\"],[\"FS\",\"1C\",\"00011100\",\"28\"],[\"GS\",\"1D\",\"00011101\",\"29\"],[\"RS\",\"1E\",\"00011110\",\"30\"],[\"US\",\"1F\",\"00011111\",\"31\"],[\"Space\",\"20\",\"00100000\",\"32\"],[\"!\",\"21\",\"00100001\",\"33\"],[\"\\\"\",\"22\",\"00100010\",\"34\"],[\"#\",\"23\",\"00100011\",\"35\"],[\"$\",\"24\",\"00100100\",\"36\"],[\"%\",\"25\",\"00100101\",\"37\"],[\"&\",\"26\",\"00100110\",\"38\"],[\"'\",\"27\",\"00100111\",\"39\"],[\"(\",\"28\",\"00101000\",\"40\"],[\")\",\"29\",\"00101001\",\"41\"],[\"*\",\"2A\",\"00101010\",\"42\"],[\"+\",\"2B\",\"00101011\",\"43\"],[\",\",\"2C\",\"00101100\",\"44\"],[\"-\",\"2D\",\"00101101\",\"45\"],[\".\",\"2E\",\"00101110\",\"46\"],[\"/\",\"2F\",\"00101111\",\"47\"],[\"0\",\"30\",\"00110000\",\"48\"],[\"1\",\"31\",\"00110001\",\"49\"],[\"2\",\"32\",\"00110010\",\"50\"],[\"3\",\"33\",\"00110011\",\"51\"],[\"4\",\"34\",\"00110100\",\"52\"],[\"5\",\"35\",\"00110101\",\"53\"],[\"6\",\"36\",\"00110110\",\"54\"],[\"7\",\"37\",\"00110111\",\"55\"],[\"8\",\"38\",\"00111000\",\"56\"],[\"9\",\"39\",\"00111001\",\"57\"],[\":\",\"3A\",\"00111010\",\"58\"],[\";\",\"3B\",\"00111011\",\"59\"],[\"<\",\"3C\",\"00111100\",\"60\"],[\"=\",\"3D\",\"00111101\",\"61\"],[\">\",\"3E\",\"00111110\",\"62\"],[\"?\",\"3F\",\"00111111\",\"63\"],[\"@\",\"40\",\"01000000\",\"64\"],[\"A\",\"41\",\"01000001\",\"65\"],[\"B\",\"42\",\"01000010\",\"66\"],[\"C\",\"43\",\"01000011\",\"67\"],[\"D\",\"44\",\"01000100\",\"68\"],[\"E\",\"45\",\"01000101\",\"69\"],[\"F\",\"46\",\"01000110\",\"70\"],[\"G\",\"47\",\"01000111\",\"71\"],[\"H\",\"48\",\"01001000\",\"72\"],[\"I\",\"49\",\"01001001\",\"73\"],[\"J\",\"4A\",\"01001010\",\"74\"],[\"K\",\"4B\",\"01001011\",\"75\"],[\"L\",\"4C\",\"01001100\",\"76\"],[\"M\",\"4D\",\"01001101\",\"77\"],[\"N\",\"4E\",\"01001110\",\"78\"],[\"O\",\"4F\",\"01001111\",\"79\"],[\"P\",\"50\",\"01010000\",\"80\"],[\"Q\",\"51\",\"01010001\",\"81\"],[\"R\",\"52\",\"01010010\",\"82\"],[\"S\",\"53\",\"01010011\",\"83\"],[\"T\",\"54\",\"01010100\",\"84\"],[\"U\",\"55\",\"01010101\",\"85\"],[\"V\",\"56\",\"01010110\",\"86\"],[\"W\",\"57\",\"01010111\",\"87\"],[\"X\",\"58\",\"01011000\",\"88\"],[\"Y\",\"59\",\"01011001\",\"89\"],[\"Z\",\"5A\",\"01011010\",\"90\"],[\"[\",\"5B\",\"01011011\",\"91\"],[\"\\\\\",\"5C\",\"01011100\",\"92\"],[\"]\",\"5D\",\"01011101\",\"93\"],[\"^\",\"5E\",\"01011110\",\"94\"],[\"_\",\"5F\",\"01011111\",\"95\"],[\"`\",\"60\",\"01100000\",\"96\"],[\"a\",\"61\",\"01100001\",\"97\"],[\"b\",\"62\",\"01100010\",\"98\"],[\"c\",\"63\",\"01100011\",\"99\"],[\"d\",\"64\",\"01100100\",\"100\"],[\"e\",\"65\",\"01100101\",\"101\"],[\"f\",\"66\",\"01100110\",\"102\"],[\"g\",\"67\",\"01100111\",\"103\"],[\"h\",\"68\",\"01101000\",\"104\"],[\"i\",\"69\",\"01101001\",\"105\"],[\"j\",\"6A\",\"01101010\",\"106\"],[\"k\",\"6B\",\"01101011\",\"107\"],[\"l\",\"6C\",\"01101100\",\"108\"],[\"m\",\"6D\",\"01101101\",\"109\"],[\"n\",\"6E\",\"01101110\",\"110\"],[\"o\",\"6F\",\"01101111\",\"111\"],[\"p\",\"70\",\"01110000\",\"112\"],[\"q\",\"71\",\"01110001\",\"113\"],[\"r\",\"72\",\"01110010\",\"114\"],[\"s\",\"73\",\"01110011\",\"115\"],[\"t\",\"74\",\"01110100\",\"116\"],[\"u\",\"75\",\"01110101\",\"117\"],[\"v\",\"76\",\"01110110\",\"118\"],[\"w\",\"77\",\"01110111\",\"119\"],[\"x\",\"78\",\"01111000\",\"120\"],[\"y\",\"79\",\"01111001\",\"121\"],[\"z\",\"7A\",\"01111010\",\"122\"],[\"{\",\"7B\",\"01111011\",\"123\"],[\"|\",\"7C\",\"01111100\",\"124\"],[\"}\",\"7D\",\"01111101\",\"125\"],[\"~\",\"7E\",\"01111110\",\"126\"],[\"DEL\",\"7F\",\"01111111\",\"127\"]]"),
	find: function(value, findType, retType)
	{
		if (!retType)
		{
			retType = 0;
		}

		var dictRows = this._;
		var currentRow;
		var currentTd;

		for (var dictRow = 0; dictRow < dictRows.length; dictRow++)
		{
			currentRow = dictRows[dictRow];
			currentTd = currentRow[findType];
			resultTxt = currentRow[retType];

			if (currentTd === value)
			{
				if (resultTxt === 'Space')
				{
					return ' ';
				}
				else
				{
					return resultTxt;
				}
			}
		}
	},
	convert: function(fullmsg)
	{
		if (!fullmsg)
		{
			return;
		}

		var hex = [];
		var bin = [];
		var dec = [];
		var Char;

		for (var i = 0; i < fullmsg.length; i++)
		{
			Char = fullmsg[i];

			hex.push(this.find(Char, 0, 1));
			bin.push(this.find(Char, 0, 2));
			dec.push(this.find(Char, 0, 3));
		}

		var ret = [fullmsg.split(' '), hex, bin, dec];

		return ret;
	}
};

function ret(arr)
{
	if (!Array.isArray(arr))
	{
		return;
	}

	var r = arr.join(' ');

	console.log(r);
	return r;
}

function encode(msg)
{
	//encodes text in hex, binary and decimal in that order for all text
	if (!msg)
	{
		return '';
	}

	var hexabinical = [];
	var convertedMsg = dictionary.convert(msg);
	var rowCounter = 1;
	var encodedMsg;

	for (var asciiSplitCounter = 0; asciiSplitCounter < msg.length; asciiSplitCounter++)
	{
		encodedMsg = convertedMsg[rowCounter][asciiSplitCounter];

		if (!encodedMsg)
		{
			encodedMsg = dictionary.find('Space', 0, rowCounter);
		}

		hexabinical.push(encodedMsg);
		rowCounter++;

		if (rowCounter === 4)
		{
			rowCounter = 1;
		}
	}

	var val = ret(hexabinical);

	return val;
}

function obscurify()
{
	document.title = encode(document.title);

	var allElements = document.body.querySelectorAll('*');//should get all elements in the document
	var currentElement;
	var currentElementTagName;
	var originalTitle;
	var ariaLabel;

	for (var i = 0; i < allElements.length; i++)
	{
		currentElement = allElements[i];
		currentElementTagName = currentElement.tagName;

		if (currentElement.children.length === 0 && currentElementTagName !== 'STYLE' && currentElementTagName !== 'SCRIPT')
		{
			if (currentElementTagName === 'BUTTON' || currentElementTagName === 'TEXTAREA' || currentElementTagName === 'INPUT')
			{
				//if node is a type of input, replace the value and placeholder
				currentElement.value = encode(currentElement.value);
				currentElement.placeholder = encode(currentElement.placeholder);
			}
			else
			{
				currentElement.innerText = encode(currentElement.innerText);
			}
		}

        currentElement.title = encode(currentElement.title);
        originalTitle = currentElement.dataset.originalTitle;
        ariaLabel = currentElement.getAttribute('aria-label');

        if (originalTitle)
        {
            currentElement.dataset.originalTitle = encode(originalTitle);
        }
        if (ariaLabel)
        {
            currentElement.setAttribute('aria-label', encode(ariaLabel));//chnages don't seem to be binded for some reason
        }
	}
}

obscurify();