The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

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

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

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

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

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



  1. Главная ссылка к новости (http://developers.slashdot.org...)
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: mimic
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, bOOster, 10:19, 25/10/2015 [ответить] [смотреть все]    [к модератору]
  • +7 +/
    Хе. Ну сделаем обратный парсер. Делов то на 5 минут ))
     
     
  • 2.5, A.Stahl, 10:23, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]
  • +8 +/
    А нихрена не 5 минут. Слишком от контекста зависит. Вот и думай что было в тексте изначально: точка с запятой и греческий вопросительный знак.
    Обратная задача в общем виде не решаема вообще.
     
     
  • 3.21, виндотролль, 11:34, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]
  • +3 +/
    в общем виде 8212 да Но если известны начальные условия 8212 имели код с... весь текст скрыт [показать]
     
  • 3.23, тоже Аноним, 11:40, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +5 +/
    Да ладно Если речь об исходниках, то обратную замену можно смело делать везде, ... весь текст скрыт [показать]
     
     
  • 4.61, Аноним, 10:51, 26/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    https translate google com ru sr D1 8F D0 B7 D1 8B D0 BA... весь текст скрыт [показать]
     
     
  • 5.62, тоже Аноним, 11:41, 26/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Хм туше Однако замена JE3ИK на JЕЗИК критична только в двух случаях ког... весь текст скрыт [показать]
     
     
  • 6.66, ., 16:57, 26/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Да всё правильно Ну будет у тебя трэш в строках, неприятно, но отладке не помеш... весь текст скрыт [показать]
     
  • 6.70, Sinot, 19:11, 26/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Например в примерах на каких-нибудь сайтах-учебниках с уникальным контентом И... весь текст скрыт [показать]
     
  • 3.30, Аноним, 12:57, 25/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +18 +/
    надо сначала распечатать, а потом - распознать.
     
  • 3.42, vit, 18:22, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    а какая хрен разница ну заменишь греческий впрос на точку запятой Человек проч... весь текст скрыт [показать]
     
     
  • 4.43, vit, 18:26, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    человек разницы не увидет a 928 959 953 959 962 949 943 963... весь текст скрыт [показать]
     
     
  • 5.64, тоже Аноним, 14:16, 26/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Тот редкий случай, когда действительно имеет смысл поиграть шрифтами ;)
     
  • 3.55, pavlinux, 02:19, 26/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Какого контекста, речь про ошибки препроцессора У него нет контекста, а есть ... весь текст скрыт [показать]
     
  • 2.69, Elhana, 18:17, 26/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –1 +/
    Так в самой утилите есть режим обратной замены.
     
  • 1.2, Аноним, 10:21, 25/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +/
    А диссернет так можно обойти?
     
     
  • 2.17, serega, 11:05, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Зачем?
     
  • 2.20, Аноним, 11:31, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Мысли читаешь Но их представитель говорил, они распознают и похожие ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.31, Аноним, 12:58, 25/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +4 +/
    После введения запрета на пиратское ПО распознание проводится аспирантами.
     
  • 1.3, A.Stahl, 10:21, 25/10/2015 [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Блин Теперь придётся писать систему, которая будет приводить всё в нормальный... весь текст скрыт [показать]
     
     
  • 2.6, bOOster, 10:23, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    В чем она сложнее то Тыж не с визуальным отображениями работаешь а с ASCII UNIC... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.7, A.Stahl, 10:24, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Задача контекстнозависима Как ты определишь нужен здесь греческий вопрос или то... весь текст скрыт [показать]
     
     
  • 4.8, bOOster, 10:28, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Аааа, ты в общем контексте Ну тады да Я остановился на заголовке новости и при... весь текст скрыт [показать]
     
  • 4.9, Знающий Истину, 10:46, 25/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    везде точка с запятой
    .!.  .!.
     
     
  • 5.45, Michael Shigorin, 19:23, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Предложил правку, где во втором месте 894 из твита по ссылке Да, тема ... весь текст скрыт [показать]
     
  • 4.56, pavlinux, 02:27, 26/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    В стандарте на язык прописано ... весь текст скрыт [показать]
     
  • 2.19, EHLO, 11:25, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +6 +/
    >А это задачка посложнее будет. На много порядков сложнее.

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

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

     
  • 1.4, bOOster, 10:22, 25/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Помню во времена моей молодости, DOS НортонКоммандер и всякое такое - была утилита переворачивающая экран вверхтормашками. Обозвали утилиту как 255 символ и вставили в autoexec.bat. Наш товарищ "головой монитор разбил" ))))
     
     
  • 2.12, Аноним, 10:48, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    А есть подобное для текстового режима linux?
     
     
  • 3.16, GotF, 11:03, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Можно перевернуть фреймбуферную консоль Про текстовый не знаю, да и он не встре... весь текст скрыт [показать]
     
  • 3.32, Аноним, 13:00, 25/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    в линуксе нет текстового режима - там есть терминал. это немного другое.
     
  • 3.57, pavlinux, 03:15, 26/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    для VGA 80x25 1 Замутить terminfo файлик, скомпилить 2 Закинуть в usr sha... весь текст скрыт [показать]
     
  • 2.33, ano, 13:39, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +5 +/
    ti.com
     
     
  • 3.41, Аноним, 17:51, 25/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Точно! :)
     
  • 3.46, Michael Shigorin, 19:29, 25/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    > ti.com

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

     
  • 3.58, Аноним, 08:03, 26/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Друг пояснить просит
     
  • 1.10, YetAnotherOnanym, 10:47, 25/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +7 +/
    Когда я занимался составлением русских правил для SpamAssassin'а, обнаружил, что в русскоязычном спаме широко применяется метод смешивания русских и латинских букв, а также цифр (ноль вместо О, три вместо З, и т.д). Сделал правило, по которому за одно только смешивание русских и латинских букв в одном слове, при наличии ещё некоторых признаков, письмо получало некоторый балл, даже без анализа текста.
    Так что тут тоже самое - просто ищем символы выше 0x80 там, где их быть не должно, и всё.
     
     
  • 2.67, Аноним, 17:26, 26/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Отличная идея Как раз недавно просматривал папку спама и удивлялся, как гуглу у... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.77, YetAnotherOnanym, 19:27, 28/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Нет, статей у меня нет Если есть желание - можете глянуть сами правила - http ... весь текст скрыт [показать]
     
  • 2.75, Очередной аноним, 16:18, 27/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    наверное тут ключевое там, где их быть не должно Если это листинг какой... весь текст скрыт [показать] [показать ветку]
     
  • 1.11, Аноним, 10:47, 25/10/2015 [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Дaвнo yжe зaмeняю Правда из-за обессивно компульсивного синдрома и не в коде, в... весь текст скрыт [показать]
     
     
  • 2.22, Admino, 11:34, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    И какие символы ты заменил в этом комментарии, колись?
     
     
  • 3.29, Аноним, 12:57, 25/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    В первом предложении - очень многие.
     
     
  • 4.47, Michael Shigorin, 19:30, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    CODE export LANG C echo d0 94 a d0 b2 d0 bd o y d0 b6 e d0 b7 a d0 ... весь текст скрыт [показать]
     
     
  • 5.59, Аноним, 08:15, 26/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    Какой это язык и в чём суть этого кода? Смахивает на баш.
     
     
  • 6.71, Аноним, 19:15, 26/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Вау, нет объяснений, а только один минус Мне кажется или тот кто его поставил ... весь текст скрыт [показать]
     
  • 1.13, Аноним, 10:52, 25/10/2015 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Я использовал эту особенность когда регистрировался на oтветах Google после бана... весь текст скрыт [показать]
     
     
  • 2.14, Аноним, 10:53, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    PS: также можно использовать невидимый нулевой пробел.
     
  • 2.39, KOT040188, 16:16, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +2 +/
    Скучаете по ещё одному бану? ヅ
     
  • 1.15, Dkg, 10:57, 25/10/2015 [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    Разработчикам IDE работы прибавиться.
     
     
  • 2.18, Anonymous_, 11:07, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Для Vim уже есть плагин
    https://github.com/vim-utils/vim-troll-stopper
     
  • 2.34, Петушок, 13:50, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +5 +/
    > Разработчикам IDE работы прибавиться.

    http://tsya.ru

     
  • 2.44, Аноним, 18:40, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Что сделае i т i Прибави i тся i Oн Что делае i т i Добивается Что с... весь текст скрыт [показать] [показать ветку]
     
  • 2.72, аанноонниимм, 21:11, 26/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    И Розенталю ... весь текст скрыт [показать] [показать ветку]
     
  • 1.24, Аноним, 11:57, 25/10/2015 [ответить] [смотреть все]     [к модератору]  
  • +/
    тоже мне идея - периодически натыкался на такую проблему при копировании примеро... весь текст скрыт [показать]
     
     
  • 2.28, all_glory_to_the_hypnotoad, 12:43, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Стоит ли это понимать будто вы кодите в ворде Сценарий без ворда выглдяит как-т... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.37, Кукаретик, 15:41, 25/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +9 +/
    >Стоит ли это понимать будто вы кодите в ворде?

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

     
     
  • 4.68, Аноним, 17:29, 26/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Некоторые ещё и /etc/passwd в нем редактируют.
     
  • 3.40, systemd_anonymousd, 17:44, 25/10/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Да не так и редко попадается WordPress этим грешил раньше, по-моему Некоторые ... весь текст скрыт [показать]
     
  • 2.48, Michael Shigorin, 19:32, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    word, который press -- похоже, тоже ... весь текст скрыт [показать] [показать ветку]
     
  • 1.25, Аноним, 12:10, 25/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +/
    Не кормите троля
     
  • 1.26, Аноним, 12:29, 25/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +4 +/
    Мне больше всего бесит буквы С и C...
     
     
  • 2.38, Кукаретик, 15:43, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +3 +/
    Операторы, вбивая данные, так ошибаются ежедневно.
     
  • 1.27, all_glory_to_the_hypnotoad, 12:38, 25/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    > Кроме шуток над коллегами, замена символов может применяться для скрытия текста от автоматизированных систем разбора, механизмов цензурирования и поисковых систем.

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

     
  • 1.35, Аноним, 14:27, 25/10/2015 [ответить] [смотреть все]     [к модератору]  
  • +/
    с буквами с такое нередко случается совершенно случайно на макбуке в режиме ... весь текст скрыт [показать]
     
     
  • 2.36, Eklykti, 15:30, 25/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +6 +/
    > на макбуке в режиме "у каждого окна свой язык" переключение языка при переключении в окно происходит с задержкой

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

     
     
  • 3.49, Michael Shigorin, 19:34, 25/10/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > Think different!

    d1ff3r3n7, ага.

     
  • 1.51, Аноним, 20:03, 25/10/2015 [ответить] [смотреть все]     [к модератору]  
  • +/
    не почти все эти случаи можно в обратку проверить, другое дело что подобная пров... весь текст скрыт [показать]
     
  • 1.52, Аноним, 21:02, 25/10/2015 [ответить] [смотреть все]     [к модератору]  
  • +/
    highlight non ascii symbols highlight nonascii guibg DarkGreen ctermbg DarkGre... весь текст скрыт [показать]
     
  • 1.53, Аноним, 02:06, 26/10/2015 [ответить] [смотреть все]     [к модератору]  
  • +/
    класс, теперь легче помогать школьникам и студентам с напишите программу за мен... весь текст скрыт [показать]
     
  • 1.60, IMHO, 10:17, 26/10/2015 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    ну и свободка
     
  • 1.63, Аноним, 13:46, 26/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +/
    енжой йор юникод
     
     
  • 2.65, тоже Аноним, 14:19, 26/10/2015 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Для кроссплатформенных исходников нормальных вариантов только два: либо ansi, либо юникод.
    Все остальное гарантирует пляски с бубном на ровном месте.
     
  • 1.73, Аноним, 23:07, 26/10/2015 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Почему компиляторы не могут нормализовать?
     
  • 1.76, Аноним, 18:23, 27/10/2015 [ответить] [смотреть все]    [к модератору]  
  • +/
    Сдавайте курсачи в напечатанном виде.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor