Что такое дамп программы и какой смысл от него?

Олдфаг
Статус
Оффлайн
Регистрация
4 Янв 2020
Сообщения
2,996
Реакции[?]
1,275
Поинты[?]
5K
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
вопрос в шапке
Изначально программа хранится на диске, на винде в формате PE (.dll/.exe/.sys), на линуксе elf (.so, .out).
Затем ты запускаешь программу и загрузчик образов располагает файл в памяти процесса (или создает новый) и начинает исполнять код внутри начиная с точки входа, при этом может происходить куча операций которые изменят образ и он будет совсем не похожим на то что было на диске.
Простой пример протекторы, они упаковывают файл, так что на диске он в зашифрованном и/или сжатом виде, после запуска он расшифрует и разожмет себя (это необходимо чтобы он мог вообще исполниться).
Поэтому например чтобы не разбираться как получить готовый к изучению образу можно просто запустить программу и сдампить ее, дамп как раз просто содержит всю память на момент снятия.
Конечно файл будет не рабочим, т.е. запустить его снова не выйдет, т.к. там нужно фиксить импорты и т.п., но для изучения пойдет, а если доисправить то можно назвать это распаковкой.
 
Последнее редактирование:
Сверху Снизу