Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Исследование работы Encrypt HTML Pro (https://forum.antichat.xyz/showthread.php?t=25495)

_kREveDKo_ 16.10.2006 22:57

Исследование работы Encrypt HTML Pro
 
[Intro]
Здрася всем. На днях вот от безделия и от отсутствия подключения к сети начал ковырять движки, но
ни одна известная опенсурсная гадина мне не поддавалась, поэтому плавно перешёл на поиск глюков
в осле, и наконец получив добротного пинка и тут, решил поковыряться в сплойтах под ИЕ. Достав
творение одного из наших мемберов (хвала ему и почесть), увидел что хотя сплойт вроде как приватный,
а палится антивирём. Вот тут-то и пришлось юзать хтмл-криптор, хотя никогда в них ранее нужды
не испытывал. Под руку попался Encrypt HTML Pro 2.6, который мне сразу напомнил о статье в хакере,
где подобную программулину ломали. "Ыхыхы! Ну-ка и я попробую!" - подумал я =). Понеслась.

[Наблюдаем]

Итак, я создал файлик с именем crypt.html и так как криптор шифрует то что находится
в теге <body>, то именно этот тег я напичкал его вот таким кодом:
Код:

<body>
Тыц-тыц-тыц
<script>alert("123456789")</script>
</body>

Далее запустил криптор вот с такими отпциями:
http://dux-214.jino-net.ru/option.jpg
http://dux-214.jino-net.ru/option2.jpg
, а всё остальное убрал.

Смело нажав на Protect, получаю сбэкапленный хтмл-файл и закриптованный
хтмл-файл. Запускаю второй и вижу вставленную какаху ввиде подобия баннера:
(This webpage was protected by Encrypt HTML Pro Unregistered Version), волшебные
слова Тыц-тыц-тыц, алерт и ещё какой-то сраный pop-up. Ну чтоже, приступаем к исследованию
изменённого кода.

[Round 1]
Содержимое закриптованного файла вышло такое:
Код:

<SCRIPT LANGUAGE="JavaScript">eval(unescape("%77%69%6e%64%6f%77%2e%6f%70%65%6e%28%22%68%74%74%70%3a%2f%2f%77%77%77%2e%68%74%6d%6c%70%61%73%73%77%6f%72%64%2e%63%6f%6d%2f%61%64%31%2e%68%74%6d%22%2c%20%22%45%6e%63%72%79%70%74%48%54%4d%4c%50%72%6f%22%2c%20%22%77%69%64%74%68%3d%35%30%30%2c%68%65%69%67%68%74%3d%34%30%30%22%29%3b%0d%0a"));eval(unescape("%66%75%6e%63%74%69%6f%6e%20%52%72%52%72%52%72%52%72%28%74%65%61%61%62%62%29%20%7b%76%61%72%20%74%74%74%6d%6d%6d%3d%22%22%3b%6c%3d%74%65%61%61%62%62%2e%6c%65%6e%67%74%68%3b%77%77%77%3d%68%68%68%68%66%66%66%66%3d%4d%61%74%68%2e%72%6f%75%6e%64%28%6c%2f%32%29%3b%69%66%28%6c%3c%32%2a%77%77%77%29%09%68%68%68%68%66%66%66%66%3d%68%68%68%68%66%66%66%66%2d%31%3b%66%6f%72%28%69%3d%30%3b%69%3c%68%68%68%68%66%66%66%66%3b%69%2b%2b%29%74%74%74%6d%6d%6d%20%3d%20%74%74%74%6d%6d%6d%20%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%69%29%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%69%2b%68%68%68%68%66%66%66%66%29%3b%69%66%28%6c%3c%32%2a%77%77%77%29%20%74%74%74%6d%6d%6d%20%3d%20%74%74%74%6d%6d%6d%20%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%6c%2d%31%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%74%74%74%6d%6d%6d%29%3b%7d%3b"));</script><body><SCRIPT LANGUAGE="JavaScript">RrRrRrRr("<CITLNUG=JvSrp\"wie(idwsdbr?reflevrw5=as;/CITSRP AGAE\"aacit>sd=wno.iea)tu:as;a 46fle<SRP>");</SCRIPT><table width="100%" border="0" height="50"><tr bgcolor="#336699" align="center"><td height="50"><a href="http://www.mtopsoft.com"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF" size="3">This webpage was protected by Encrypt HTML Pro</font></a><br><b><font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif">Unregistered Version</font></b></td></tr></table>
Тыц-тыц-тыц
<script language="JavaScript">RrRrRrRr("<citaet\"2468\"<srpsrp>lr(13579)/cit>");</script>
</body><!--Protected by Encrypt HTML Pro, MTop, Software Inc.-->

