Сейчас на форуме: vsv1, Alf (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Принцип работы анализаторов файлов
Посл.ответ Сообщение


Ранг: 71.9 (постоянный), 4thx
Активность: 0.040
Статус: Участник

Создано: 24 июня 2015 10:25
· Личное сообщение · #1

Интересуют алгоритмы анализа файла, определение упаковщиков, компиляторов, типов файлов.
Как подсказывает логика, видимо надо искать совпадения байтов, например если по-смещению XXXXX находятся байты 01 10 FF A0, а по-смещению YYYYY - 21 00 00 02, то этой файл был упакован например Aspack 1.0
Но это какой-то ненадежный способ, у любого другого файла могут быть эти байты, детектирование будет не 100% надежным. Может есть какие-то крутые математические способы, типа "фрактальный анализ в трехмерной плоскости Лобачевского"



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 24 июня 2015 10:28
· Личное сообщение · #2

все ищется сигнатурно. посмотрите в гугле, часть софта с сорцами (определение компиллеров, крипто алго и т.д) обратите внимание, как ида цепляет флирт сигнатуры.. тот же метод

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....


| Сообщение посчитали полезным: jangle


Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 24 июня 2015 10:55 · Поправил: Coderess
· Личное сообщение · #3

jangle
Может есть какие-то крутые математические способы,


Энтропия Шеннона, даже в моем институте проходили, когда кодил свой анализатор ПЕ файлов реализовывал, исходные коды не сохранил. Можно почитать Вот это
и об упаковщиках в последний раз часть 2

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes


| Сообщение посчитали полезным: jangle

Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 24 июня 2015 11:31 · Поправил: TryAga1n
· Личное сообщение · #4

jangle, сорцы DiE открыты, так же есть куча более старых сорцов на разных языках, все прекрасно гуглится. А 100% анализ и даже близко к нему ты никогда не получишь.

Вообще для увелечения точности детекта стоит использовать совокупно:
Сигнатуру на ОЕП
сигнатуры в теле
анализ секций
энтропию
ну и построение графов

| Сообщение посчитали полезным: jangle, hors


Ранг: 71.9 (постоянный), 4thx
Активность: 0.040
Статус: Участник

Создано: 24 июня 2015 12:06 · Поправил: jangle
· Личное сообщение · #5

Про детектирование понятно. А как собирают базы сигнатур? Некоторые программы могут определять 3-4 тысячи различных типов файлов. Их что вручную собирают или есть какие-то методы автоматического поиска сигнатур для занесения в базу детектора?




Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 24 июня 2015 12:50
· Личное сообщение · #6

jangle пишет:
А как собирают базы сигнатур? Некоторые программы могут определять 3-4 тысячи различных типов файлов. Их что вручную собирают или есть какие-то методы автоматического поиска сигнатур для занесения в базу детектора?


Есть инструменты облегчающие работу с составлением базы например вот --> Link <--.
Но конечно всё приходится вручную перепроверять.

-----
http://ntinfo.biz





Ранг: 71.9 (постоянный), 4thx
Активность: 0.040
Статус: Участник

Создано: 24 июня 2015 13:08
· Личное сообщение · #7

hors, спасибо, прикольная утилита! А кто автор? И есть где-то описание как ей пользоваться?



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 24 июня 2015 13:26
· Личное сообщение · #8

TryAga1n пишет:
сорцы DiE открыты

-> название diesort не настараживает? автор себе работу облегчал.. начинал один, допиливали потом еще несколько человек

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 24 июня 2015 13:31 · Поправил: hors
· Личное сообщение · #9

jangle пишет:
И есть где-то описание как ей пользоваться?



В папку db кладутся скрипты. Если анализируем PE, то все файлы из папки PE удаляем и
создаём там свои скрипты
В скриптах указываются критерии отбора файлов.

Например:

Code:
  1. function detect(bShowType,bShowVersion,bShowOptions)
  2. {
  3.     if(PE.isSignatureInSectionPresent(0,"AABBCCDDEE"))
  4.     {
  5.         return "detected";
  6.     }
  7.  
  8.     return "";
  9. }


Будут искаться все файлы с сигнатурой "AABBCCDDEE" в первой секции файла.
Описание всех функций здесь --> Link <--

Затем указывается папка с коллекцией файлов для сканирования и папка для сохранения результата.

Затем отобранные файлы анализируются вручную.

-----
http://ntinfo.biz


| Сообщение посчитали полезным: jangle


Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 25 июня 2015 16:34
· Личное сообщение · #10

Фильтр спама в гугле , есть возможность самообучения, можно применять и в сигнатурах

--> Link <--

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube



 eXeL@B —› Вопросы новичков —› Принцип работы анализаторов файлов
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати