LIMB
Вход Регистрация

тема

Что такое реверс-инжиниринг + пару книг полезных

Squ0nk · · 10 ответов · 722 просмотров

Обратная разработка (англ. Reverse Engineering) - метод исследования устройств или программного обеспечения с целью понять принцип его работы или обнаружить недокументированные возможности. В информационной безопасности она занимает значительную роль, благодаря ей специалисты в области ИБ могут исследовать вредоносные приложения, разбираться как они работают для последующего, например, составления сигнатур в базы антивирусов и защиты других пользователей от предстоящей цифровой угрозы.

Выделяют 4 методики проведения обратной разработки:

  • анализ обмена данными приложения, с помощью различных анализаторов трафика;
  • использование режима отладки для поиска нужных участков кода и просмотра данных с которыми работает приложение;
  • дизассемблирование машинного кода программы (изучение требует довольно много времени);
  • декомпиляция кода программы для создания исходного кода программы на языке программирования высокого уровня.
Тема дизассмеблирования машинного кода, в целом неразрывно связана с обратной разработкой, но у неспециалиста может попросту отбить какое-либо желание связываться с ним. Связано это с необходимым уровнем подготовки и временем, которое затрачивается на "разборку". Тем не менее, каждый случай может оказаться довольно увлекательным "путешествием" в недра приложения. Поэтому сегодня попробуем наглядно разобрать одно из приложений, чтобы показать, что дизассемблирование - это совсем не страшно и при должном старании и терпении можно прокачать новый скилл.

:exclamation:️ Пиратство в России незаконно. За него суд может назначить штраф до 200 тысяч рублей, до двух лет исправительных работ или лишить свободы на срок до двух лет. А за распространение, использование и создание вредоносного ПО — до семи лет. Поэтому не занимайтесь взломом — занимайтесь кибербезопасностью.
Лучше всего изучить обратную разработку на своих проектах или решать задачи на специальных сайтах — например, на Crackmes. Так вы сможете вполне легально прокачать свои навыки.

Программ для ревёрс-инжиниринга достаточно. Некоторые из них могут быть вам знакомы — например, Cheat Engine. Вообще, это программа для обратной разработки, но она также позволяет накрутить игровой валюты где-нибудь в Sims или GTA.

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: skillbox.ru
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com


Вот ещё список программ:
Давайте в качестве примера покажем, как выглядит обратная разработка в программе IDA Pro. Напишем код «Hello, World» на C++, скомпилируем его и попробуем расшифровать с помощью приложения.

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: skillbox.ru
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com

Так выглядит код программы в среде разработки Visual Studio Code

Открываем программу IDA Pro и видим первый экран. Здесь нажимаем кнопку «New», чтобы начать процесс дизассемблирования:

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: skillbox.ru
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com

Видите — ничего сложного пока нет. Просто нажимаем кнопку «New»

Дальше нам нужно загрузить файл в программу. На выбор есть два варианта — формат DLL или бинарный файл. Нам нужен первый:

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: skillbox.ru
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com

Остальные настройки оставьте по умолчанию. Они нам пока не пригодятся

Готово — вот как выглядит наш дизассемблированный файл. Можно поизучать его и понять, из каких элементов он вообще состоит.

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: skillbox.ru
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com

Так выглядит файл, который прошёл обратную компиляцию, или дизассемблирование

Сначала мы попадаем на вкладку «IDA View-A». Это место, где находится код языка ассемблера нашей переведённой программы. Если приглядеться, то можно увидеть строчку lea rdx, _Val ; "Hello, World". Она показывает, что мы что-то делаем со строкой «Hello, World» — а точнее, пытаемся вывести её в консоль. Но это очевидно для нас, потому что программа простая. Если бы тут был, скажем, код операционной системы Windows, то мы бы думали очень долго.

Давайте посмотрим, что находится в других вкладках ?

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: skillbox.ru
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com


Это вкладка «Hex View 1». Тут дизассемблированный код представлен в виде шестнадцатеричных — то есть понятных для компьютера — символов. Если понимать язык нулей и единиц, отсюда можно достать полезную информацию — например, найти повторяющиеся команды или какие-нибудь интересные данные.

Кстати, обратите внимание на функции слева. Они тоже могут дать много полезной информации:

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: skillbox.ru
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com

Например, по этим функциям можно понять, какие системные вызовы делает программа. Правда, имена этих вызовов не вполне очевидны, поэтому часто приходится гуглить, зачем они нужны.

Переходим на следующую вкладку — «Structures».

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: skillbox.ru
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com

Здесь можно подробнее исследовать, как устроены структуры данных в программе. Например, тут показано, какие классы вызываются, какие типы переменных они используют и какие исключения обрабатывают. Сложно, зато познавательно.

Пару книжек полезных:
Бэкап перевода Яши с wasm.in цикла статей "Введение в реверсинг с нуля, используя IDA PRO" от Рикардо Нарвахи
Не удалось прогрузить медиа

Initial page | Введение в реверсинг с нуля, используя IDA PRO

Не удалось прогрузить медиа
backlect.gitbook.io
Запас https://yutewiyof.gitbook.io/intro-rev-ida-pro
Reversing для начинающих
Вскрытие покажет! Практический анализ вредоносного ПО
👍64 ❤️14 👏11 🤔21 💯6
ОтветSqu0nk

Запас https://yutewiyof.gitbook.io/intro-rev-ida-pro

Яша и его перевод Нарвахи?
👍3
ОтветSqu0nk

Вскрытие покажет! Практический анализ вредоносного ПО

анализ вредоносов, для тех кто хочет делать malware research
Ответraspberry

Яша и его перевод Нарвахи?

Да, перевод от Яши 
Еще от Яши есть видеокурс по ollydbg тык
👍2
ОтветSqu0nk

Да, перевод от Яши Еще от Яши есть видеокурс по ollydbg тык

все так ;)
👍1
в качестве дополнения к статье выше.
можно еще предлижить почитать книгу "Реверсивный инжиниринг приложений под Windows" автор Бирюков и/или "ДНЕВНИК ОХОТНИКА ЗА ОШИБКАМИ" автор Тобиас Клейн
Ответraspberry

в качестве дополнения к статье выше. можно еще предлижить почитать книгу "Реверсивный инжиниринг приложений под Windows" автор Бирюков и/или "ДНЕВНИК ОХОТНИКА ЗА ОШИБКАМИ" автор Тобиас Клейн

Почитать гайды школьников с аниме аватаркой с югейма будет полезнее чем эти книги из 2010х
Ответdunkel

Почитать гайды школьников с аниме аватаркой с югейма будет полезнее чем эти книги из 2010х

мне без гайдов хватило его, основы еще ни кто не отменял и не менял, как бло 8 регистров общего назвначения, так они и остались, единственное что поменялось, так это ос, а точнее архитектура добаивлась.
️ Пиратство в России незаконно. За него суд может назначить штраф до 200 тысяч рублей, до двух лет исправительных работ или лишить свободы на срок до двух лет. А за распространение, использование и создание вредоносного ПО — до семи лет. Поэтому не занимайтесь взломом — занимайтесь кибербезопасностью.
Мне на конфе ребята из PT сказали, что взламывай и реверси что хочешь, но не своих
👍4
Видео с индусамы 
Ответdunkel

Почитать гайды школьников с аниме аватаркой с югейма будет полезнее чем эти книги из 2010х

👍1
Недавно начал изучать реверс, а то не солидно не уметь етого. Спасибо за статью

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.