Перейти к содержанию

Обфускация текста


Рекомендуемые сообщения

Всем привет!

Попался мне файл autorun.inf, который Касперский детектирует как Net-Worm.Win32.Kido.ir. В сети есть его описание. Файл autorun.inf содержит обфусцированный текст, перемешивая мусор с "полезным" кодом, чтобы его скрыть.

Но почему винда, обрабатывая этот текст, отбрасывает мусор? Не понимаю, всю голову сломал.

Файл имеет сигнатуру FFFE, то есть говорит о том, что его текст в формате UTF-16 (LE). Но что мусор, что нужный текст вроде как имеют правильный формат. Как это происходит?

Безымянный.png

Ссылка на комментарий
Поделиться на другие сайты

Задал ваш вопрос нейросети, получил такой ответ:

Спойлер

Файл `autorun.inf` с сигнатурой `FF FE` действительно является UTF-16 LE (Unicode), и его обработка Windows может показаться загадочной, особенно если он содержит обфусцированный код. Давайте разберёмся, почему Windows корректно обрабатывает такой файл, несмотря на "мусор".  

 

### 1. **Структура `autorun.inf`**  

Файл `autorun.inf` — это обычный текстовый файл, который Windows читает в кодировке **ANSI** (по умолчанию) или **Unicode** (если есть BOM `FF FE`). Его синтаксис очень прост:  

```ini

[autorun]

open=program.exe

icon=icon.ico

```  

Windows парсит этот файл построчно, игнорируя всё, что не соответствует ожидаемому формату.  

 

### 2. **Как Windows обрабатывает "мусор" в UTF-16?**  

Если файл в UTF-16, то каждый символ занимает **2 байта**. Но Windows при чтении `autorun.inf`:  

- Пропускает некорректные символы (например, нечитаемые Unicode-символы).  

- Игнорирует строки, которые не начинаются с `[section]` или `key=value`.  

- Читает **только валидные строки**, а всё остальное (включая "мусор") отбрасывает.  

 

### 3. **Пример обфусцированного `autorun.inf`**  

Допустим, файл выглядит так (в HEX-редакторе):  

```

FF FE 5B 00 61 00 75 00 74 00 6F 00 72 00 75 00 6E 00 5D 00 0D 00 0A 00

DE AD BE EF 0D 00 0A 00

6F 00 70 00 65 00 6E 00 3D 00 70 00 72 00 6F 00 67 00 72 00 61 00 6D 00 2E 00 65 00 78 00 65 00 0D 00 0A 00

```

В UTF-16 это:  

- `[autorun]` (корректная секция)  

- `ޭ��` (мусор, но заканчивается на `\r\n`)  

- `open=program.exe` (корректная директива)  

 

Windows просто проигнорирует `DE AD BE EF` (так как это невалидная строка) и прочитает остальное.  

 

### 4. **Почему антивирусы детектят это как вирус?**  

- **Net-Worm.Win32.Kido.ir** (Conficker) использовал обфускацию `autorun.inf`, чтобы скрыть вредоносные команды.  

- Антивирусы сигнатурно ищут **характерные паттерны**, даже если часть файла — мусор.  

- Вредонос мог вставлять мусор, чтобы затруднить анализ, но Windows всё равно выполняла нужные ему команды.  

 

### 5. **Вывод**  

Windows парсит `autorun.inf` **линейно**, вычитывая только строки в правильном формате, а всё остальное (включая бинарный мусор в UTF-16) просто пропускает. Поэтому вирусописатели добавляли "мусор", чтобы:  

- Замаскировать файл от беглого просмотра.  

- Усложнить анализ антивирусам.  

- Но при этом оставить рабочий код для Windows.  

 

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

 

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Ummitium сказал:

Задал ваш вопрос нейросети, получил такой ответ:

  Показать контент

Файл `autorun.inf` с сигнатурой `FF FE` действительно является UTF-16 LE (Unicode), и его обработка Windows может показаться загадочной, особенно если он содержит обфусцированный код. Давайте разберёмся, почему Windows корректно обрабатывает такой файл, несмотря на "мусор".  

 

### 1. **Структура `autorun.inf`**  

Файл `autorun.inf` — это обычный текстовый файл, который Windows читает в кодировке **ANSI** (по умолчанию) или **Unicode** (если есть BOM `FF FE`). Его синтаксис очень прост:  

```ini

[autorun]

open=program.exe

icon=icon.ico

```  

Windows парсит этот файл построчно, игнорируя всё, что не соответствует ожидаемому формату.  

 

### 2. **Как Windows обрабатывает "мусор" в UTF-16?**  

Если файл в UTF-16, то каждый символ занимает **2 байта**. Но Windows при чтении `autorun.inf`:  

- Пропускает некорректные символы (например, нечитаемые Unicode-символы).  

- Игнорирует строки, которые не начинаются с `[section]` или `key=value`.  

- Читает **только валидные строки**, а всё остальное (включая "мусор") отбрасывает.  

 

### 3. **Пример обфусцированного `autorun.inf`**  

Допустим, файл выглядит так (в HEX-редакторе):  

```

FF FE 5B 00 61 00 75 00 74 00 6F 00 72 00 75 00 6E 00 5D 00 0D 00 0A 00

DE AD BE EF 0D 00 0A 00

6F 00 70 00 65 00 6E 00 3D 00 70 00 72 00 6F 00 67 00 72 00 61 00 6D 00 2E 00 65 00 78 00 65 00 0D 00 0A 00

```

В UTF-16 это:  

- `[autorun]` (корректная секция)  

- `ޭ��` (мусор, но заканчивается на `\r\n`)  

- `open=program.exe` (корректная директива)  

 

Windows просто проигнорирует `DE AD BE EF` (так как это невалидная строка) и прочитает остальное.  

 

### 4. **Почему антивирусы детектят это как вирус?**  

- **Net-Worm.Win32.Kido.ir** (Conficker) использовал обфускацию `autorun.inf`, чтобы скрыть вредоносные команды.  

- Антивирусы сигнатурно ищут **характерные паттерны**, даже если часть файла — мусор.  

- Вредонос мог вставлять мусор, чтобы затруднить анализ, но Windows всё равно выполняла нужные ему команды.  

 

### 5. **Вывод**  

Windows парсит `autorun.inf` **линейно**, вычитывая только строки в правильном формате, а всё остальное (включая бинарный мусор в UTF-16) просто пропускает. Поэтому вирусописатели добавляли "мусор", чтобы:  

- Замаскировать файл от беглого просмотра.  

- Усложнить анализ антивирусам.  

- Но при этом оставить рабочий код для Windows.  

 

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

 

Спасибо за ответ. В целом понятно.

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

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • Андрей 1971
      Автор Андрей 1971
      Добрый вечер.
      При наборе текста в ворд, эксель, запросе в интернет происходит  автозамена буквы/цифры на сочетание букв. Суммарно по двум цифрам и четырем буквам. Пример:
      Вместо и - "0ыст ", вместо р - "жмюоб", вместо ш - "пл.ьв", вместо г - "нжщ"
      Замена цифры семь на "ех9дэ", восемь на "\6=0зъ"
       
      Dr.Web CureIt проблему не устранил.
      При открытии программы несколько знаков печатает как положено, потом опять подмена знаков.
       
      Похоже, дети, когда играли, скачали плагин. В Автозагрузке не выявил. Драйвер клавиатуры обновил."
       
      Если кто-то сталкивался, подскажите как исправить. Обязательно ли переустанавливать систему.
       
      С уважением, Андрей.
       
    • Анатолий81
      Автор Анатолий81
      Добрый день!  Не копируется текст в ворд - вацап, внутри ворда  копируется. Внутри вацапа не копируется. Это проблема. помогите решить  
×
×
  • Создать...