URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 105178
[ Назад ]

Исходное сообщение
"Mimic - утилита для подмены похожих символов, делающая отлад..."

Отправлено opennews , 25-Окт-15 10:19 
В рамках проекта Mimic (https://github.com/reinderien/mimic) реализована утилита для замены символов из набора ASCII на схожие по начертанию символы из таблиц Unicode. Утилита воплощает идею (https://twitter.com/peterritchie/status/534011965132120064), высказанную одним из разработчиков из компании Twitter, что замена в исходном тексте программы символа точки с запятой (;) на визуально идентичный символ вопроса в греческом алфавите (;) превращает отладку программы в кошмар из-за того, что компилятор начинает указывать на ошибки в на первый взгляд корректных участках кода.

Таблицы Unicode содержат множество омоглифов - похожих по начертанию символов. Подобные символы-двойники также присутствуют (https://github.com/reinderien/mimic/blob/master/mimic/__init...) для пробела, восклицательного знака, кавычек, запятых, тире, математических операций, некоторых цифр и различных букв. После обработки утилитой текста, он остаётся визуально идентичен исходному варианту, но на уровне кодов символов содержимое меняется. Кроме режима полной замены, утилитой поддерживается выборочная замена определённого символа и восстановление текста в исходный вид.

Кроме шуток над коллегами, подобная замена символов может применяться для скрытия текста от автоматизированных систем разбора и поисковых систем. Подобная техника применяется для противостояния блокировщикам спама, обхода систем цензурирования  и для размещения информации, скрытой от индексации. Например, похожим образом производилось
жульничество (http://www.bbc.com/russian/rolling_news/2013/04/130409_rn_st...) с заявками на госзакупки, в которых для невозможности поиска в реестре по ключевым словам использовались сходные по написанию с русские и латинские буквы.

URL: http://developers.slashdot.org/story/15/10/24/1759201/mimic-...
Новость: http://www.opennet.dev/opennews/art.shtml?num=43196


Содержание

Сообщения в этом обсуждении
"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено bOOster , 25-Окт-15 10:19 
Хе. Ну сделаем обратный парсер. Делов то на 5 минут ))

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено A.Stahl , 25-Окт-15 10:23 
А нихрена не 5 минут. Слишком от контекста зависит. Вот и думай что было в тексте изначально: точка с запятой и греческий вопросительный знак.
Обратная задача в общем виде не решаема вообще.

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено виндотролль , 25-Окт-15 11:34 
в общем виде — да. Но если известны  начальные условия — имели код с символами ASCII — то решается элементарно.

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено тоже Аноним , 25-Окт-15 11:40 
Да ладно. Если речь об исходниках, то обратную замену можно смело делать везде, кроме литералов.
Внутри них можно применить эвристику: тот греческий знак, например, не имеет смысла, если другой эллиники в документе нет. И слова, в которых кириллица перемешана с латиницей, даже в литералах крайне маловероятны.

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено Аноним , 26-Окт-15 10:51 
> И слова, в которых кириллица перемешана с латиницей, даже в литералах крайне маловероятны.

https://translate.google.com/#ru/sr/%D1%8F%D0...


"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено тоже Аноним , 26-Окт-15 11:41 
Хм... туше.
Однако замена "JE3ИK" на "JЕЗИК" критична только в двух случаях: когда нужен точный битовый паттерн и когда в шрифте нет поддержки кириллицы. Да, согласен, такие случаи вполне возможны.

С другой стороны, я, признаться, не понял сущности юз-кейса. Как в реальной жизни мне в руки может попасть код, испохабленный таким образом? Да еще и с неизвестным заранее языком на борту?


"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено . , 26-Окт-15 16:57 
Да всё правильно. Ну будет у тебя трэш в строках, неприятно, но отладке не помешает никак.

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено Sinot , 26-Окт-15 19:11 
Например в примерах на каких-нибудь сайтах-учебниках с "уникальным" контентом. Иногда встречаются сайты с подобной защитой от копирования.

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено Аноним , 25-Окт-15 12:57 
надо сначала распечатать, а потом - распознать.

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено vit , 25-Окт-15 18:22 
а какая хрен разница. ну заменишь греческий впрос на точку запятой.
Человек прочитает и не заметит
а программа скомпилиться

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

П_p_им_e_нить


"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено vit , 25-Окт-15 18:26 
//человек разницы не увидет
a:='Ποιος είσαι εσύ;';
a:='Ποιος είσαι εσύ;';

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено тоже Аноним , 26-Окт-15 14:16 
Тот редкий случай, когда действительно имеет смысл поиграть шрифтами ;)

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено pavlinux , 26-Окт-15 02:19 
> А нихрена не 5 минут. Слишком от контекста зависит.
> Вот и думай что было в тексте изначально: точка с запятой и греческий вопросительный знак.

