Можно ли реализовать программу, написанную на C/assembler, которая отслеживает процесс запуска/работы вирус-майнера?
Всех привествую. Появилось сильное желание написать написать программу, используя навыки системного программирования. А именно, приложение будет реализовано приемущественно на Си с Ассемблерными вставками, которое будет отслежить любую работу вируса-майнера, показывая максимально возможную информацию о нем. Суть ПО приемущественно отследить, найти вирус-майнер, а не удалить его, хотя его удаление тоже приветствуется. Надеюсь на вашу помощь).
Если это возможно, прошу подсказки по проектрованию/созданию.
Посильная помощь: не выдумывать задачи, которые не знаешь, как реализовать вовсе.
Ставить перед собой задачи, понятные хотя бы на 50%. Остальное можно изучить.
Вопрос - голимая маниловщина, испанский стыд и подростковая дурость.
Можно, ограничений вроде как никаких нет.
Надо только маленькую деталь конкретизировать "отслеживать работу вируса-майнера".
1. Как программа в принципе должна понять, что есть этот майнер
2. Как-то она должна получить доступ к его адресному пространству (да так, чтобы сам вирус не спалил это, ибо это уже будет похоже на работу антивируса)
3. Нужно провести обратный инжиниринг этого вируса, чтобы понять, что конкретно он делает.
Без п2 и п3 ты максимум сможешь понять, какую нагрузку на систему он оказывает.
Ну и где-то по пути понять, зачем вообще это делать на си с ассемблерными вставками.
Василий Банников, да можно попробовать работать как антивирус. Искать в бинарнике
знакомые инструкции которые сигнализируют о майнинге.
Например для биткоина это должна быть функция вида SHA256(SHA256(x))
и если майнер хороший то он может содержать Intel SHA-256 extension set.
Или искать аналогичное на GPU.
В совокупности анализ должен быть направлен не на все процессы а только
на те которые в единицу времени создали какую то особую нагрузку
которая не похожа на игру например или работу video encoder. Тоесть
добавить к анализу еще один экспертный параметр.
Понятное дело это все частные случаи и какой-то общий майнер мы не можем
обнаружить.
По поводу детектирования. Есть статья на сайте МС под названием
Defending against cryptojacking with Microsoft Defender for Endpoint and Intel TDT
Приведу цитату
Intel TDT applies machine learning to low-level hardware telemetry sourced directly from the CPU performance monitoring unit (PMU) to detect the malware code execution “fingerprint” at runtime with minimal overhead.
....
This technology is based on telemetry signals coming directly from the PMU, the unit that records low-level information about performance and microarchitectural execution characteristics of instructions processed by the CPU. Coin miners make heavy use of repeated mathematical operations and this activity is recorded by the PMU, which triggers a signal when a certain usage threshold is reached.
Вот почитай что такое Intel TDT, PMU e.t.c. Я думаю это будет правильное направление куда дальше искать.
Да, можно, пишите, вам никто не запрещает. Подсказка:
Формулируете вашу задачу в виде какого-то текстового/графического описания
Формулируете ТЗ с конкретными требованиями, ограничениями и всем прочим
На основе ТЗ разрабатываете ЧТЗ (Частное ТЗ) со всеми полными деталями, описаниями всех действий, событий, взаимодействий и прочее
Используя ЧТЗ подготавливаете проект - архитектура, инструменты, системы, подсистемы и прочее с полным описанием, декомпозированными элементами вниз до самых простых и прочее
Берёте проект и по шагам его реализовываете
Profit
Это примерно - у каждого проекта свой путь. Есть ещё аналитика, исследования, тесты, планирование и куча других организационных и подготовительных действий.