Окт 25, 2015 - 0 Comments - Интересно -

Mimic — утилита для подмены похожих символов, делающая отладку кошмаром

25.10.2015 10:03 Mimic — утилита для подмены похожих символов, делающая отладку кошмаром

В рамках проекта Mimic реализована утилита для замены символов из набора ASCII на схожие по начертанию символы из таблиц Unicode. Утилита воплощает идею, высказанную одним из разработчиков из компании Twitter, что замена в исходном тексте программы символа точки с запятой (;) на визуально идентичный символ вопроса в греческом алфавите (;) превращает отладку программы в кошмар из-за того, что компилятор начинает указывать на ошибки в, на первый взгляд, корректных участках кода.

Таблицы Unicode содержат множество омоглифов — похожих по начертанию символов. Подобные символы-двойники присутствуют для пробела, восклицательного знака, кавычек, запятых, тире, математических операций, некоторых цифр и различных букв. После обработки утилитой текста, он остаётся визуально идентичен исходному варианту, но на уровне кодов символов содержимое меняется. Кроме режима полной замены, утилитой поддерживается выборочная замена определённого символа и восстановление текста в исходный вид.

Кроме шуток над коллегами, замена символов может применяться для скрытия текста от автоматизированных систем разбора, механизмов цензурирования и поисковых систем. В том числе, подобная техника уже давно применяется для противостояния блокировщикам спама и для размещения информации, скрытой от индексации. Например, похожим образом производилось жульничество с заявками на госзакупки, в которых для невозможности поиска в реестре по ключевым словам использовались сходные по написанию с русские и латинские буквы.

Дополнение: для Vim подготовлен плагин, подсвечивающий подмену символов в коде.

  1. Главная ссылка к новости (http://developers.slashdot.org…)
Тип: К сведению
Ключевые слова: mimic, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
 
 
 
+3 +/
Да ладно. Если речь об исходниках, то обратную замену можно смело делать везде, кроме литералов.
Внутри них можно применить эвристику: тот греческий знак, например, не имеет смысла, если другой эллиники в документе нет. И слова, в которых кириллица перемешана с латиницей, даже в литералах крайне маловероятны.
 
+/
а какая хрен разница. ну заменишь греческий впрос на точку запятой.
Человек прочитает и не заметит
а программа скомпилиться

П_р_им_е_нить

П_p_им_e_нить

 
–2 +/
>может применяться для

Блин… Теперь придётся писать систему, которая будет приводить всё в нормальный вид из этого говна. А это задачка посложнее будет. На много порядков сложнее.

 
 
+1 +/
>А это задачка посложнее будет. На много порядков сложнее.

Для спамфильтра намного проще, нет необходимости восстанавливать нормальный вид. Нашел обфускацию (например смесь разных алфавитов в одном слове) — добавил очко.

Аналогично можно с кодом поступить: нашел обфускацию, значит либо пасхалочка, либо нафиг такой «продукт».

 
+1 +/
Помню во времена моей молодости, DOS НортонКоммандер и всякое такое — была утилита переворачивающая экран вверхтормашками. Обозвали утилиту как 255 символ и вставили в autoexec.bat. Наш товарищ «головой монитор разбил» ))))
 
 
 
+1 +/
> А есть подобное для текстового режима linux?

Можно перевернуть фреймбуферную консоль. Про текстовый не знаю, да и он не встречается уже почти.

 
+4 +/
Когда я занимался составлением русских правил для SpamAssassin’а, обнаружил, что в русскоязычном спаме широко применяется метод смешивания русских и латинских букв, а также цифр (ноль вместо О, три вместо З, и т.д). Сделал правило, по которому за одно только смешивание русских и латинских букв в одном слове, при наличии ещё некоторых признаков, письмо получало некоторый балл, даже без анализа текста.
Так что тут тоже самое — просто ищем символы выше 0x80 там, где их быть не должно, и всё.
 
 
+/
> … периодически натыкался на такую проблему при копировании примеров кода из web-браузера … тот же word такую подставу автоматически делает.

Стоит ли это понимать будто вы кодите в ворде? Сценарий без ворда выглдяит как-то слишком фантастическим, ну просто во всём интернете навряд ли найдётся онтопиковый ресурс где в коде использовали бы юникодное тире.

 
 
+1 +/
> Сценарий без ворда
> выглдяит как-то слишком фантастическим, ну просто во всём интернете навряд ли
> найдётся онтопиковый ресурс

Да не так и редко попадается. WordPress этим грешил раньше, по-моему. Некоторые форумы.

 
+1 +/
> Кроме шуток над коллегами, замена символов может применяться для скрытия текста от автоматизированных систем разбора, механизмов цензурирования и поисковых систем.

глупости, давно уже все, кому нужно, умеют нормальизовывать текст с учётом таких трансформаций. Это самое простое что в таких системах делается с текстом.

 

Ваш комментарий
 

This entry passed through the Full-Text RSS service — if this is your content and you’re reading it on someone else’s site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Человек ? *