Далее я привожу его в божеский вид, хотя бы немного отформатировав:

Код:

<SCRIPT LANGUAGE="JavaScript">
eval(unescape("%77%69%6e%64%6f%77%2e%6f%70%65%6e%28%22%68%74%74%70%3a%2f%2f%77%77%77%2e%68%74%6d%6c%70%61%73%73%77%6f%72%64%2e%63%6f%6d%2f%61%64%31%2e%68%74%6d%22%2c%20%22%45%6e%63%72%79%70%74%48%54%4d%4c%50%72%6f%22%2c%20%22%77%69%64%74%68%3d%35%30%30%2c%68%65%69%67%68%74%3d%34%30%30%22%29%3b%0d%0a"));
eval(unescape("%66%75%6e%63%74%69%6f%6e%20%52%72%52%72%52%72%52%72%28%74%65%61%61%62%62%29%20%7b%76%61%72%20%74%74%74%6d%6d%6d%3d%22%22%3b%6c%3d%74%65%61%61%62%62%2e%6c%65%6e%67%74%68%3b%77%77%77%3d%68%68%68%68%66%66%66%66%3d%4d%61%74%68%2e%72%6f%75%6e%64%28%6c%2f%32%29%3b%69%66%28%6c%3c%32%2a%77%77%77%29%09%68%68%68%68%66%66%66%66%3d%68%68%68%68%66%66%66%66%2d%31%3b%66%6f%72%28%69%3d%30%3b%69%3c%68%68%68%68%66%66%66%66%3b%69%2b%2b%29%74%74%74%6d%6d%6d%20%3d%20%74%74%74%6d%6d%6d%20%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%69%29%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%69%2b%68%68%68%68%66%66%66%66%29%3b%69%66%28%6c%3c%32%2a%77%77%77%29%20%74%74%74%6d%6d%6d%20%3d%20%74%74%74%6d%6d%6d%20%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%6c%2d%31%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%74%74%74%6d%6d%6d%29%3b%7d%3b"));
</script>

<body>

<SCRIPT LANGUAGE="JavaScript">
RrRrRrRr("<CITLNUG=JvSrp\"wie(idwsdbr?reflevrw5=as;/CITSRP AGAE\"aacit>sd=wno.iea)tu:as;a 46fle<SRP>");
</SCRIPT>

<table width="100%" border="0" height="50">
<tr bgcolor="#336699" align="center">
<td height="50">
<a href="http://www.mtopsoft.com">
<font face="Arial, Helvetica, sans-serif" color="#FFFFFF" size="3">
This webpage was protected by Encrypt HTML Pro
</font></a><br><b>
<font color="#FFFFFF" size="-1" face="Arial, Helvetica, sans-serif">
Unregistered Version
</font></b></td></tr></table>

Тыц-тыц-тыц
<script language="JavaScript">RrRrRrRr("<citaet\"2468\"<srpsrp>lr(13579)/cit>");</script>
</body>

<!--Protected by Encrypt HTML Pro, MTop, Software Inc.-->

Такс, такс, такс, для начала вижу невооружённым взглядом, что вот она созданная таблица, напоминающая нам что
за продукт мы не заплатили. Фтопку его. Фтопку и рекламу снизу. Подрезав получаю вот это:
Код:

<SCRIPT LANGUAGE="JavaScript">
eval(unescape("%77%69%6e%64%6f%77%2e%6f%70%65%6e%28%22%68%74%74%70%3a%2f%2f%77%77%77%2e%68%74%6d%6c%70%61%73%73%77%6f%72%64%2e%63%6f%6d%2f%61%64%31%2e%68%74%6d%22%2c%20%22%45%6e%63%72%79%70%74%48%54%4d%4c%50%72%6f%22%2c%20%22%77%69%64%74%68%3d%35%30%30%2c%68%65%69%67%68%74%3d%34%30%30%22%29%3b%0d%0a"));
eval(unescape("%66%75%6e%63%74%69%6f%6e%20%52%72%52%72%52%72%52%72%28%74%65%61%61%62%62%29%20%7b%76%61%72%20%74%74%74%6d%6d%6d%3d%22%22%3b%6c%3d%74%65%61%61%62%62%2e%6c%65%6e%67%74%68%3b%77%77%77%3d%68%68%68%68%66%66%66%66%3d%4d%61%74%68%2e%72%6f%75%6e%64%28%6c%2f%32%29%3b%69%66%28%6c%3c%32%2a%77%77%77%29%09%68%68%68%68%66%66%66%66%3d%68%68%68%68%66%66%66%66%2d%31%3b%66%6f%72%28%69%3d%30%3b%69%3c%68%68%68%68%66%66%66%66%3b%69%2b%2b%29%74%74%74%6d%6d%6d%20%3d%20%74%74%74%6d%6d%6d%20%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%69%29%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%69%2b%68%68%68%68%66%66%66%66%29%3b%69%66%28%6c%3c%32%2a%77%77%77%29%20%74%74%74%6d%6d%6d%20%3d%20%74%74%74%6d%6d%6d%20%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%6c%2d%31%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%74%74%74%6d%6d%6d%29%3b%7d%3b"));
</script>

