У меня присутствует некий список драйверов, которые я должен сохранять в базу(в моем случае массив), если я вручную буду добавлять каждый драйвер в этот список, то код превратится в простыню на тысячи строк, когда их станет много. Прямолинейно тоже не подходит, будет слишком не читаемо. Есть идеи, что можно поделать? Либо забить просто. Сам список хранится в отдельном .inc файле
И в ширину простыню растить нельзя и в длину. Идеи какого рода тебе нужны? Я вижу, что каждая запись у тебя занимет две строки, можешь регистрировать имена отдельным макросом, а формировать структуру по списку. В два раза меньше строк. Код (ASM): macro regdrv name,val{ match any,driver_list \{ driver_list equ driver_list,name,val \} match ,driver_list \{ driver_list equ name,val \}} macro storedrv [name,val]{ forward dq name forward name du val,0} driver_list equ regdrv name1,'driver1.sys' regdrv name2,'driver2.sys' match driver_list,driver_list { storedrv driver_list } ЗЫ: то, что имена драйверов в юникоде и занимают по 2 байта на символ (хотя вряд ли там будет не-латиница), похоже тебя волнует меньше.
driver_blacklist - криптовать текст, что бы авер не видел. Декриптор под антиэмуль. Штатная схема, формат массивов не важен
Если это не компонент для антивируса Бабушкина, то вряд ли стоит хардкодить черный список малварных драйверов прям в коде драйвера. Это не то чтобы правильный подход с точки зрения архитектуры. Если забыть о том, что имя .sys файла может быть произвольным, то правильнее будет держать список в виде подписанного на приватном ключе конфигурационного файла, загружать его из файла, проверять подпись, чтобы никто из злых русских хакеров не смог его подменить.
Привет, да. Только я написал более качественную версию с функциями из CNG. https://github.com/DONTERSON/ELAM/tree/main Только вот она не на плюсах)
Richie, https://habr.com/ru/companies/alfa/articles/1011302/ интересное веяние. впрочем, так и должно быть. чувствую, в новом поколении процессоров прикрутят какой-нибудь новый аппаратный костыль, чтобы еще и это как-то блокировать*, и колесо Сансары сделает еще 1 оборот. "Процессоры Intel Tiger Lake используют технологию Intel CET (Control-Flow Enforcement Technology) для аппаратного предотвращения атак типа ROP (Return-Oriented Programming) и JOP (Jump-Oriented Programming)." и, конечно же, производительность упадет еще на 30%, новые ОС будут требовать новых Цпу с этим аппаратным костылем, ) * супер-подпись, Как подписываются ELAM‑драйверы? Подпись ELAM‑драйверов существенно отличается от процедуры подписания обычных драйверов режима ядра операционной системы Windows. Из‑за того, что данный компонент защиты запускается на самом раннем этапе загрузки и имеет право блокировать другие критически важные модули, Microsoft накладывает на него беспрецедентно жесткие требования безопасности. Процесс верификации и структура цифровой подписи для ELAM состоят из нескольких обязательных критериев: 1. ELAM‑драйвер должен пройти обязательную процедуру отправки в Microsft через портал оборудования, обычный сертификат подписи кода не подойдет, Microsoft должны самостоятельно подписать бинарный файл своим специальным корневым сертификатом раннего доступа. 2. Процедура получения такой подписи жестко привязана к участию разработчика в программе Microsoft Virus Initiative (MVI). Это означает, что независимый разработчик или обычная софтверная компания не могут просто так отправить любой драйвер на подпись как ELAM. Вендор обязан официально подтвердить статус разработчика антивирусного программного обеспечения, пройти аудит безопасности и доказать, что компонент действительно выполняет функции защиты системы, а не используется как потенциальный бэкдор, который, наоборот, борется с этими защитниками. поймите правильно, я юморю. все это напоминает зашедший в тупик диалог с нейронкой, когда она не может выяснить где ошибка, и прикручивает все новые костыли, доводя код до невообразимого хаоса, и при каждой итерации с умнейшим видом говорит, что код становится лучше и лучше. детекты драйверов по имени.. напомнило какой-то школотроян, где авторы не осилили цикл перебора имен дисков с С: до Z:, и вручную накопипастили по куску кода с намертво вписанными "C:\Windows", "D:\Windows". странно все это. с одной стороны, у нас тензорные ядра на видеокартах с объемом видеопамяти, как хороший HDD лет 20 назад, а с другой - /s кончится все тем, что ОС будет целиком в облаке, а пользователь будет лишь работать с терминалом. секурно.
_edge, Прочитай внимательнее начало второй главы, если у тебя интерес к коду. Я просто ничего не понял из всего, что тут написано)
не берите в голову. это sarcasm. просто взляд со стороны. я нисколько не умаляю Ваших скиллов, но все это странное какое-то. реально еще один оборот соревнований снаряда и брони. но в качестве брони используется дуршлаг ). они в результате либо придут к концепции "ОС в облаке", либо ремонтом ремонта доведут ОС до нерабочего состояния, когда добавление очередного костыля превысит критическую массу уже налепленных костылей, и все необратимо сломается. ну как сломается, выбор-то будет, либо мириться с тем, что заплатку на очередную 0-day угрозу не наложить, либо наложить, но производительность упадет раза в 2. я бы ставил на второе - "все для Вашей безопасности". заодно будет стимул железо обновить ) извините, что отвлек и не дал дельных советов по коду. фейковые профили рекрутеров в LinkedIn и рассылали жертвам «вакансии» — ISO-файлы с вредоносной начинкой: многоступенчатой цепочкой загрузчиков (RollFling → RollSling → RollMid → KaolinRAT), финальным звеном которой был FudModule — руткит, работающий на уровне ядра. е__ться в телевизор! наверное, там инструкция была, как подмонтировать этот ISO, и запустить с него EXE? реально нужно ОС изолировать не от хакеров, а от пользователя ) https://www.itsec.ru/news/severkoreyskiye-hakeri-priachut-svoy-noviy-troyan-v-vakansiyah-o-rabote типа да, "запусти ЕХЕ"
_edge, https://zhexwang.github.io/papers/cetis.pdf, fig.2: оверхед теневого стека 2% это ничто. Другое дело защита от спекуляций, интересно узнать оверхед на нее, думаю немалый.