Распаковать зашифрованные коды Javascript

Skip intro and go straight to my unpacker tool!

Вам встречался определенный фрагмент Javascript кода, который был сжат с целью минимизации или закодирован. Один из лучших онлайн инструментов для сжатия, минимизации и упаковки вашего кода - Инструмент упаковки JS кода Дина Эдвардса, который позволяет выбрать будет ли сжатый (не будет содержать пробелов и комментариев), минимизирован (будет иметь сокращенные имена переменных) и упакован (кодирует функцию так, чтобы запускать её через eval) например следующая функция:


// Create a get elements by class name function
document.getElementsByClassName = function(clsName){
	var retVal = new Array();
	var elements = document.getElementsByTagName("*");	
	for(var i = 0;i < elements.length;i++){
		if(elements[i].className.indexOf(" ") >= 0){
			var classes = elements[i].className.split(" ");
			for(var j = 0;j < classes.length;j++){
				if(classes[j] == clsName){retVal.push(elements[i]);}
			}
		}
		else if(elements[i].className == clsName){	
			retVal.push(elements[i]);
		}
	}	
	return retVal;
}

При запуске через Инструмент упаковки JS кода Дина Эдвардса со всеми включенными опциями, с целью удаления лишнего пространства и сократить переменные, выглядет следующим образом:


eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('4.8=9(a){1 b=e f();1 c=4.g("*");5(1 i=0;i<c.6;i++){2(c[i].3.h(" ")>=0){1 d=c[i].3.k(" ");5(1 j=0;j<d.6;j++){2(d[j]==a){b.7(c[i])}}}l 2(c[i].3==a){b.7(c[i])}}m b}',23,23,'|var|if|className|document|for|length|push|getElementsByClassName|function|||||new|Array|getElementsByTagName|indexOf|||split|else|return'.split('|'),0,{}))

Причины следующего действия будут следующие: уменьшение размера исходного Javascript кода, а так же для того, чтобы скрыть исходный код. Очевидно, что если вы потратили свое время и силы, то вы не хотите чтобы какие-нибудь Дик и Гарри использовали ваш код без оплаты за него или же нарушая ваши авторские права. Однако используя данный инструмент, вы не позволите изменить ваш DOM, CSS и Javascript код. Вы сделаете все возможное, чтобы сохранить ваш код от изменения.

Вы думаете, что это не произойдёт, но по количество пиратства связанного с пиратством музыкой, фильмами и софтом, это становится мэйнстримом.

Причины связанные с желанием распоковки исходного кода могут возникнуть тогда, когда вы не уверены, что скрипт не является вредоносным. Используя загрузку страницы без использования JavaScript и затем с помощью инструмента моего расшифровщика кода является хорошей идеей. Просто вставьте зашифрованный код в первое поле ввода, нажмите на кнопку и вы увидете исходный код.

Инструмент расшифровки

У меня есть пример функции упакованной при помощи инструмента Дина Эдвардса так, что вы сможете увидеть распакованный пример работы.

Вы должны также заметить, что некоторые глобальные переменные, такие как document или window не минимизируются и сохраняют преждний размер. Почитать об этом можно в создании вашего первого компрессора и несколько простых шагов уменьшения вашего файла.

 
 
 
 

Эта страница доступна на следующих языках.

EN As this script is not part of the blog if you would like to post comments please click this link and then respond to the following article.