Admin
Администратор
Путь в вирусологию[ВВЕДЕНИЕ]
а форум приходит достаточного много новичков в области программирования, которым интересна разработка малварей (вирусов).
Приходя на форум, они в предвкушении думают, что найдут какие-то полезные сведения, или какую-то полезную информацию но, заходя в раздел "Malware", ни в закрепе, ни на других страницах, они не обнаруживают никакую информацию для новичков. Это довольно сильно отталкивает новичков с форума, я даже больше скажу, они разочаровываются, думая, что знания стоят денег.
Сразу говорю, это не так, поэтому, я решил создать вводную статью в вирусологию, где будут изложены книги и материалы. Изложены они будут по той последовательности, в которой вы их должны изучить.
Начнем!
I. глава. Языки программирования(С)/WinApi + материал для обучения
II глава. Что такое реверс-инжиниринг? Для чего он вам? Ассемблер + материал для обучения
III глава. Архитектура Windows
IV глава. Какие малвари писать в начале пути?
V. глава. Заключение
I. глава. Языки программирования(С)/WinAPI материал для обучения
Самое и самое первое, о чем новичок должен подумать после прихода в малварь-разработку, это, конечно же - какой язык программирования выбрать.
Если смотреть объективно, какой язык лучше всего, то советую выбрать язык программирования Си.
Большинство малварей пишут именно на нем!
От шифровальщиков, до руткитов.
Материал для обучения:
Если вы прям 0 в программировании, советую вам книгу: "Современный Си для начинающих" by Клеменс Гребенс (Clemens Grebus).
Эта книга создана для тех, кто полный ноль в программировании, вас обучат базе Си(вывод/ввод, указатели, пространства имен и т.д)
Если же, вы уже умеете кодить и более опытнее в этой области. советую вам этот сайт, по которому обучаются десятки, а может даже сотни тысяч программистов: Си.
После того, как вы изучите базовый синтаксис Си, вы можете переходить ко второму этапу, а именно - WinAPI.
Что такое WinAPI?
Представьте себе WinAPI как гигантский пульт дистанционного управления всей операционной системой(виндовс).
На этом пульте есть сотни кнопок (функций), каждая из которых заставляет систему сделать что-то конкретное:
Создать файл (CreateFile)
Записать данные в файл (WriteFile)
Запустить другую программу (CreateProcess)
Выделить участок памяти в чужом процессе (VirtualAllocEx)
Извлечь пароль из хранилища (CredEnumerate)
Выключить компьютер (ExitWindowsEx)
их сотни, я лишь привел пример немногих из них.
Вопрос от новичка: А зачем мне оно?
Любой малварь - это просто программа, которая нажимает на эти "кнопки" в злонамеренной последовательности, то есть без легитимности используя язык программирования(в нашем случае Си)
Материал для обучения:
1) Чарльз Петцольд (Charles Petzold) - "Windows Programming" / "Программирование для Windows 95"
2) Джеффри Рихтер (Jeffrey Richter) - Windows via C/C++"
Предупреждение: В книге Рихтера обращайте особое внимание на главы про процессы и память - это основа для инжекторов в процессыПетцольд вводит вас в WinAPI, учит работать с окнами. Это основа всего.
А Рихтер погружает вас в самую суть операционной системы. Эта книга - исчерпывающее руководство по ключевым механизмам Win32: процессы, потоки, синхронизация, память, DLL, ввод/вывод.
Это очень важно для каждого вирусолога.
II глава. Что такое реверс-инжиниринг? Для чего он вам? Ассемблер + материал для обучения
Что такое реверс-инжинирирнг для вирусолога?
Объясняю как в школе 1+1.
Реверс-инжиниринг - это двумя словами обратная разработка, для чего она нужна? Ответ:
Реверс-инжиниринг позволяет вам анализировать то или иное приложение, с целью выяснить, как оно работает. логику этого приложения.
Ну, или:
Это анализ какой-то программы без доступа к ее исходному коду.
В нашем же случае:
В своем пути вирусолога, вы будете анализировать другие малвари, с целью выяснить, как они работают и понять их логику, какие WinAPI функции они вызывают, как они защищаются от антивирусов, чтобы в своём малваре добавить что-то новое, или взять что-то себе на вооружение из анализированного малваря.
Есть один минус: Код в дизассемблере IDA PRO(инструмент для анализа) показывается на языке ассемблера, после того как дизассемблер переводит его с машинного кода.
Не нужно переживать из-за того что вы не понимаете что такое дизассемблер, с опытом вы все поймете
Поэтому, вы должны изучить базу ассемблера, а именно 6-7 глав.
Есть один плюс: Если вы изучили Си, вы понимаете, как работать с указателями, что они из себя представляют, что такое адресация.
Это дает очень хороший буст в изучении ассемблера.
Материал для обучения:
Ассемблер
Прочитайте первые 7 глав, после чего сразу переходите на 13 главу:
13 глава тоже даст вам некую базу в WinApi.
Лично я понял как работать с апи винды, только после того как прочитал эту главу, советую)
По реверсу:
Денис Юричев. Реверс-инжиниринг для начинающих
Вскрытие покажет. Практический анализ вредоносного ПО.
III глава. Архитектура Windows
Если вы прошли правильную последовательность изучения материала:
Си -> WinApi -> Ассемблер -> Реверс.
Осталось еще кое-что.
Дело в том, что вы должны понимать как работает память в Windows, должны понимать как устроены защитные механизмы Windows(в целом архитектуру безопасности Windows)
Материал для обучения
Внутреннее устройство Windows. Ключевые компоненты. 7 издание
Прочитав эту книгу, вы будете полностью понимать архитектуру винды/архитектуру безопасности винды.Если вы не хотите читать книгу полностью, советую к прочтению такие главы как:
Это самая база. Ее будет достаточно, чтобы уже клипать крутые-малварики под винду которые рвут компудахтеры(шутка)
IV глава. Какие малвари писать в начале пути?
Советую писать легкие малвари, которые работают на уровне пользователя, такие как:
Ransomware, стиллеры, троянчики.
Совет: реверсите подобные малвари(ransomware, стиллеры), тем самым вы прокачиваете свои знания в реверсе, также понимаете как работает малварь на уровне дизассемблера.
После того как вы научитесь писать простые вирусы которые работают на уровне пользователя, можно будет углубляться.
К примеру можно будет писать руткиты которые будут работать на уровне ядра, ИЛИ даже гипервизора(управляет всей ОС)
V глава. Заключение.
Я надеюсь этот материал дал вам(новичкам а может и средним) мотивацию к учебе. Идите и достигайте своих целей, у вас есть материал, который распределен ИДЕАЛЬНО, лично по моему опыту.
Не стесняйтесь спрашивать то, чего не понимаете у нейросети, она очень сильно вам будет помогать в обучении(Но не в разработке, так делать не надо).