Вопрос про разработку драйвера. FASM

Тема в разделе "FASM", создана пользователем Richie, 20 июн 2026 в 20:48.

  1. Richie

    Richie New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2026
    Сообщения:
    10
    upload_2026-6-20_17-46-5.png
    У меня присутствует некий список драйверов, которые я должен сохранять в базу(в моем случае массив), если я вручную буду добавлять каждый драйвер в этот список, то код превратится в простыню на тысячи строк, когда их станет много. Прямолинейно тоже не подходит, будет слишком не читаемо.
    Есть идеи, что можно поделать? Либо забить просто. Сам список хранится в отдельном .inc файле
     
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.217
    И в ширину простыню растить нельзя и в длину. Идеи какого рода тебе нужны? Я вижу, что каждая запись у тебя занимет две строки, можешь регистрировать имена отдельным макросом, а формировать структуру по списку. В два раза меньше строк.
    Код (ASM):
    1. macro regdrv name,val{
    2.     match any,driver_list \{ driver_list equ driver_list,name,val  \}
    3.     match ,driver_list \{ driver_list equ name,val \}}
    4. macro storedrv [name,val]{
    5.     forward
    6.         dq name
    7.     forward
    8.         name du val,0}
    9. driver_list equ
    10. regdrv name1,'driver1.sys'
    11. regdrv name2,'driver2.sys'
    12. match driver_list,driver_list { storedrv driver_list }
    ЗЫ: то, что имена драйверов в юникоде и занимают по 2 байта на символ (хотя вряд ли там будет не-латиница), похоже тебя волнует меньше.
     
    Richie нравится это.
  3. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    680
    driver_blacklist - криптовать текст, что бы авер не видел. Декриптор под антиэмуль. Штатная схема, формат массивов не важен :preved:
     
  4. Richie

    Richie New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2026
    Сообщения:
    10
    Иронично, но я наоборот антивирус разрабатываю.
    Этот модуль ELAM драйвер
     
  5. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    680
    Richie,

    Спасибо за помощь им, теперь имя можно сделать рандомным :)
     
  6. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.407
    Если это не компонент для антивируса Бабушкина, то вряд ли стоит хардкодить черный список малварных драйверов прям в коде драйвера. Это не то чтобы правильный подход с точки зрения архитектуры. Если забыть о том, что имя .sys файла может быть произвольным, то правильнее будет держать список в виде подписанного на приватном ключе конфигурационного файла, загружать его из файла, проверять подпись, чтобы никто из злых русских хакеров не смог его подменить.
     
    Richie нравится это.
  7. Richie

    Richie New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2026
    Сообщения:
    10
    Спасибо за совет. Так и сделаю.