Гайд Достаем DLL из байтов у программы используя HEX редакторы [x32, x64]

Статус
В этой теме нельзя размещать новые ответы.
Забаненный
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
2,375
Реакции[?]
454
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Привет! Это снова я. Сегодня я расскажу как достать DLL (или любые другие исполняемые программы) находящиеся в ресурсах программы (в байтах). Гайдов на RU сегменте как всегда нема, а если есть, то максимально непонятные. Все ваши крякеры (по типу nelfo) используют этот метод.

Для начала нужно определиться с HEX редактором, лично я предпочитаю HxD так как это самый удобный и понятный редактор лично для меня. Вы можете использовать Neo Hex Editor или любой другой, на ваше предпочтение т.к особой роли это не играет.

Открываем программу в HEX редакторе. Теперь мы должны скопировать первые 3 начальных символа ("4D 5A 90" в HEX или "MZђ" в string). Теперь жмем CTRL + F (открываем поиск по строке или HEX значению) и вводим туда скопированные 3 символа (MZђ). В поиске должно быть что-то похожее на это:

1614449270121.png
У нас есть 3 результата, самый первый - это мусор, нам нужны два последних результата (как определить? перед и после MZђ должны стоять точки). Значит в моей программе есть целых две DLL находящихся в байтах! (у вас же может быть 1 или любое другое число). Я пожалуй остановлюсь на первой DLL.

Переходим по результату и удаляем абсолютно все, что идет до MZђ:

1614449264148.png

Должно получиться вот так:

1614449351892.png

Т.е я нашел MZђ и удалил абсолютно все перед ним, и получилось, что этот MZђ теперь стоит в самом начале.

Почти готово! Теперь мы сохраняем, переименовываем в файл с любым названием с расширением .dll, можем инжектить и наслаждаться!)
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
2,375
Реакции[?]
454
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2021
Сообщения
88
Реакции[?]
6
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
пойду крякать скит,спс :SMOrc:
 
Начинающий
Статус
Оффлайн
Регистрация
12 Мар 2021
Сообщения
4
Реакции[?]
2
Поинты[?]
0
Привет! Это снова я. Сегодня я расскажу как достать DLL (или любые другие исполняемые программы) находящиеся в ресурсах программы (в байтах). Гайдов на RU сегменте как всегда нема, а если есть, то максимально непонятные. Все ваши крякеры (по типу nelfo) используют этот метод.

Для начала нужно определиться с HEX редактором, лично я предпочитаю HxD так как это самый удобный и понятный редактор лично для меня. Вы можете использовать Neo Hex Editor или любой другой, на ваше предпочтение т.к особой роли это не играет.

Открываем программу в HEX редакторе. Теперь мы должны скопировать первые 3 начальных символа ("4D 5A 90" в HEX или "MZђ" в string). Теперь жмем CTRL + F (открываем поиск по строке или HEX значению) и вводим туда скопированные 3 символа (MZђ). В поиске должно быть что-то похожее на это:

Посмотреть вложение 134360
У нас есть 3 результата, самый первый - это мусор, нам нужны два последних результата (как определить? перед и после MZђ должны стоять точки). Значит в моей программе есть целых две DLL находящихся в байтах! (у вас же может быть 1 или любое другое число). Я пожалуй остановлюсь на первой DLL.

Переходим по результату и удаляем абсолютно все, что идет до MZђ:

Посмотреть вложение 134358

Должно получиться вот так:

Посмотреть вложение 134361

Т.е я нашел MZђ и удалил абсолютно все перед ним, и получилось, что этот MZђ теперь стоит в самом начале.

Почти готово! Теперь мы сохраняем, переименовываем в файл с любым названием с расширением .dll, можем инжектить и наслаждаться!)
hmm thanks brother nice
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Теперь мы сохраняем
Гораздо выгоднее написать для этого инструмент, который будет быстрее, удобнее и правильнее.
Причем валидовать данные нужно более умно, опираться только на первые 2 байта, т.к. magic в заголовке DOS, третий байт который ты захватываешь уже из следующего поля cblp, которое не обязательно 90.
Дальше взять смещение lfanew и добавить к базе, получишь смещение на PE заголовок, где уже точно можно определить вшитый это файл или нет по сигнатуре PE\0\0.
И отрезать сверху ничего не нужно, твоим методом у тебя остается огромный кусок снизу, который вовсе не обязательно относится к файлу, в норме нужно пройтись по секциям и определить максимальный размер.
 
Статус
В этой теме нельзя размещать новые ответы.
Похожие темы
Сверху Снизу