Всем привет и с праздником. Ситуация в общем такая. Мною написана прога, которая добавляет в таблицу импорта выбранного exeшника свою Dll и шифрует секцию кода exeшника. Ну это все делалось сами знаете как: CreateFile, CreateFileMapping, MapViewOfFile. Теперь вот надо написать Dll, которая при запуске расшифрует секцию кода того самого exeшника. Вот только как теперь расшифровать секцию уже запущенного процесса (функция расшифровки то есть, а как получить доступ к секции кода - не знаю)? Спс заранее всем откликнувшимся.
Когда я зашифровывал секцию кода "жертвы", то открывал его (СreateFile, CreateFileMapping, MapViewOfFile), получал отображение, шифровал, добавлял длл. При запуске "жертвы" (хотя это скорее защищаемое приложение, но в моем случае..) управление получает естессна длл, которая при Process_attach должна расшифровать секцию кода, а при Process_detach зашифровать снова. Но вот только процесс то уже запущен и СreateFile, CreateFileMapping, MapViewOfFile не прокатят, а как получить начальный и конечный адрес секции кода exe, который уже загружен в память я не знаю.
GetModuleHandle,0 - получаешь базу образа ехе файла потом читай мануалы по формату РЕ - там узнаешь, как получить VA и размер секции кода
Код (Text): 1. Посчитать адрес первого описателя секции (IMAGE_SECTION_HEADER) - макрос для получения адреса есть в Winnt.h вроде 2. Найти нужный описатель 3. IMAGE_SECTION_HEADER::Misc.VirtualSize - размер IMAGE_SECTION_HEADER::VirtualAddress - RVA секции
либо заюзать IMAGE_NT_HEADERS::IMAGE_OPTIONAL_HEADER::BaseOfCode IMAGE_NT_HEADERS::IMAGE_OPTIONAL_HEADER::SizeOfCode
Толку от шифрования, если в памяти модули распакованный. Наверно очередное гуано - криптор да ? Сохранение дампа рулит.
ну дык антидапм сделает, что нибудь вроде копимем2 только не по страницам расшифровывать а по инструкциям
вот базу процесса мне и надо было. Спасибо всем ответившим. 2 Clerk: Ну да, если есть правильный ключ, то после дамп рулит. Да, наверное очередной гуано-криптер, а мне большего и не надо), мне бы диплом защитить.
Понятно. Базу процесса - что это значит, вам адрес обьекта процесс найти нужно, или начало виртуального адресного пространства в физической памяти или как это понять ? Липовый диплом будет.
тогда все ясно ключ и не нужен - ты сам все расшифруешь дамп снимается после передачи управления расшифрованному коду и все - минуту может займет лучше смени тему пока не поздно для диплома это уж слишком... по-детски зы: Clerk криптор уже чует за версту)
Вот ключ то как раз-таки нужен. Дешифровщик его спросит обязательно. При неправильно введенном ключе программа работать не будет (просто расшифрует все не правильно).
Ну мб стоило назвать "Как получить базу ехе образа из dll". Впрочем базу образа мне нужно получить как раз для того, чтобы расшифровать секцию кода).