В чём особенности курса «Реверс-инжиниринг» в OTUS?
Реверс-инжиниринг кода — это процесс анализа машинного кода, с помощью которого можно понять принцип работы программы, восстановить алгоритм, обнаружить недокументированные возможности программы, решить другие задачи.
Какова цель курса?
На российском образовательном рынке сегодня практически невозможно найти профессионально сделанный курс по реверс-инжинирингу. Наша задача — восполнить этот пробел и предложить слушателям структурированный курс, отвечающий потребностям современной IT-индустрии. Именно таковым является курс «Реверс-инжиниринг». Он подготовлен опытным специалистом в сфере низкоуровневого программирования, обратной разработки и анализа вредоносного ПО.
Здесь вы научитесь: — системному и низкоуровневому программированию; — аспектам внутреннего устройства Windows; — статическому и динамическому анализу; — использованию специализированного ПО (IDA Pro, WinDBG, Hiew); — обратной разработке кода и много чему ещё.
Что входит в программу?
Программа содержит хорошо структурированный теоретический материал, плюс насыщена полезными и актуальными практическими заданиями. Некоторые темы: 1. Низкоуровневое программирование на ассемблер под x8086/x64 (регистры процессора, работа с памятью, представление данных, опкоды команд, прерывания BIOS и пр.). 2. Низкоуровневое программирование на ассемблер под MIPS (арифметические и логические команды, команды условного/безусловного перехода и т. д.). 3. Защищённый режим процессора, сегментная и страничная организация памяти. 4. Внутреннее устройство Windows (объекты ядра, менеджер памяти, диспетчер ввода-вывода). 5. Системное программирование (PE формат, WinApi-функции, программирование Native-приложений и пр.). 6. Написание кастомного MBR. 7. Обратная разработка программ (динамический и статический анализ кода, разработка shell-кодов, Metasploit, внедрение реверс-шела в прошивки роутеров и др.).
Чтобы успешно освоить программу, вы должны обладать базовыми знаниями архитектуры ЭВМ и внутреннего устройства Windows. Большим плюсом станет опыт программирования на C/C++. Пробуйте свои силы и проходите вступительное тестирование!