Какого контекста, речь про ошибки препроцессора?! У него нет контекста,
а есть допустимые символы, которые описаны в стандарте на этот язык.

При перекодирование нужно лишь не трогать значения строковых переменных.


"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено Elhana , 26-Окт-15 18:17 
Так в самой утилите есть режим обратной замены.

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено Аноним , 25-Окт-15 10:21 
А диссернет так можно обойти?

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено serega , 25-Окт-15 11:05 
Зачем?

"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено Аноним , 25-Окт-15 11:31 
> А диссернет так можно обойти?

Мысли читаешь. Но их представитель говорил, они распознают и похожие.


"Представлен Mimic для подмены похожих символов, делающий отл..."
Отправлено Аноним , 25-Окт-15 12:58 
После введения запрета на пиратское ПО распознание проводится аспирантами.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено A.Stahl , 25-Окт-15 10:21 
>может применяться для

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


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено bOOster , 25-Окт-15 10:23 
В чем она сложнее то? Тыж не с визуальным отображениями работаешь а с ASCII/UNICODE..

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено A.Stahl , 25-Окт-15 10:24 
Задача контекстнозависима. Как ты определишь нужен здесь греческий вопрос или точка с запятой?

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено bOOster , 25-Окт-15 10:28 
> Задача контекстнозависима. Как ты определишь нужен здесь греческий вопрос или точка с
> запятой?

Аааа, ты в общем контексте? Ну тады да. Я остановился на заголовке новости и применимости этого для исходого кода. А для языков программирования семантика строгая.


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Знающий Истину , 25-Окт-15 10:46 
везде точка с запятой
.!.  .!.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Michael Shigorin , 25-Окт-15 19:23 
> везде точка с запятой

Предложил правку, где во втором месте ";" (;) из твита по ссылке.

Да, тема старая, но только раскинувшаяся шире с юникодом...


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено pavlinux , 26-Окт-15 02:27 
> Как ты определишь нужен здесь греческий вопрос или точка с запятой?

В стандарте на язык прописано.  


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено EHLO , 25-Окт-15 11:25 
>А это задачка посложнее будет. На много порядков сложнее.

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

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


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено bOOster , 25-Окт-15 10:22 
Помню во времена моей молодости, DOS НортонКоммандер и всякое такое - была утилита переворачивающая экран вверхтормашками. Обозвали утилиту как 255 символ и вставили в autoexec.bat. Наш товарищ "головой монитор разбил" ))))

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 10:48 
А есть подобное для текстового режима linux?

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено GotF , 25-Окт-15 11:03 
> А есть подобное для текстового режима linux?

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


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 13:00 
в линуксе нет текстового режима - там есть терминал. это немного другое.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено pavlinux , 26-Окт-15 03:15 
> А есть подобное для текстового режима linux?

# для VGA 80x25
1. Замутить terminfo файлик, скомпилить.
2. Закинуть в /usr/share/terminfo/
3. export TERM=rotterm  

можно там в каталоге пошариться, может уже есть такой.

# Для фряймбуфера
есho 2 >  /sys/class/graphics/fbcon/rotate_all;

