![]() |
Исследование работы Encrypt HTML Pro
[Intro]
Здрася всем. На днях вот от безделия и от отсутствия подключения к сети начал ковырять движки, но ни одна известная опенсурсная гадина мне не поддавалась, поэтому плавно перешёл на поиск глюков в осле, и наконец получив добротного пинка и тут, решил поковыряться в сплойтах под ИЕ. Достав творение одного из наших мемберов (хвала ему и почесть), увидел что хотя сплойт вроде как приватный, а палится антивирём. Вот тут-то и пришлось юзать хтмл-криптор, хотя никогда в них ранее нужды не испытывал. Под руку попался Encrypt HTML Pro 2.6, который мне сразу напомнил о статье в хакере, где подобную программулину ломали. "Ыхыхы! Ну-ка и я попробую!" - подумал я =). Понеслась. [Наблюдаем] Итак, я создал файлик с именем crypt.html и так как криптор шифрует то что находится в теге <body>, то именно этот тег я напичкал его вот таким кодом: Код:
<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">за продукт мы не заплатили. Фтопку его. Фтопку и рекламу снизу. Подрезав получаю вот это: Код:
<SCRIPT LANGUAGE="JavaScript">Код:
Тыц-тыц-тыцПонятно что это наши слова Тыц-тыц-тыц. Помимо этого узнаю и ещё и функцию декодировки из url-формата - eval(unescape("")); Тут же моя мышка скользит по панели инструментов, где находится InetCrack и скармливаю ему содержимое закодированных строк, привожу получившееся в божеский вид и получаю это: Код:
Ага, б*я!!! Вот он наш поп-ап. Ф топку его. Далее вижу, порадок контента не изменён, т.е. раз в исходном коде после слов Тыц-тыц-тыц я разместил алерт, то теперь, насколько мне подсказывает интуиция, он там и остался. А точнее не сам алерт, функция, которая его "собирает" как мозайку: Код:
<script language="JavaScript">RrRrRrRr("<citaet\"2468\"<srpsrp>lr(13579)/cit>");</script>"сокрытия" участок кода на две части, а потом записывает сначала первый символ из первой половины, потом первый символ из второй половины, далее - второй символ из первой половины и второй символ из второй половины, и так далее. Гораздо более наглядный пример будет следующим. Передадим функции 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 |