Может кому пригодится - Превращаем eval(unescape('%blabla')) во что-нибудь понятное

M
На сайте с 10.03.2008
Offline
77
2894

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

1 шаг, выпаршиваем сам г*внокод


preg_match("#<script type='text/javascript'>eval\(unescape\('(.*)'\)\);</script>#", $page, $match);
$hex = explode('%', $match[1]); // тут прошу обратить внимание, разделитель %, у Вас может быть что-нибудь другое, но сути это не меняет

в этом шаге мы выпарсили со страницы(предполагается, что в переменную $page вы поместили содержимое вражеского сайта) содержимое блока с заэскапелированным кодом.

2 шаг, превращение в крутокод


foreach ($hex as $ch)
{
$code .= chr(hexdec($ch));
/* в цыкле пробегаем по каждому символу и превращаем его
из шестнадцатеричного, в десятичный вид, далее отдаем его
функции chr() которая уже видя номер, возвращает символ.*/
}

Вот собственно и все, ну и одним кодом


function decodeEsc($page, $sep = '%')
{
preg_match("#<script type='text/javascript'>eval\(unescape\('(.*)'\)\);</script>#", $page, $match);
$hex = explode($sep, $match[1]);
foreach ($hex as $ch)
{
$code .= chr(hexdec($ch));
}
return $code;
}

Приветствуем каменты.

[Удален]
#1
markmx:
шаг, превращение в крутокод

в говнокод .... rawurldecode функция вам о чем нить гвоорит?

M
На сайте с 10.03.2008
Offline
77
#2
bearman:
в говнокод .... rawurldecode функция вам о чем нить гвоорит?

не вижу разници, что мой вариант, что через rawurldecode, тем более что мой вариант более контролируемый, если кто парсит проксы самописными скриптами часто сталкиваются с извращенными обфускациями листов...

но за конструктивное замечание спасибо.

[Удален]
#3
markmx:
если кто парсит проксы самописными скриптами часто сталкиваются с извращенными обфускациями листов...

это все равно ни к rawurlencode ни к вашему методу не имеет конкретного отношения :)

sashka_
На сайте с 27.01.2010
Offline
103
#4

чё за тупость ???

вот писал человеку там email был закодирован ...

 preg_match_all("#unescape\('(.*?)'\)#is",$url, $log);

foreach ( $log[1] as $key) {
echo urldecode($key)."<br>";
}
Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).
dkameleon
На сайте с 09.12.2005
Offline
386
#5

хм...

1. сохранить страницу.

2. заменить eval на alert

3. открыть страницу.

4. наслаждаться своими хакерскими способностями :)

Дизайн интерьера (http://balabukha.com/)
sashka_
На сайте с 27.01.2010
Offline
103
#6
хм...
1. сохранить страницу.
2. заменить eval на alert
3. открыть страницу.
4. наслаждаться своими хакерскими способностями

не это не самый хороший вариант ;-) , а если надо открыть 10 страниц и сохранить всё в файл ? долговато будет )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий