Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Исходник [ASM] Ассемблер - Базовый антивирусный сканер PE

Разработчик
Разработчик
Статус
Оффлайн
Регистрация
21 Июн 2025
Сообщения
155
Реакции
65
Написал еще небольшую утилиту для проверки безопасности.
Открытый исходный код, всем кому интересна разработка антивирусов - вперед анализировать.
1. Программа анализирует PE.
1.1 Проверяет сигнатуры MZ, PE\0\0.
1.2 Считывает базовую структуру: секции, точку входа, метаданные.
2. Вычисляет энтропию по математической формуле Шеннона:
1771688781613.png

2.1
H - энтропия(в битах)
n - количество возможных символов
pi - вероятность появление i-го символа в анализирумой последовательности.
-- Важно понимание FPU инструкций, изучить можно -
Пожалуйста, авторизуйтесь для просмотра ссылки.
| не реклама.
Если отдельно поговорить касаемо энтропии, через нее антивирусные защитные механизмы понимают, упакована ли программа либо же нет. 1-5 норма, 6+ подозрительно, возможно упаковано.
3. Проверяет Entry Point
3.1 Сверяет VA точкти входа с границами секций;
3.2 Выдает предупреждение, если точка входа находится вне стандартной секции кода

4. Выводит имена, виртуальные адреса (VA) и размеры секций
4.1 ищет подозрительные флаги (W+x запись + выполнение).
4.2 Указывает RVA директории, если найдена.
Демонстрация работы программы:
1771689651585.png

Антивирус будет обновляться.
 

Вложения

  • AV.rar
    AV.rar
    4 KB · Просмотры: 10
Последнее редактирование:
1771864792094.png

V0.02 - Обновление.

1. Добавил атомарность операции вместе с эвристикой через LOCK. Программа собирает информацию со всех подозрительных моментах и передает их в score, если == 100 - Delete.
ASM:
Expand Collapse Copy
    and eax, 0A0000000h        
    cmp eax, 0A0000000h
    jne .next_sec
   
     ;// секции
    lock add byte [score], 40   ; // +40 за секцию которую можно одновременно менять и исполнять
    cmp byte [score], 100
    jae PARAM                   ;//  если будет 100 - выход
    ; // ---------------------- TLS
      test eax, eax
    jz .no_tls


    lock add byte [score], 30   ;// +30
    cmp byte [score], 100
    jae PARAM                   ;// 100 = detect

    ;// энтропия
    fcomip st0, st1          
    ja exit                  

    lock add byte [score], 60   ;// +60 за высокую энтропию
    cmp byte [score], 100
    jae PARAM                   ;// 100 - detect
2. Добавил удаление файла в случае детекта.

Если будут идеи - жду предложения, улучшу сканер.
 

Вложения

  • AV_2.rar
    AV_2.rar
    4.3 KB · Просмотры: 4
Последнее редактирование:
ахуенно, но блять сделай так чтобы она парсила pe, и считала энтропию по формуле шеннона =D Ну и чтобы хотяб проверяла флаги секций, да и использовала атомарные операции. да и карантин лучше добавить меньше шансов на ложные срабатывания. можно еще оверлей проверять, удачи с проектом. афигенно получается )
 
ахуенно, но блять сделай так чтобы она парсила pe, и считала энтропию по формуле шеннона =D Ну и чтобы хотяб проверяла флаги секций, да и использовала атомарные операции. да и карантин лучше добавить меньше шансов на ложные срабатывания. можно еще оверлей проверять, удачи с проектом. афигенно получается )
Еще имеются идеи?
 
Назад
Сверху Снизу