# X'ы
xrandr -o 2;


# Как-то хитрожопо лазали в VGA регистры и там вращали всей видюшкой.
# Граб2 мож крутануть
# Ну и ефи/биос пропатчить.



"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено ano , 25-Окт-15 13:39 
ti.com

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 17:51 
Точно! :)

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Michael Shigorin , 25-Окт-15 19:29 
> ti.com

Фигассе память :)


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 26-Окт-15 08:03 
Друг пояснить просит

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено YetAnotherOnanym , 25-Окт-15 10:47 
Когда я занимался составлением русских правил для SpamAssassin'а, обнаружил, что в русскоязычном спаме широко применяется метод смешивания русских и латинских букв, а также цифр (ноль вместо О, три вместо З, и т.д). Сделал правило, по которому за одно только смешивание русских и латинских букв в одном слове, при наличии ещё некоторых признаков, письмо получало некоторый балл, даже без анализа текста.
Так что тут тоже самое - просто ищем символы выше 0x80 там, где их быть не должно, и всё.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 26-Окт-15 17:26 
Отличная идея! Как раз недавно просматривал папку спама и удивлялся, как гуглу удаётся так хорошо настроить фильтры. У вас нет статей о подобном?

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено YetAnotherOnanym , 28-Окт-15 19:27 
Нет, статей у меня нет. Если есть желание - можете глянуть сами правила - http://sa-russian.narod.ru/
Я их, если честно, забросил, потому что я сейчас почтой не занимаюсь...

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Очередной аноним , 27-Окт-15 16:18 
наверное тут ключевое "...там, где их быть не должно...". Если это листинг какой-то программы, то для того, чтобы понять, должен "странный" символ там быть или не должен, вам нужно целый синтаксический анализатор языка программирования писАть. Потому что как минимум нужно понять, этот символ в этом месте относится к конструкциям языка или он валяется внутри какой-нибудь строковой константы, в которую вбит текст на хинди (и данный символ там нормален).

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 10:47 
Дaвнo yжe зaмeняю. Правда из-за обессивно компульсивного синдрома и не в коде, в в сообщениях.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Admino , 25-Окт-15 11:34 
И какие символы ты заменил в этом комментарии, колись?

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 12:57 
В первом предложении - очень многие.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Michael Shigorin , 25-Окт-15 19:30 
> В первом предложении - очень многие.

$ export LANG=C
$ echo <d0><94>a<d0><b2><d0><bd>o y<d0><b6>e <d0><b7>a<d0><bc>e<d0><bd><d1><8f><d1><8e>.^C


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 26-Окт-15 08:15 
Какой это язык и в чём суть этого кода? Смахивает на баш.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 26-Окт-15 19:15 
Вау, нет объяснений, а только один минус.
Мне кажется или тот кто его поставил таки понимал суть. <,>, код символа (кажется).

"Заголовок."
Отправлено Аноним , 25-Окт-15 10:52 
Я использовал эту особенность когда регистрировался на oтветах Google после бана. Одинаковые ники были запрещены, но относительно неодинаковые - нет.
Правда потом эту особенность из движка выпилили. ;(
PS ВиO, я скучаю.

"Заголовок."
Отправлено Аноним , 25-Окт-15 10:53 
PS: также можно использовать невидимый нулевой пробел.

"Заголовок."
Отправлено KOT040188 , 25-Окт-15 16:16 
Скучаете по ещё одному бану? ヅ

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Dkg , 25-Окт-15 10:57 
Разработчикам IDE работы прибавиться.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Anonymous_ , 25-Окт-15 11:07 
Для Vim уже есть плагин
https://github.com/vim-utils/vim-troll-stopper

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Петушок , 25-Окт-15 13:50 
> Разработчикам IDE работы прибавиться.

http://tsya.ru


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 18:40 
Что сделает?
Прибавится
(Oн) Что делает?
Добивается!
Что сделать?
Добиться
Что делать?
Добиваться!

Хотя, теперь я понимаю, откуда всякое-разное "ЦО" пошло:
прибавицо
добиваецо
добицо
добивацо


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено аанноонниимм , 26-Окт-15 21:11 
>Разработчикам IDE работы прибавиться.

                                 ^^^^^
И Розенталю


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 11:57 
> Утилита воплощает идею, высказанную одним из разработчиков из компании Twitter

тоже мне идея - периодически натыкался на такую проблему при копировании примеров кода из web-браузера. Кажется, тире в коде обычно неотличимо от минуса.
И, в отличие от хитрого ; из греческого юникода, встречается гораздо чаще - тот же word такую подставу автоматически делает.


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено all_glory_to_the_hypnotoad , 25-Окт-15 12:43 
> ... периодически натыкался на такую проблему при копировании примеров кода из web-браузера ... тот же word такую подставу автоматически делает.

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


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Кукаретик , 25-Окт-15 15:41 
>Стоит ли это понимать будто вы кодите в ворде?

А в чём ещё кодить?


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 26-Окт-15 17:29 
Некоторые ещё и /etc/passwd в нем редактируют.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено systemd_anonymousd , 25-Окт-15 17:44 
> Сценарий без ворда
> выглдяит как-то слишком фантастическим, ну просто во всём интернете навряд ли
> найдётся онтопиковый ресурс

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



"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Michael Shigorin , 25-Окт-15 19:32 
> тот же word такую подставу автоматически делает.

word, который press -- похоже, тоже.


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 12:10 
Не кормите троля

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 12:29 
Мне больше всего бесит буквы С и C...

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Кукаретик , 25-Окт-15 15:43 
Операторы, вбивая данные, так ошибаются ежедневно.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено all_glory_to_the_hypnotoad , 25-Окт-15 12:38 
> Кроме шуток над коллегами, замена символов может применяться для скрытия текста от автоматизированных систем разбора, механизмов цензурирования и поисковых систем.

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


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 14:27 
с буквами "с" такое нередко случается совершенно случайно: на макбуке в режиме "у каждого окна свой язык" переключение языка при переключении в окно происходит с задержкой. в итоге, переключаешься в окно, сразу начинаешь писать, но первые несколько символов ещё в старом состоянии переключателя клавиатуры. в случае с "с" это визуально никак не заметно.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Eklykti , 25-Окт-15 15:30 
> на макбуке в режиме "у каждого окна свой язык" переключение языка при переключении в окно происходит с задержкой

Глобально, надёжно. Think different!


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Michael Shigorin , 25-Окт-15 19:34 
> Think different!

d1ff3r3n7, ага.


"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 20:03 
не почти все эти случаи можно в обратку проверить, другое дело что подобная проверка на юникод символы давно напрашивалась, осло все юникод символы вне места где мы ожидаем строковую переменную можно заменять автоматом по таблице схожих символов..

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 25-Окт-15 21:02 
" highlight non ascii symbols
highlight nonascii guibg=DarkGreen ctermbg=DarkGreen term=standout
au BufRead * syntax match nonascii "[^\u0000-\u007F]"

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 26-Окт-15 02:06 
класс, теперь легче помогать школьникам и студентам с "напишите программу за меня". С радостью!

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено IMHO , 26-Окт-15 10:17 
ну и свободка

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 26-Окт-15 13:46 
енжой йор юникод

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено тоже Аноним , 26-Окт-15 14:19 
Для кроссплатформенных исходников нормальных вариантов только два: либо ansi, либо юникод.
Все остальное гарантирует пляски с бубном на ровном месте.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 26-Окт-15 23:07 
Почему компиляторы не могут нормализовать?

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 27-Окт-15 18:23 
Сдавайте курсачи в напечатанном виде.

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 13-Мрт-19 14:06 
пошёл на хутор бабочек ловить

"Mimic - утилита для подмены похожих символов, делающая отлад..."
Отправлено Аноним , 13-Мрт-19 14:06 
пошёл на хутор бабочек ловить