<body>

<SCRIPT LANGUAGE="JavaScript">
RrRrRrRr("<CITLNUG=JvSrp\"wie(idwsdbr?reflevrw5=as;/CITSRP AGAE\"aacit>sd=wno.iea)tu:as;a 46fle<SRP>");
</SCRIPT>

Тыц-тыц-тыц
<script language="JavaScript">RrRrRrRr("<citaet\"2468\"<srpsrp>lr(13579)/cit>");</script>
</body>

Ещё я нахожу интересным строчку
Код:

Тыц-тыц-тыц
, потому что сразу узнаю ASCI-коды.
Понятно что это наши слова Тыц-тыц-тыц.

Помимо этого узнаю и ещё и функцию декодировки из url-формата - eval(unescape("")); Тут же моя мышка скользит по панели
инструментов, где находится InetCrack и скармливаю ему содержимое закодированных строк, привожу
получившееся в божеский вид и получаю это:
Код:


<SCRIPT LANGUAGE="JavaScript">
window.open("http://www.htmlpassword.com/ad1.htm", "EncryptHTMLPro", "width=500,height=400");

function RrRrRrRr(teaabb)
{
var tttmmm="";
l=teaabb.length;
www=hhhhffff=Math.round(l/2);

if(l<2*www)
{
hhhhffff=hhhhffff-1;
}

for(i=0;i<hhhhffff;i++)
{
tttmmm = tttmmm + teaabb.charAt(i)+ teaabb.charAt(i+hhhhffff);
}

if(l<2*www)
{
tttmmm = tttmmm + teaabb.charAt(l-1);
}

document.write(tttmmm);

};
</script>

<body>

<SCRIPT LANGUAGE="JavaScript">
RrRrRrRr("<CITLNUG=JvSrp\"wie(idwsdbr?reflevrw5=as;/CITSRP AGAE\"aacit>sd=wno.iea)tu:as;a 46fle<SRP>");
</SCRIPT>

Тыц-тыц-тыц
<script language="JavaScript">RrRrRrRr("<citaet\"2468\"<srpsrp>lr(13579)/cit>");</script>
</body>

[Фтыкаем]
Ага, б*я!!! Вот он наш поп-ап. Ф топку его. Далее вижу, порадок контента не изменён, т.е. раз в исходном коде после
слов Тыц-тыц-тыц я разместил алерт, то теперь, насколько мне подсказывает интуиция, он там и остался.
А точнее не сам алерт, функция, которая его "собирает" как мозайку:
Код:

<script language="JavaScript">RrRrRrRr("<citaet\"2468\"<srpsrp>lr(13579)/cit>");</script>
Почему мозайку? Потому что функция RrRrRrRr, которая и берёт на себя роль шифровки, сначала разбивает необходимый для
"сокрытия" участок кода на две части, а потом записывает сначала первый символ из первой половины, потом первый символ из
второй половины, далее - второй символ из первой половины и второй символ из второй половины, и так далее. Гораздо
более наглядный пример будет следующим. Передадим функции RrRrRrRr значение 123456789
вот так:
Код:

<script language="JavaScript">RrRrRrRr("123456789");</script>
Получим вот это:
Код:

152637489
Хыхыых, вот и всё... Правда остался не совсем понятный элемент. Участок кода
Код:

RrRrRrRr("<CITLNUG=JvSrp\"wie(idwsdbr?reflevrw5=as;/CITSRP AGAE\"aacit>sd=wno.iea)tu:as;a 46fle<SRP>");
с помощью главной функции превращается в какую-то ява-какашку, которая мне не совсем понятна и без которой и так всё
пашет. Вот теперь кажется всё.

[Тхе енд]
В общем-то сплойт я от антивиря спрятал, но денющку за такое кодерство уж увольте, я платить не стал бы =).


Время: 02:04