Можно ли верить своим глазам? (Unicode в именах файлов)

Original author: Zhitao Zhou
  • Translation
Несколько дней назад один из наших пользователей прислал образец (SHA1: fbe71968d4c5399c2906b56d9feadf19a35beb97, определяется как TrojanDropper:Win32/Vundo.L). Это троян для фишинга с сайтов vk.com и vkontakte.ru, запросы на которые перенаправляются на 92.38.209.252 необычным способом.

Обычный метод перенаправления трафика — добавить запись в файл hosts, который находится в папке %SystemRoot%\system32\drivers\etc. Однако, когда мы открываем этот файл на заражённом компьютере, то там нет никаких записей для vk.com и vkontakte.ru:



Но если включить отображение скрытых файлов, то появляется ещё один файл hosts:



Мы видим два файла с одинаковым названием в одной папке. Но ведь одна директория не может содержать двух файлов с одинаковым названием. Если скопировать имена файлов в Notepad, сохранить как текст Unicode и открыть в Hex-редакторе, то появится следующая картина (верхняя строчка для первого файла hosts, нижняя — для второго):



В Unicode (UTF-16) символ 0x006F выглядит так же, как 0x6F в ASCII, где тот соответствует букве «o». Но что такое 0x043E в Unicode? Это можно посмотреть в таблице Unicode, вот её фрагмент.



В таблице 0x043E соответствует кириллическому символу, который выглядит так же, как английское «o». То есть настоящим файлом hosts на самом деле является скрытый файл, именно он используется операционной системой. Если открыть этот файл, то сразу видно отличие от фальшивого, это две строчки внизу на несколько экранов от начала:



Загадка разгадана.

Это уже не первый раз, когда мы обнаружили использование хакерами кодировки Unicode для вредоносных целей. В августе 2010 года один китайский хакер продемонстрировал приём, как использовать управляющие символы Unicode, чтобы убедить пользователей в безопасности файла. С помощью управляющего символа 0x202E (RLO) можно изменить порядок символов при отображении названия файла в Windows Explorer.

Например, вот потенциально опасный файл picgpj.exe



Если перед частью названия «gpj.exe» вставить управляющий символ, то порядок символов меняется и имя файла отображается в Проводнике уже иначе:



Хакеры обычно используют картинку в качестве иконки для этого файла. Неосторожный пользователь может принять её за фотографию и открыть двойным щелчком, тем самым запуская программу. Очевидно, этот приём бесполезен для программ с поддержкой Юникода, но пользователи не всегда сами могут распознать опасность.

