Пожалуйста, обратите внимание, что пользователь заблокирован
Мне про архитектуру хочется добавить. Архитектура кода есть его важнейшая часть - основная его идея. То есть у вас какие то ошибки могут быть заложены ещё на стадии архитектуры: то есть не верно выбраный язык или фреймворк на этом языке мало подходит для того, для чего создан ( и такое бывает ). (По этому поводу очень хорошо описал ситуацию в своей книге Макконел - Совершенный код (2003год) - Прочитай не пожалеешь)Малварь - Очень широкая тема, какую конкретно хотите делать малварь и зачем ?
Вот пример, стиллер, что нужно знать для создания стиллера ?
Стиллер делится на две части, админка и клиент.
Что-бы написать клиента, нужен стек технологий:
Си + WinApi, либо C# + WinApi...
Для админки, которая опять делится на две части, это фронтенд (морда) и беккенд (Обработка запросов):
Тут уже совсем другой стек:
Беккенд, это php, или go, или питон + знание Линукс, на уровне администратора...
Фронт, опять либо питон, либо фреймворки, типо VueJs, Django и прочее...
Я к тому, что если вы совсем новичек, то во первых определитесь какую малварь хотите писать, изучите архитектурно.
Потом определитесь с языком уже, покурите сорцы, в том-же гите и вперед...)
Так нужно иметь какой-то базовый уровень в кодинге, ну просто понимать что такое переменная, функция и т.д.
А далее уже на конкретной задачи и учить, я из опыта понял, что ботанить над конкретным языком смысла нет, есть задача, ее надо решить, все решаете и учитесь.)
Единственное, я бы рекомендовал поизучать архитектуру малвари и устройство ОС, хотя-бы на базовом уровне, все остальное, это уже можно в процессе изучать.)
У малавари как и у любого софта тоже есть какая то своя архитектурная композиция. Если вас интересует это направление (малаварь) вы попробуйте начать с чтения чужого кода это много даст Вам на старте. Проводите анализ алгоритмов из сэплов в открытом доступе. Ищите источники этих сэплов их огромное множество. Проще всего анализировать Java - код ( Android - приложения ) т.к Джава декомпилируется почти до уровня сорцов ( не всегда конечно но и такое бывает ). А вообще говоря про простоту стоит отметить, что это я лишь выразился так, на самом деле анализ кода (что статика что динамика) это всегда сложно. По началу даже чтение исходников будет идти медленно. Это долгий и кропотливый труд.