Комментарии 24
Так и хочется вам порекомендовать Штирлиц.exe, чтобы не заниматься галиматьей с раскодирование escape и unicode и т.д.
-4
Я, кстати, чуть позже написал вот такой быдлокод для расшифровки без мучительства:
понятно, что это можно свести в одну регулярку.
var x = $E[$d.$fJ]($j);
var s = x.replace(/\\u00([0-9a-fA-F]{2})/g, function() {
return String.fromCharCode(parseInt(arguments[1], 16));
});
s = s.replace(/\\x([0-9a-fA-F]{2})/g, function() {
return String.fromCharCode(parseInt(arguments[1], 16));
});
console.log(s);
понятно, что это можно свести в одну регулярку.
+2
Вот что на сайте cryptoservice.info/:
Добрый день, уважаемый пользователь КриптоСервиса.
Наш сервис относительно молод, но функционал наш велик. Спустя несколько месяцев с начала нашей работы мы заметили, что у нас превалирует часть клиентов, криптующих исключительно iframe, хотя сервис изначально задумывался как платный криптер/обфускатор Javascript-кода вообще. Теперь мы видим, что это используется для распространения вредоносного ПО. С этого момента мы прекращаем криптовать iframe-коды. Доступными останутся только криптеры Javascript, контента и ссылок. В течении недели криптер iframe будет убран с нашего сервиса. Пользователям с уже оплаченным аккаунтом iframe-криптер будет доступен до истечения аккаунта.
С наилучшими пожеланиями, КриптоСервис.
Добрый день, уважаемый пользователь КриптоСервиса.
Наш сервис относительно молод, но функционал наш велик. Спустя несколько месяцев с начала нашей работы мы заметили, что у нас превалирует часть клиентов, криптующих исключительно iframe, хотя сервис изначально задумывался как платный криптер/обфускатор Javascript-кода вообще. Теперь мы видим, что это используется для распространения вредоносного ПО. С этого момента мы прекращаем криптовать iframe-коды. Доступными останутся только криптеры Javascript, контента и ссылок. В течении недели криптер iframe будет убран с нашего сервиса. Пользователям с уже оплаченным аккаунтом iframe-криптер будет доступен до истечения аккаунта.
С наилучшими пожеланиями, КриптоСервис.
+3
Автор молодец, что следит за сайтами клиентов и ищет правду в таких «скриптах».
Недавно сам столкнулся с такой проблемой и искал вариант «декондига» таких подарков и остановился примерно на следующем варианте:
Недавно сам столкнулся с такой проблемой и искал вариант «декондига» таких подарков и остановился примерно на следующем варианте:
<script type="text/javascript">
window.eval = function(code)
{
console.log(code); // or alert(code);
}
</script>
+23
классная идейка, спасибо!
+1
В дополнение к этому скажу, что мне приходилось встречаться с обфусцированным кодом, где расшифрованный код выполнялся не eval'ом, а с помощью конструктора Function, т.е. вроде
Ну и для восстановления форматирования (и даже избавления от /packer/'а) можно пользоваться JSbeautifier'ом.
new Function('','alert(document.cookie)')();
Только обращения к самому window.Function'у не было, поэтому его переопределение ничего не дало. Зато есть, например, такой вариант достучаться до негоnew alert.constructor('','alert(document.cookie)')();
, который и использовался в моём случае. Мне оставалось только переопределить Function.prototype.constructor, и желанный код любезно отобразился в консоли.Ну и для восстановления форматирования (и даже избавления от /packer/'а) можно пользоваться JSbeautifier'ом.
+4
Спасибо, как я и думал в коменте к прошлой статье. Однако бывают сложнее алгоритмы обфускации по типу множественного пакера, кодера. Думаю принципы в статье и для них пригодятся, главное начинает анализ с самой последней вызываемой функции…
0
А что происходит после редиректа на iframe? Как iframe может привести к запуску вируса?
0
javascript deobfuscator addon под ff отлично показывает исполняемый код и такого мучительства делать не надо
0
Вы внимательно читали топик? Этот пост объясняет, как можно вручную расшифровать вредоносный JS-код. Тем более, я считаю, что большинство юзеров хабра сидит в гугл хром; фф сдает позиции (имхо).
-1
Конечно, большинству людей интересней всего алгоритм «нажми на кнопку — получишь результат». Но всё же ещё не перевелись люди, которым интересно, как эта «кнопка» работает и возможно среди них есть те, кто когда-нибудь эту «кнопку» сделает ещё лучше или похожу для других целей. Почему бы с ними не поделиться принципом?
0
Цитаты из той статьи, на которую Вы ссылаетесь:
Из этого можно сделать вывод, что использование unescape — это не использование обратной функции? Какие тогда функции использовались?
Раскодируем поэтапно скрипт воспользовавшись обратными функциями:
Далее уберем 16-ричную систему функцией unescape
Из этого можно сделать вывод, что использование unescape — это не использование обратной функции? Какие тогда функции использовались?
0
НЛО прилетело и опубликовало эту надпись здесь
Масса новых идей для jAntivirus: jkeks.ru/jAntivirus. Копаться и копатсья…
0
Очень удобно делать в строке браузера.
Вводим javascript:alert("\u0064\u006Fcument.creat\u0065\u0045\u006C\u0065ment('ifra\x6D\x65')")
Видим:![](https://habrastorage.org/r/w1560/storage2/1e3/83e/c95/1e383ec9514a405bf9c4ff83b3371b16.png)
Вводим javascript:alert("\u0064\u006Fcument.creat\u0065\u0045\u006C\u0065ment('ifra\x6D\x65')")
Видим:
![](https://habrastorage.org/storage2/1e3/83e/c95/1e383ec9514a405bf9c4ff83b3371b16.png)
+3
ЕМНИП, на хабре была статья про расшифровку хитро запакованного JS. Там было что-то связанное с лямбда-функциями и использованием тела функции как ключа. Сейчас найти ее не могу. Никто не подскажет?
0
Для интересующихся вопросов раскодирования JS эксплойтов и кодов есть замечательная утилита. Написано про неё уже много и много
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Расшифровка вредоносного JavaScript