- Главная
- Блог
- Информационная безопасность
- С чего начать изучение реверс-инжиниринга
С чего начать изучение реверс-инжиниринга
Доброго времени суток. Желаю поведать о том, что такое реверс-инжиниринг. Почему это направление одно из самых увлекательных в ИБ и с чего начать изучение. И немного о моём обучении.
Что такое реверс-инжиниринг?
Реверс-инжиниринг дословно переводится на русский язык, как «обратная инженерия» или обратное проектирование. Это способ исследовать некоторое готовому устройство или программу, а также документации на него с целью понять принцип его работы. Другими словами — имеется программа, написанная на высокоуровневом языке программирования. Цель реверс-инженера — это понять, как работает это программа. Но исходного кода может не быть, следовательно, используют дизассемблер, и смотрят код программы на низкоуровневом языке ассемблер.
Почему реверс-инжиниринг одно из самых увлекательных направлений в ИБ?
При реверс-инжиниринге программ, специалист пытается понять, как устроена программа. Перед тем, как заниматься дизассемблированием программы необходимо понять, как работает защита если она есть, а только дальше анализировать весь код и разбираться, как он работает. Я считаю разбираться как устроена программа и “ломать голову” анализируя весть код – это самое увлекательное в данном ремесле + со стороны выглядит эффектно. Вот скриншот простой дизассемблированной программы. Выглядит страшно, но программа очень простая.
Реверс инжиниринг тесно связан с исследованием вредоносного ПО. Вирус — это тоже программа, которую можно исследовать.
Я задам вам вопрос – “Вы скачивали взломанные игры с торрента?” Наверняка ответ будет положительным. Программы также взламывают техниками реверс-инжиниринга, но этим лучше не заниматься.
С чего начать изучение?
С самого начала необходимо изучить основы в IT и Информационной Безопасности.
- Узнайте, как работают компьютерные сети на базовом уровне. Бесплатный курс Андрея Созыкина в помощь.
- Поработайте на виртуальной машине Linux или установите, как вторую операционную систему. Тут вам поможет VirtualBox.
- Начните изучать программирование. Рекомендую начать с Python. Он поможет вам понять концепции программирования.
- Разберитесь, какая деталь в вашем системном блоке за что отвечает. Например, для чего нужна оперативная память и т.д.
- Так же можете прочитать статьи 1, 2, 3 с чего начать изучение Информационной безопасности. Из этих статей вы можете узнать, где изучать интересующие вас темы.
Ресурсы про реверс-инжинирингу
Сейчас переходим к ресурсам и материалам на русском, где вы можете изучить реверс-инжиниринг. Большинство учебных пособий предпочтительно читать на оригинальном английском языке, однако, к счастью, некоторые из них перевели на русский. Я оставлю ссылки на те, с которыми я знаком или читал сам.
- Рекомендую приступить с изучения ассемблера. В реверс-инжиниринге знать ассемблер — это необходимая вещь. Начните с изучения x86. Этого на начальном этапе будет достаточно. Сайт Ravesli с уроками по ассемблеру.
- Изучите язык программирования Си. На нём пишутся многочисленные эксплоиты и вирусы. Книга по языку C.
- Про реверс инжиниринг и основы бинарных уязвимостей даже есть курс! Скачать.
- Прочитайте книгу про реверс инжиниринг. В интернете есть отличная книга - Вскрытие покажет! Практический анализ вредоносного ПО ,переведённая на русский язык, про реверс инжиниринг с лабораторными работами.
- Также про интересующую нас тему очень много написал наш земляк Крис Касперский. Его книги и заметки.
- Хотите больше узнать о работе OS Linux или Windows? Тогда эти книги помогут вам. Внутреннее устройство Windows и Внутренее устройство Linux.
- Отличный форум про отладку и дизассемблирование — это r0Crew.
- Другие книги про эту тему вы можете найти в интернете или на разных интернет-библиотеках. Например, библиотека книг сайта Codeby.
Обязательно всё повторяйте и конспектируйте в процессе обучения! Практика и ещё раз практика.
Моя история обучения в реверс-инжиниринге
Моё обучении ещё не окончилось и не закончится, но поделится информацией и мотивировать читателя хочется. Как и многие люди в ИБ я использовал на Kali Linux. Потом из-за обстоятельств я не мог работать на ПК. Но я отыскал у себя старенький ноутбук. На него я поставил antiX Linux. Затем я наткнулся на курс по реверсу. Впоследствии всё и закрутилось. Изучал IDA PRO, radare2, ассемблер, базовые техники реверса. Хотел продолжить на изучении бинарных уязвимостей, но потом понял, что в этой теме недостаточно силён. Решено было повысить навыки работы реверс-инженера. Оказалось, что ничего секретного разыскивать не нужно в интернете. Многое валяется на поверхности. Я говорю про книгу “Вскрытие покажет! Практический анализ вредоносного ПО”. Прочитав пару страниц из этой книги, стало понятно, что предстоит трудиться и трудиться над своими познаниями. Позже ПК починили и изучать реверс стало намного удобнее. Kali linux я поменял на обыкновенный дистрибутив linux, так как анализ ПО необходимо проводить в VirtualBox. Параллельно с изучением реверс-инжиниринга появилась необходимость изучить язык СИ (Книга по языку C).
Спасибо за прочтение. Желаю читателям не лениться и не сдаваться. Рекомендую всё, что вы изучаете конспектировать и практиковаться больше. Не болейте.