[Intro] Здрася всем. На днях вот от безделия и от отсутствия подключения к сети начал ковырять движки, но ни одна известная опенсурсная гадина мне не поддавалась, поэтому плавно перешёл на поиск глюков в осле, и наконец получив добротного пинка и тут, решил поковыряться в сплойтах под ИЕ. Достав творение одного из наших мемберов (хвала ему и почесть), увидел что хотя сплойт вроде как приватный, а палится антивирём. Вот тут-то и пришлось юзать хтмл-криптор, хотя никогда в них ранее нужды не испытывал. Под руку попался Encrypt HTML Pro 2.6, который мне сразу напомнил о статье в хакере, где подобную программулину ломали. "Ыхыхы! Ну-ка и я попробую!" - подумал я =). Понеслась. [Наблюдаем] Итак, я создал файлик с именем crypt.html и так как криптор шифрует то что находится в теге <body>, то именно этот тег я напичкал его вот таким кодом: Code: <body> Тыц-тыц-тыц <script>alert("123456789")</script> </body> Далее запустил криптор вот с такими отпциями: , а всё остальное убрал. Смело нажав на Protect, получаю сбэкапленный хтмл-файл и закриптованный хтмл-файл. Запускаю второй и вижу вставленную какаху ввиде подобия баннера: (This webpage was protected by Encrypt HTML Pro Unregistered Version), волшебные слова Тыц-тыц-тыц, алерт и ещё какой-то сраный pop-up. Ну чтоже, приступаем к исследованию изменённого кода. [Round 1] Содержимое закриптованного файла вышло такое: Code: <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.--> Далее я привожу его в божеский вид, хотя бы немного отформатировав: Code: <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.--> Такс, такс, такс, для начала вижу невооружённым взглядом, что вот она созданная таблица, напоминающая нам что за продукт мы не заплатили. Фтопку его. Фтопку и рекламу снизу. Подрезав получаю вот это: Code: <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> Ещё я нахожу интересным строчку Code: Тыц-тыц-тыц , потому что сразу узнаю ASCI-коды. Понятно что это наши слова Тыц-тыц-тыц. Помимо этого узнаю и ещё и функцию декодировки из url-формата - eval(unescape("")); Тут же моя мышка скользит по панели инструментов, где находится InetCrack и скармливаю ему содержимое закодированных строк, привожу получившееся в божеский вид и получаю это: Code: <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> [Фтыкаем] Ага, б*я!!! Вот он наш поп-ап. Ф топку его. Далее вижу, порадок контента не изменён, т.е. раз в исходном коде после слов Тыц-тыц-тыц я разместил алерт, то теперь, насколько мне подсказывает интуиция, он там и остался. А точнее не сам алерт, функция, которая его "собирает" как мозайку: Code: <script language="JavaScript">RrRrRrRr("<citaet\"2468\"<srpsrp>lr(13579)/cit>");</script> Почему мозайку? Потому что функция RrRrRrRr, которая и берёт на себя роль шифровки, сначала разбивает необходимый для "сокрытия" участок кода на две части, а потом записывает сначала первый символ из первой половины, потом первый символ из второй половины, далее - второй символ из первой половины и второй символ из второй половины, и так далее. Гораздо более наглядный пример будет следующим. Передадим функции RrRrRrRr значение 123456789 вот так: Code: <script language="JavaScript">RrRrRrRr("123456789");</script> Получим вот это: Code: 152637489 Хыхыых, вот и всё... Правда остался не совсем понятный элемент. Участок кода Code: RrRrRrRr("<CITLNUG=JvSrp\"wie(idwsdbr?reflevrw5=as;/CITSRP AGAE\"aacit>sd=wno.iea)tu:as;a 46fle<SRP>"); с помощью главной функции превращается в какую-то ява-какашку, которая мне не совсем понятна и без которой и так всё пашет. Вот теперь кажется всё. [Тхе енд] В общем-то сплойт я от антивиря спрятал, но денющку за такое кодерство уж увольте, я платить не стал бы =).