Можно ли верить своим глазам? Получается, что не всегда.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 245

    –104
    Кэп!!!
      +5
      Мдя… (
        +1
        ыыы =)) какой жирный минус огрёб…

        А теперь по существу. Так раньше в dc++ ники подделывали… Тема кстати серъезная. Я правильно понимаю, что и в линухе так хулиганить можно будет?
          +4
          Так в Linux'е нормальные люди руками имена файлов набирают, и там сразу полезут когнитивные диссонансы :)
            +1
            Так в линухе нормальные люди автодополнением табом пользуются и никаких диссонансов!
            • UFO just landed and posted this here
            0
            > Так раньше в dc++ ники подделывали…

            Пиринговый (p2p) протокол файлообмена и соответствующая пиринговая сеть, о которой вы говорите, называется Direct Connect (или сокращённо DC). А DC++ — это всего лишь название одного (из множества) виндового клиента для файлообмена по протоколу Direct Connect. Не надо путать название сети/протокола с названием одного из клиентских приложений.
              –1
              разве там не было допила исходного протокола dc?
                +1
                Нет. Клиент DC++ совместим со всеми прочими клиентами для Direct Connect.
                Да даже, если в приложении DC++ и были какие-то допилы, то это разве повод называть протокол именем отдельного клиента?
                Мы же не называем Web или HTTP именем браузера Internet Explorer только потому, что они там в IE использовали некоторые «допилы исходного протокола».
                  +2
                  Ну, протокол oscar же вполне называют по имени клиента, и никто не путается.

                  Как я понимаю, «все прочие клиенты» нынче являются форками DC++.

                    +2
                    > Ну, протокол oscar же вполне называют по имени клиента, и никто не путается.

                    А кто протокол OSCAR называет по имени клиента? И какого вообще клиента, AIM что ли?

                    Раньше, когда сервисом ICQ владели его разработчики, израильская компания Mirabilis, у них действительно был свой ICQ-протокол. Но потом, когда этот IM-сервис купила американская компания AOL, то они перевели ICQ на свой протокол OSCAR, который уже до этого использовался ими в своём IM-сервисе AIM (AOL Instant Messenger). Но протокол OSCAR так и продолжил называться именем OSCAR, как в ICQ, так и в AIM.

                    > Как я понимаю, «все прочие клиенты» нынче являются форками DC++.

                    Это не так. Да и как вообще разные программы, написанные даже на разных языках программирования, могут быть форками?
                    Действительно есть несколько Direct Connect клиентов, основанных на коде клиента DC++: DCDM++, fulDC, RevConnect, CzDC, EiskaltDC. Но есть и другие совершенно независимые DC-клиенты, не основанные на DC++: MLDonkey, Shareaza, NeoModus Direct Connect, ShakesPeer, Valknut, DCTC, DC#, LDCC и др.

                    Поэтому нет никакого повода протокол Direct Connect называть именем клиента DC++.
                      –3
                      если бы он сказал DC, многие не знакомые с локальными сетями(вот у меня в доксисе нет такой вообще), могли бы не понять что это такое, а DC++ сразу понятно.
                        +10
                        Мы должны называть лопату лопатой, а полиморфонуклеарный лейкоцит — полиморфонуклеарным лейкоцитом. Бернард Диксон
                          +3
                          «Правитель [должен быть] правителем, сановник — сановником, отец — отцом, сын — сыном» (Конфуций, «Лунь юй», XII, 11).
                            +4
                            «Когда имена неправильны, суждения несоответственны; когда суждения несоответственны, дела не исполняются» (Конфуций, «Лунь юй», XIII, 3).
                        –1
                        Всё это заумное поучение, имхо, как минимум — некрасиво.
                  –1
                  Зануда
                  +5
                  В Linux не имея root'а хрен hosts переименуешь
                    +11
                    а в Windows переименуешь? ;)
                      0
                      Сколько пользователей Windows постоянно работающих с правами администратора? А сколько в Linux пользователей с root'овыми правами?
                        0
                        К сожалению, я не обладаю подобной статистикой. Но, извините, разве это проблема Windows? И да, даже с правами администратора в Win7 Вы не сможете изменить имя\атрибуты файла hosts без подтверждения.
                          0
                          А разве я где-то сказал, что это проблема Windows? Это проблема пользователей и их привычек. Не более того.
                          • UFO just landed and posted this here
                              0
                              Да, но это проблема Windows 10-и летней давности, почему-то об этом часто забывают
                                +1
                                Вот вы забыли, например, что решение этой бородатой проблемы появилось только два года назад. Конечно, далеко не все ещё перешли.
                                  +1
                                  … к тому же, решение стоит отдельных денег.
                                    0
                                    2? UAC появился в Vista, которая появилась в начале 2007.
                                      +1
                                      Если говорить про вот такие «не понравившиеся» населению решения, то я, например, с линуксом познакомился в 2000 году. Ещё до того, как появилась эта ваша хрюша.
                                    –1
                                    в windows как нельзя было работать без администратора, так и сейчас нельзя. В линуксе хоть и не всегда удобно, но можно.
                                      0
                                      Действительно, а люди так делающие — миф.
                                        0
                                        Наверное, им просто кроме гуглохрома, офисного пакета и фотошопа ничего не нужно.

                                        Мне — нужно.

                                        Более точно. В линуксе очень многие программы можно под себя собрать в домашнем каталоге пользователя.
                                        Многие программы специально обдумываются для ситуации работы из нескольких каталогов под разными пользователями.
                                        Есть хорошая поддержка одновременной работы разных версий на разных наборах базовых технологий (две одинаковые программы, одна собранная с одной реализацией работы со строками, а другая — с другой).

                                        При всем уважении к виндовсу, там с этим «всё плохо». Большинство приложений во время установки требуют администраторских прав, другие тянутся за админскими правами ради всякой мелочи. И уж точно нельзя пересобрать программу (большинство программ), если ее политика безопасности тебе не нравится.
                                          +2
                                          Не понимаю, конечно, как это все относится к дискуссии выше ну да ладно.
                                          Я работаю из под обычного юзера, и не испытываю при этом никаких проблем, и использую софта гораздо больше чем Вы описали выше. Проблема софта, требующего повышения прав не является проблемой ОС. Я могу привести элементарный пример: Acronis True Image — требует админских прав на каждый чих, хотя(как я подозреваю) ему дишь нужно backup privilege, и то, это нужно только сервису резервного копирования. Вот этот пример того, когда программисты пишут плохие программы. Хотя ОС предоставляет им большие возможности не делать этого.

                                          По-поводу Вашего первого абзаца: Все это легко реализуется через виндовые средства: пользователи через пользователей, несколько версий технологии через SxS и\или COM.

                                          Собирание программ не является распространенной практикой в Windows, хотя и не является запрещенной или не выполнимой. Собирайте open source под windows сами, в чем проблема?
                                            0
                                            Проблема, как вы верно заметили, в тенденции.
                                            Я, честно, не понимаю, зачем вообще нужны админские права на сабжевый файл hosts, что в windows, что в linux. Разные пользователи могут хотет иметь разный набор данных в hosts, и уж тем более они не должны каждый раз спрашивать у админа разрешения на это базовое действие.
                                              +1
                                              по моему, это сделано в интересах безопасности пользователя, исключительно. И это будет верно для большинства пользователей, тогда как гики могут найти обходной путь, если пожелают.
                                                –1
                                                ну, да. К чему веду-то: и в винде, и в линуксе стандартная система безопасности ужасна. Она разделяет все только на «пользователей» и «администраторов», и из этого автоматически следует, что время от времени пользователю будут нужны пава администратора. By design.

                                                Способы это обойти есть, но почему-то доступны только гикам. Особенно на Windows.

                                                Пример, как это могло бы быть чуточку лучше: есть общесистемный файл hosts, и у каждого пользователя есть собственный файл hosts. Если у пользователя нет своего hosts, используется общесистемный. Для собственного файла hosts по умолчанию стоит флаг «модификация только с предупреждением для всех пользователей во всех случаях». Те, кто уверен в чистоте своего софта, могут снять этот флаг нафиг, или вообще полностью, или только для каких-то конкретных пользователей и случаев.
                                                  0
                                                  Да нет же. Integrity levels в windows работают совершенно параллельно этим пользователям и администраторам. В некоторых дистрибутивах linux тоже есть стандартные изкоробочные системы безопасности, параллельные DAC, но они обычно не слишком десктопные (redhat, например).
                                              0
                                              С акронисом как раз проблем нет. Можно использовать загрузочный CD или при загрузке нажать F11.
                                              Проблемы возникают в самой WinXP на ровном месте. Попробуйте, например, из-под юзера открыть календарик из трея. В убунте с этим проблем нет.
                                              Или например при понижении прав до пользовательских винда автоматом снимает права на запись на диск D:. Зачем она это делает — неизвестно. Приходится вручную давать полный доступ юзеру к диску D:.
                                                0
                                                Причем тут диск с акронисом? Я говорю об обычной, настольной версии.
                                                И еще раз, причем тут Windows XP? Я говорю о современном Windows, а не об ОС, которой уже больше 10 лет. Ubuntu еще в зародыше не было, когда XP писалось и выпускалось.
                                                Или например при понижении прав до пользовательских винда автоматом снимает права на запись на диск D:. Зачем она это делает — неизвестно. Приходится вручную давать полный доступ юзеру к диску D:.

                                                Этого я не понял, Вы вообще в курсе как работают права в Windows? И если ответ «да», то потрудитесь объяснить как это соотносится с Вами написанным?
                                                  0
                                                  > Я говорю о современном Windows, а не об ОС, которой уже больше 10 лет.
                                                  WinXP пока нет 10 лет. А последний сервиспак был выпущен в 2007г.

                                                  > Ubuntu еще в зародыше не было, когда XP писалось и выпускалось.
                                                  Убунты не было, но Gnome 1.0 был выпущен в 1999г. Так что про зародыша — спорно.

                                                  > Вы вообще в курсе как работают права в Windows?
                                                  Вы не ответили на вопрос: зачем ограничивать юзеру права на запись D:. Чем это может быть опасно для системы?
                                                    0
                                                    Что значит «ограничивать юзеру права на запись»? В Windows юзеров можно создавать и давать им любые права, которые Вы хотите. В этом контексте я не понимаю Вашего вопроса, у Вас есть некий юзер с ограниченными правами и вас это ен устраивает? Дайте ему необходимые права и проблема исчезнет.
                                                    WinXP пока нет 10 лет. А последний сервиспак был выпущен в 2007г.

                                                    Да, я ошибся на 10 лет :) А в SP Microsoft исправляет проблемы стабильности и безопасности, и уж ни как не меняет философию и юзабилити. Поэтому сравнивать выпускающиеся SP с развивающимся дистрибутивом некорректно, как минимум.
                                                      0
                                                      *на 10 дней
                                              0
                                              для установки требуются админские права чтобы писать в programm files.

                                              пока ни разу не сталкивался с приложением, которое требует админские права кроме случаев установки/обновления. можно пример такой программы?
                                                +1
                                                1) Программу можно устанавливать не в Program Files, а в домашний каталог пользователя. Например, в C:/Users/rednaxi/Games.
                                                Правильно написанный установщик не будет просить админских прав для установки в такую директорию, хотя многие установщики — просят.

                                                2) значит мало сталкивался с программами ;) Sad but true.

                                                Кстати, ты не сможешь воспользоваться программой, пока тебе кто-нибудь не даст на это права. Так что если программа с самого начала требует права на установку, абсолютно уже не важно, требует ли она их для дальнейшей работы.
                                                  0
                                                  ну да, на работе установкой/обновлением программ занимаются системные администраторы, пользователям такие права ни к чему.

                                                  дома ты сам себе сисадмин.

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

                                                  если ты работаешь с софтом, который постоянно требует админские права то тут я вижу два варианта — либо это криво написанный софт, а если ему еще и давать права администратора то это как обезьяна с гранатой — я бы не стал таким пользоваться, либо это софт, использующий низкоуровневые возможности, например hardware monitor, но такой софт не входит в набор программ для обычного пользователя на каждый день.

                                                  если же ты не обычный пользователь то будь готов к нестандартным решениям, вроде постоянной работы под администратором с выключенным UAC. но это — твоя проблема, а не проблема ОС. ос «из коробки» должна удовлетворять большую часть пользователей, и она это прекрасно делает.
                                                    0
                                                    > ну да, на работе установкой/обновлением программ занимаются системные администраторы, пользователям такие права ни к чему.

                                                    Я хочу сам выбирать, с какими программами мне работать и как. Поэтому у меня на работе установлен Linux (хотя на моей работе Linux иметь очень неприятно и неудобно, Windows все равно приходится иметь в виртуалке — но самолично купленную, и админами никак не контролирующуюся). Попробуй, может, тоже оценишь вкус свободы :)
                                                      0
                                                      если бы все могли сами выбирать с какими программами работать то это была бы не организация а ад для системного администратора
                                                        0
                                                        наши админы ничего не понимают в линуксе (вендоадмины же), поэтому звать их на помощь абсолютно бесполезно. Так что наличие линукса, к которому их никогда не зовут, и пользователя, который всегда может решить любые локальные проблемы, только экономит их время :)
                                                          0
                                                          если пользователь. сам может решить проблемы вида «почему у меня календарь перестал синхронизироваться с exchange» то ради бога пусть пользуется чем угодно.

                                                          но не надо всем в округе давать советы переходить на другую ос потому что в твоем случае это. ты же не знаешь уровень собеседника, а также какое ПО используется у него в организации. далеко не каждый полезет разбираться с исходниками линукс программ чтобы понять почему у него глючит ldap авторизация или что то не синхронизируется. более того, время, потраченное сотрудником на решение этой проблемы — это впустую потраченное время, ведь проблемы могло и не быть если бы человек пользовался принятыми в организации решениями.
                                                            –1
                                                            В качестве первого шага, нужно построить такую инфраструктуру, в которой почта и календарь работают вне зависимости от операционной системы клиента и версии клиентского ПО. Неважно, мак у меня, линукс или винда, я всегда должен иметь хороший доступ к любым ресурсам. Сделать это — уже задача админа.

                                                            > более того, время, потраченное сотрудником на решение этой проблемы — это впустую потраченное время

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

                                                            пусть твои админы осилят настроить веб-интерфейс. А если админ не справляется с exchange, можно, например, выкинуть exchange и поставить что-нибудь более простое.
                                                    0
                                                    1. Трезвонят только инсталляторы от старого софта. Весь новый софт при инсталляции просит права только если и вправду надо. Ставьте в home и не будут вас ни о чём просить.
                                      +2
                                      По умолчанию при установке системы пользователь обладает правами администратора и мало кто задумывается о смене прав (сисадминов предприятий в расчет не беру, я о домашних пользователях)
                                        –2
                                        про UAC слышали?
                                          0
                                          UAC появился только в Висте, к тому же часто его отключают, чтоб не мозолил глаза запросами
                                    0
                                    И файл скрытым не сделаешь без точки в начале
                                      +6
                                      > И файл скрытым не сделаешь без точки в начале

                                      Для файлового менеджера Nautilus можно так:
                                      1. В директории создать файл с именем .hidden
                                      2. Внутри этого файла перечислить имена некоторых файлов и директорий из текущей директории, которые хотим скрыть, (каждое имя в отдельной строке).
                                      3. Перезагрузить содержимое директории (Ctrl+R)
                                      4. Теперь в этой директории в Nautilus будут скрываться не только файлы с именами, начинающимися на точку, но и все файлы/директории, перечисленные в файле .hidden
                                      5. Для отображения всё так же Ctrl+H
                                        +1
                                        Не пользуйтесь наутилусом, что тут ещё можно посоветовать. Это не просто ненужная, а даже вредная возможность.
                                    0
                                    В Линухе можно создать файл с переводом строки в имени.
                                      +6
                                      Да в Linux вообще можно любые символы в именах файлов использовать кроме / (слэш). Можно даже символы, запрещённые для имён папок/файлов в Windows: \:*?<>" И мне это нравится.

                                      Это действительно бывает нужным. Например, в названиях песен/фильмов нередко можно встретить символы кавычки, знака вопроса и двоеточего. Вот для примера названия нескольких фильмов с такими символами в названии:
                                      Терминатор 2: Судный день
                                      Star Wars: Episode VI — Return of the Jedi
                                      Бэтмен: Начало
                                      Пароль «Рыба-меч»
                                      Who Am I?
                                      Давайте потанцуем? (Shall We Dance?)

                                      Это просто несколько названий по памяти для примера, реально я неоднократно сталкивался с таким в именах фильмов и песен.
                                      В Linux я свободно без заморочек их использую в названии файла или папки, а в Windows я чувствую себя ущербным в возможностях именования файлов и должен выдумывать какие-то извраты, чтобы избежать этих символов в именах файлов или заменить их на что-то другое.
                                        0
                                        Чую, что даже переводчики при переводе названия фильма на русский подумывают об этом :)
                                          0
                                          зато в линухе нельзя в имени файла использовать символ "/". Никак не выходит туда его впихать
                                            0
                                            Мне в голову пришли лишь 2 случая когда этот символ может понадобиться: попытка записать дробь (1/8, 32/48) либо олдскул-машинистка, не привыкшая ставить скобки и по-старинке набирающая как на печатной машинке /таким вот образом/

                                            Правда еще меньше применений приходит в голову по поводу обратного слэша.
                                              0
                                              я собственно заметил это, когда хотел создать файл с именем-CIDR-сетью, типа 172.30.25.16/28
                                              0
                                              Возьмите что-то другое из юникода, например, символ с кодом 0x2215 (в utf8 — 0xE2 0x88 0x95) — ∕ — выглядит почти как /. А в некторых шрифтах одинаково.
                                                0
                                                ну одним нажатием не наберёшь — так только хуже
                                                  0
                                                  Compose key — если сильно надо.
                                              +1
                                              двоеточего [x]
                                                0
                                                В винде можно использовать любые символы. Вот только шелл тогда «сломается» на таких файлах, поэтому сделать такие имена проблематично. Но можно.
                                              0
                                              notepad %windir%\drivers\etc\hosts

                                              Серьезная, говорите?
                                                +1
                                                В линухе назначение файла определяется по его сигнатуре а не по расширению. Посему как бы файл ни был назван — всегда видно исполняем он или нет.
                                                  0
                                                  В линуксе у исполняемых файлов нет иконки.
                                                    0
                                                    в линуксе, вообще говоря, ни у каких файлов нет иконок
                                                      0
                                                      Ну, в винде внедрённые иконки тоже только у исполняемых файлов. А остальные файлы имеют сопоставление по расширению. В линукс — по mime типу обычно.
                                                        0
                                                        Вот тут можно развести дискуссию на тему внедрённых в JPEG миниатюр и т. п. :)
                                                          0
                                                          1. Миниатюра — не есть иконка.
                                                          2. Миниатюра — она хоть в винде, хоть в линуксе есть — это свойство формата, а не ОС.
                                                    0
                                                    Современные файловые менеджеры в *DE определяют тип файла по суффиксу. Просто потому, что это быстрее и надёжнее сотен обращений к libmagic.
                                                    Определение по сигнатуре включается только при отсутствии суффикса.
                                              +23
                                              Несколько месяцев назад справился с таким же. Мораль: отображайте скрытые файлы
                                              • UFO just landed and posted this here
                                                  +20
                                                  Ага, а перед этим проверить параметр
                                                  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
                                                  на предмет того, там ли система будет искать файл.
                                                    +40
                                                    ИМХО, лучше:
                                                    sudo vi /etc/hosts
                                                      +14
                                                      Смореть же.
                                                      less /etc/hosts
                                                        –10
                                                        man visudo
                                                          +6
                                                          Не visudo, а sudoedit.
                                                            +13
                                                            А зачем вам в данном случае потребовалось редактировать список sudoer-ов?
                                                            +2
                                                            я sudo nano /etc/hosts обычно делаю :)
                                                          +26
                                                          Отображение скрытых файлов не спасет от заражения.
                                                          Мораль: не сидите под рутом.
                                                            +6
                                                            Мораль: выключить комп и пойти гулять.
                                                              +2
                                                              Мораль!
                                                                +4
                                                                На прогулке воздержитесь от сомнительных связей?
                                                            0
                                                            а мне попадалось такое, что было 2 hosts, но один из них, фэйк, был текстовый, а нормальный был скрыт.
                                                            +3
                                                            Во времена ДОСа — у меня был специальный шрифт (сначала в руссификаторе потом в видеокарте) там английсике буквы были «тонкими и неровными», как раз чтобы отличать их от русских.
                                                            Жаль что сейчас такое разделение слишком затратно делать самому.
                                                              +6
                                                              Затратно ли?

                                                              Всегда можно зайти на FontStruct и нарисовать себе шрифт — конечно, это если время есть.
                                                                +24
                                                                Векторный?
                                                                  +37
                                                                  Гипертекстовый.
                                                                    +10
                                                                    фидошрифт
                                                                      +5
                                                                      combo!
                                                                        0
                                                                        Вы все пишете это на правах издевательского глумления, даже не догадываясь, что на самом деле мне доводилось в позапрошлом (2009) году экспериментировать с созданием векторного шрифта для Фидонета именно на FontStruct. С грустью вижу, что самые обыкновенные высоты моей творческой фантазии для всех вас не только не досягаемы, но даже и не мыслимы, так что до смешного доходит.
                                                                          +3
                                                                          мода на глумление над ВГФ прошла тыщу лет назад. Большинство ораторов никак не участвовало в событиях и узнало о шутке из Лурка. Мне доставляет немалую боль наблюдать все эти wannabe-комментарии… :( не представляю, что это за ад: когда к каждому твоему слову дописывают что-то векторное и гипертекстовое, не сохраняя при этом никакого исходного значения
                                                                            0
                                                                            Я-то спрашивал без задней мысли. Мне не нужен растровый шрифт. По этому и спросил про векторный. Из интерфейса и примеров — это не понятно.
                                                                            0
                                                                            Я-то спрашивал без задней мысли. Мне не нужен растровый шрифт. По этому и спросил про векторный. Из интерфейса и примеров — это не понятно.
                                                                  +6
                                                                  А еще во времена ДОСа был «волшебный» символ, вводимый по комбинации зажатого Alt и 255 (на цифровой клаве), который позволял шокировать непосвященных, создавая «безымянные» (или с «повторяющимися» именами) каталоги\файлы.
                                                                    0
                                                                    и сейчас же вроде работает
                                                                      0
                                                                      Можно было ещё использовать символы с кодом 8 (backspace) в имени файла для скрытия файлов.
                                                                        0
                                                                        У менея на первом курсе комрад написал нехитрый код — меняющий пробелы на символ с кодом «255» в файлах с раширением *.PAS
                                                                        И запустил его в лабе по информатике на сетевом диске с лабораторными работами :)
                                                                        +2
                                                                        В Linux'е достаточно просто выбрать шрифт только с английскими буквами, все остальные символы будут браться из шрифта по-умолчанию (sans-serif).
                                                                      • UFO just landed and posted this here
                                                                          +11
                                                                          очевидно статья ориентирована на аудиторию, у которой нет русских буковок на клавиатуре ) топик-перевод же
                                                                            +1
                                                                            Ага. Они видимо кроме латиницы и юникода больше других кодировок не знают.
                                                                              +1
                                                                              И незачем знать, должна быть только UTF-8.
                                                                                0
                                                                                Нет, должны быть как минимум три формы юникода: UTF-8 и оба варианта UTF-32. И даже юникода нехватет на запись некоторых имён собственных в Японии и Китае.
                                                                                  0
                                                                                  > оба варианта UTF-32

                                                                                  может речь всё же про UTF-16 (big-endian и ittle-endian)?
                                                                                    0
                                                                                    А смысл? Лишние заморочки с суррогатными парами в софте?
                                                                                    UTF-32 нужен для внутренней обработки, UTF-8 — для передачи. А UTF-16 обязан популярностью в основном UCS-2, с которой он обратно совместим.
                                                                            +31
                                                                            просто автор — нерусскоговорящий, то, что для нас «русская буква 'о'», для него «какой-то непонятный юникодный символ»
                                                                              +1
                                                                              или просто очень молодой. Старички-то точно знают.
                                                                              +15
                                                                              Этим даже чиновники пользуются при организации тендеров на сайтах, вот где нанотехнологии и модернизация )
                                                                                +6
                                                                                это не мо-, а чмо-дернизация
                                                                                –2
                                                                                Бедный Lifelover должен был написать свою мысль более развернуто :)
                                                                                  +2
                                                                                  Просто всех уже утомил тупой троллинг Alizar, особенно от тех, чей вклад в Хабр нулевой.
                                                                                  0
                                                                                  И она не обязательно русская.
                                                                                    0
                                                                                    С hosts — да. А вот второй пример с exe.jpg — именно unicode.

                                                                                    Кстати, еще можно с вредоносными целями воспользоваться особенностями NTFS. ФС различает регистр символов, а ОС — нет. И извернувшись, можно создать в одной директории файлы Hosts и hosts.
                                                                                      –1
                                                                                      ОС тоже различает, насколько я слышал. UI не различает.
                                                                                        –1
                                                                                        Попробуйте создать подобные имена, например, из командной строки.
                                                                                          0
                                                                                          во-первых, командная строка — это разновидность UI. Конкретно cmd.exe регистр не различает.

                                                                                          во-вторых — пожалуйста, ставим Interix POSIX subsystem (т.е. SUA) и иэ этой командной строки (kshl) — хоть два раза

                                                                                          Да и вообще, сам факт того, что на базе ядра Windows можно развернуть POSIX-систему, намекает на то, что внутренние части системы способны различать регистр имён файлов. ФС способна, ядерные модули способны. Не способны только UI и внешние API.
                                                                                            0
                                                                                            простите, опечатался. дефолтный шелл интерикса — korn shell, т.е. ksh
                                                                                        0
                                                                                        Можно, из-под линукса, например — бывало случайно создавал. Кстати, винда не приходит от этого в полный ужас, правда реально доступен был только один файл/каталог по обеим именам, второй просто в списке висел. Переименовать — и всё на месте. Хуже если в имя попадёт двоеточие или обратный слеш — такой файл недоступен получается.
                                                                                          0
                                                                                          Доступен из NativeAPI.
                                                                                            0
                                                                                            Вполне логично. Я не особо вдавался в этот вопрос, да и с Native API почти не сталкивался (только при работе с процессами/потоками и памятью что-то, помнится, мучал). Я даже не проверял доступны ли эти файлы при указании префикса "\\?\" — там преобразования отменяются. А проверять — винда упала и переустанавливать лень.
                                                                                      –9
                                                                                      Отличная статья, огромное спасибо!

                                                                                      Лично сталкивался с проблемой подобного рода, однако теперь понял как так два «одинаковых» файла появляются в системе.
                                                                                        +14
                                                                                        Вы не поверите, но первое, что приходит в голову, когда вижу два «идентичных» имени в папке — кириллица.
                                                                                          +3
                                                                                          Это нам, с вечным цирком с кодировками, такое привычно. А Когда ты про кодировки в лучшем случае знаешь что «они есть» — сразу не допрёшь.
                                                                                            0
                                                                                            Не ну я как-бы знаю что они есть… если вижу файл hosts открываю его и там ничего нет, то ищу проблему дальше… и надо еще вспомнить что скрытые файлы тут не включены…
                                                                                              0
                                                                                              Надо включить их раз и навсегда и не париться. Правда если кто-смог писать в хостс, то уж пользовательские настройки поменяет.
                                                                                                +1
                                                                                                был вирус, который вырубает отображение скрытых файлов так, что через гуевые настройки не включается. То ли в реестре что-то править надо, то ли даже бинарник какой-то патчить, чтобы после него отображение заработало.
                                                                                                  +3
                                                                                                  Use windows more ;)
                                                                                        –8
                                                                                        Вначале подумал, что в примере с картинкой .jpg удалось добиться запуска файла с расширением .jpg. А это, оказывается, скрытые файлы выключены…
                                                                                        Не знаю, как можно жить со скрытыми файлами. )
                                                                                          +42
                                                                                          Тут не скрытый файл, тут круче. На самом деле это файл .exe, но у него в имени четвертым символом после pic стоит управляющий символ, который последующю строку заставляет выводиться справа налево, (gpj.exe -> exe.jpg), и вам кажется что это .jpg, еще и иконку туда всобачили.
                                                                                            +47
                                                                                            Метод шикарен.
                                                                                              –11
                                                                                              О, как. То есть, если скрытые файлы включены, то оно все равно будет выглядеть как .jpg?
                                                                                                +12
                                                                                                Так он даже и не скрыт. Наоборот, пользователь должен этот файл увидеть и заинтересоваться, что это за картинка. О скрытых файлах речь шла только в первой части статьи, когда требовалось скрыть оригинальный hosts, чтобы вместо него пользователь увидел фиктивный hоsts (с русской «о»).
                                                                                                +3
                                                                                                Когда карма ниже нуля, и нет возможности использовать теги, так можно делать ̶з̶а̶ч̶ё̶р̶к̶и̶в̶а̶н̶и̶е̶

                                                                                                  и цитирование
                                                                                                ͛͛͛͛͛͛͛͛
                                                                                                  +4
                                                                                                  У меня квадратики.
                                                                                                    0
                                                                                                    Android?
                                                                                                    Linux?
                                                                                                      0
                                                                                                      WinXP, Chrome — квадратики.
                                                                                                        0
                                                                                                        Chrome, Mac OS X Lion — зачёркивание сработало немного криво, вертикальная черта сломалась:
                                                                                                        0
                                                                                                        Ubuntu — зачёркнуто.
                                                                                                          0
                                                                                                          А цитаты вообще нет.
                                                                                                        –1
                                                                                                        IE?
                                                                                                          +1
                                                                                                          Windows XP, Google Chrome 13.0.782.112 m
                                                                                                          Кодировка — UTF-8

                                                                                                          image
                                                                                                            0
                                                                                                            У меня в андроиде такие же квадратики, а в Firefox@WindowsXP рисует так:
                                                                                                              0
                                                                                                              а у меня и firefox@linux рисует нормально
                                                                                                            • UFO just landed and posted this here
                                                                                                          0
                                                                                                          > Когда карма ниже нуля, и нет возможности использовать теги

                                                                                                          Благодаря несовершенству хабра-парсера, HTML-теги на Хабре можно использовать при любой карме.
                                                                                                            0
                                                                                                            какой символ для зачёркивания?
                                                                                                              +1
                                                                                                              ̶
                                                                                                                +3
                                                                                                                5 баллов.
                                                                                                                А какой код?
                                                                                                            0
                                                                                                            Попытался сделать. Вот здесь есть этот символ: pic‏gpj.exe. Но на моей системе (Win7) почему то латинские символы не переворачивает. Вот цифры переворачивает…
                                                                                                              0
                                                                                                              А вот символ 0x202E работает и с буквами… Ужас!
                                                                                                              +1
                                                                                                              первый раз про такое услышал)
                                                                                                                +4
                                                                                                                Вот пример как это работает в вебе http://goo.gl/jkuUV.
                                                                                                                Но самым эпичным был ласипан.
                                                                                                                0
                                                                                                                В статье как раз сделали наоборот взяли экзешник и в имя файла вставили символ rlo.
                                                                                                                Видимо, чтобы не все догадались как это использовать можно.

                                                                                                                А вы секрет раскрыли, как можно это использовать.
                                                                                                                  0
                                                                                                                  ан нет, я перепутал, всё как у вас написано.
                                                                                                                +5
                                                                                                                Элегантный, старый метод. Очень удобно еще Google AdWords так обманывать, когда создаешь объявления с неугодными ему словами
                                                                                                                  0
                                                                                                                  А на какие слова он может ругаться?
                                                                                                                    +2
                                                                                                                    Например названия фильмов, медицинские препараты, сигареты и алкоголь. Слово «скачать» еще очень не любит, хоть и пропускает, но предварительно отправляет объявление на ручную проверку, а если заменить «с» на «с», то проверка проходит автоматически.
                                                                                                                    +1
                                                                                                                    Вроде ещё на сайте госзакупок использовался этот метод, чтобы «нужные» тендеры не находились поиском.
                                                                                                                    +5
                                                                                                                    Напомнило, как мы в лицее все компьютеры переименовали в COMP1
                                                                                                                      –10
                                                                                                                      Когда чинишь Windows через linux livecd понимаешь всю прелесть консоли.
                                                                                                                      nano /mnt/system32/drivers/etc/hosts
                                                                                                                      и ничто, не спасет.
                                                                                                                        +15
                                                                                                                        так тоже: notepad.exe «c:\windows\system32\drivers\etc\hosts»
                                                                                                                          +1
                                                                                                                          Искал этот комментарий :-)
                                                                                                                          Я всегда именно так открываю.
                                                                                                                          –4
                                                                                                                          Опечатался в адресе простите.
                                                                                                                          насчет notepad — если ты работает с графическим окружением и редактором в Windows, тебе привычнее открыть через проводник.
                                                                                                                            +3
                                                                                                                            Тоже самое можно сказать и про Nautilus и Dolphin и мой любимый MC.
                                                                                                                            Просто надо честно сравнивать: или открытие «щелчком» или набранный вручную полный путь к файлу.
                                                                                                                            0
                                                                                                                            И, ничто, не, спасёт.
                                                                                                                            0
                                                                                                                            Только что текстовый файл test.txt на рабочем столе, в имя вставил символ ALT+8238
                                                                                                                            В итоге ВСЕ файлы на рабочем столе переименовались в test.
                                                                                                                            Windows 7 SP1, 64bit.

                                                                                                                            Скрин — rghost.ru/17714881.view
                                                                                                                              +1
                                                                                                                              Ещё и кеш иконок слетел.
                                                                                                                                +13
                                                                                                                                и штаны пропали
                                                                                                                                  –4
                                                                                                                                  А ещё комп в клочья, и брат умер. Пишу с телефона!
                                                                                                                                  0
                                                                                                                                  У меня нормально. Вот такое название: w‮fig‫.exe

                                                                                                                                  Только вставлял без ALT.
                                                                                                                                  0
                                                                                                                                  Первый раз долго искал hosts в win7, висту как-то перескочил )
                                                                                                                                    0
                                                                                                                                    После линукса искали, что ли? Он как лежал в %windir%\system32\drivers\etc\ в XP, так и в семёрке там остался.
                                                                                                                                  +1
                                                                                                                                  баянистый метод обмана матфильтра)
                                                                                                                                    +1
                                                                                                                                    А троян, между тем, кажется что весьма распространен. Только что помогла решить подруге такую проблему.
                                                                                                                                      0
                                                                                                                                      Уже раз 5-6 встречал его на абсолютно разных компах. Пришлось даже bat-ник для такого случая написать
                                                                                                                                      +11
                                                                                                                                      На что только люди не идут, чтоб не убирать у юзера права админа…
                                                                                                                                        +1
                                                                                                                                        На что только люди не идут, чтобы взять права админа, даже не имея на то необходимости. Категорию советчиков «отключить надоедливый UAC» и «запустить %proram_name% от админской учетки» я даже не беру в расчет — это совсем клинические идиоты.
                                                                                                                                          +2
                                                                                                                                          Но некоторые проги, особенно старые работают только под админом, поэтому совет «запустить %proram_name% от админской учетки» может быть вполне оправдан.
                                                                                                                                            +1
                                                                                                                                            так «прогнаме», а не «ui shell»
                                                                                                                                              0
                                                                                                                                              Этот дают я слышу направо и налево. А всего лишь надо выдать права на запись в конкретную папку — как, например, DC-клиенты Flylink, ApexDC или StrongDC. По-умолчанию, папка незавершенных загрузок у них находится в папке клиента — то есть в Program Files. Новички часто спрашивают почему клиент не качает — ему советуют запустить с админскими привилегиями. А достаточно было изменить настройку временной папки или выдать права на запись в существующую. И такое — сплошь и рядом.
                                                                                                                                                +1
                                                                                                                                                > А всего лишь надо выдать права на запись в конкретную папку

                                                                                                                                                А иногда ещё права на какую-то ветку реестра.
                                                                                                                                                  0
                                                                                                                                                  Возможны варианты, конечно, но очень часто достаточно прав на запись в папку.
                                                                                                                                                  +1
                                                                                                                                                  Незнакомой софтине проще дать рутовские права, чем искать куда и чего она собирается писать и не получается. И вроде даже утилиты типа FileMon не помогут, они следят за изменением ФС, а не за функциями открытия файла.
                                                                                                                                                    –2
                                                                                                                                                    Объяснять долго и нудно. У нубов возникает сразу масса вопросов, а разжёвывать всё с нуля дураков нет. Советуют-то в основном не для того, чтобы помочь проблему решить, а чтобы юзер не ныл и не флудил.
                                                                                                                                                      +1
                                                                                                                                                      вот он, «русский менталитет (тм)»

                                                                                                                                                      нужно нубов приучать к хорошим практикам, а не решениям «на, отстань»
                                                                                                                                                        +1
                                                                                                                                                        После десятого раза это затрахивает однообразностью. В конце концов, гуглить нубам никто не запрещает.
                                                                                                                                                        Впрочем, лично вы можете приучать кого угодно к чему угодно в своё свободное время. Но не вам меня упрекать.
                                                                                                                                                    +1
                                                                                                                                                    если эти проги — казуальные или олдскульные игры — играйте в виртуалке или на системе установленной на соседнем разделе.
                                                                                                                                                    Если это бизнес-система — есть повод пересмотреть отношения с разработчиком (вплоть до разрыва)
                                                                                                                                                0
                                                                                                                                                Подскажите плз как вставить этот упровляющий символ 0x202E (RLO) в имя файла, что-то не получается у меня
                                                                                                                                                  0
                                                                                                                                                  ответил в личку.
                                                                                                                                                    0
                                                                                                                                                    firebug ступил с кавычкой:

                                                                                                                                                      0
                                                                                                                                                      блин, запостил не туда
                                                                                                                                                    0
                                                                                                                                                    Встречался с таким, только в другом виде
                                                                                                                                                    svchost.exe
                                                                                                                                                      0
                                                                                                                                                      если в hosts только «о» поменять можно, то тут просто раздолье)
                                                                                                                                                    • UFO just landed and posted this here
                                                                                                                                                        0
                                                                                                                                                        ‮gpj.lirGdekuN.exe
                                                                                                                                                          +2
                                                                                                                                                          Вот эту строку сложно выделить
                                                                                                                                                          somestring‮gpj.lirGdekuN.exesomestring
                                                                                                                                                          • UFO just landed and posted this here
                                                                                                                                                            +2
                                                                                                                                                            Таки, наверное, Naked, потому что Nuke это кое-что другое :)
                                                                                                                                                              +4
                                                                                                                                                              Nuked Girl это girl после Дюка Нюкема.
                                                                                                                                                        • UFO just landed and posted this here
                                                                                                                                                            +12
                                                                                                                                                            Только линуксу насрать на расширение файла :) Ему +x подавай
                                                                                                                                                            • UFO just landed and posted this here
                                                                                                                                                                +8
                                                                                                                                                                >так а кто мешает поставить +x.

                                                                                                                                                                noexec в /etc/fstab
                                                                                                                                                                • UFO just landed and posted this here
                                                                                                                                                                +4
                                                                                                                                                                Только там исполняемые файлы не идентифицируются по расширению, так что это бессмысленно :)
                                                                                                                                                                  +1
                                                                                                                                                                  Я всегда буду обновлять комментарии перед постингом…
                                                                                                                                                                • UFO just landed and posted this here
                                                                                                                                                                  +4
                                                                                                                                                                  А можно как-нибудь набрать 0x202E (RLO) с клавиатуры, по типу Alt+Num1 = ☺?
                                                                                                                                                                    0
                                                                                                                                                                    Должно быть Alt+202e, но у меня не получается.

                                                                                                                                                                    Можно попробовать в WordPad’е, используя шрифт Arial набрать 202e, нажать Alt+X, написать например „abc” и сохранить файл в Юникоде. Потом, открываем сохранённый файл и увидим „cba”. Если хотим тот-же эффект на лету, открываем сохранённый файл в Notepad++ и попробуем что-нибудь написать.
                                                                                                                                                                      0
                                                                                                                                                                      можно в Firebug'е строки эти писать.
                                                                                                                                                                      0
                                                                                                                                                                      Во времена DOS в autoexec.bat часто последней командой была nc. Забавой было заменить c на русскую с.
                                                                                                                                                                        +1
                                                                                                                                                                        1. Создать(или поменять) строковое значение(REG_SZ) EnableHexNumpad в ветке реестра HKEY_Current_User/Control Panel/Input Method на «1»
                                                                                                                                                                        2. Нажать Alt
                                                                                                                                                                        3. Ввести + с нумпада
                                                                                                                                                                        4. Ввести юникодовое hex-значение
                                                                                                                                                                        5. Отпустить Alt


                                                                                                                                                                        скатал отсюда
                                                                                                                                                                          +2
                                                                                                                                                                          Очевидно, этот приём бесполезен для программ с поддержкой Юникода, но пользователи не всегда сами могут распознать опасность.


                                                                                                                                                                          В каком смысле? Explorer — программа с поддержкой юникода, как раз и является орудием этого эксплоита — отображая файл с одним расширением а по двойному клику используя другое. В той же консоли windows команда «dir» покажет этот файл как он есть с символом "?" вместо юникодного RTL.
                                                                                                                                                                          • UFO just landed and posted this here
                                                                                                                                                                            0
                                                                                                                                                                            а еще можно в URL такое использовать ;)
                                                                                                                                                                            все популярные браузеры давно поддерживают отображение юникода в адресной строке
                                                                                                                                                                            +1
                                                                                                                                                                            Всегда отсылаю тому, кому нужна помощь с hosts, BAT-файл со следующим содержимым:

                                                                                                                                                                            @echo off
                                                                                                                                                                            echo #comment > %SYSTEMROOT%\system32\drivers\etc\hosts


                                                                                                                                                                              –3
                                                                                                                                                                              test
                                                                                                                                                                                0
                                                                                                                                                                                Вот не могу понять, где вы вирусы берете?
                                                                                                                                                                                  +13
                                                                                                                                                                                  Общая схема примерно такова:

                                                                                                                                                                                  wget virussite/virus.tgz && tar xvzf virus.tgz
                                                                                                                                                                                  # или git clone git://virus.hub//new-virus/virus.git
                                                                                                                                                                                  cd virus
                                                                                                                                                                                  make && sudo make install
                                                                                                                                                                                  sudo virus


                                                                                                                                                                                  Немного желания, настойчивости, и всё получится!
                                                                                                                                                                                    +6
                                                                                                                                                                                    ждём ебилдов
                                                                                                                                                                                      +6
                                                                                                                                                                                      А потом как обычно: «А у меня вирус не запускается!», «Вирус не компилируется, посмотрите вывод...» и т.д. Вечно в этом Linux'е ничего не работает ;)
                                                                                                                                                                                      • UFO just landed and posted this here
                                                                                                                                                                                      +2
                                                                                                                                                                                      Gentoo?)
                                                                                                                                                                                      Горазд проще
                                                                                                                                                                                      $ sudo apt-get install virus
                                                                                                                                                                                      или
                                                                                                                                                                                      $ sudo yum install virus
                                                                                                                                                                                        0
                                                                                                                                                                                        в генту было бы emerge virus. А поскольку он наверняка был бы замаскирован, то сначала emerge virus --autounmask-write, потом etc-update и потом снова emerge virus
                                                                                                                                                                                          0
                                                                                                                                                                                          только не etc-update, а dispatch-conf :)

                                                                                                                                                                                          // привет из будущего! :)
                                                                                                                                                                                        +4
                                                                                                                                                                                        Вы еще забыли побороться с неудовлетворенными депенденсами, написать небольшой патчик, поковыряться в конфиге и отослать багрепорт разработчику а заодно добить просьбой мерджнуть ваш форк в основную ветку ;)
                                                                                                                                                                                        • UFO just landed and posted this here