Варианты:
1) Кури спецификацию формата PE (Portable Executable).
2) Сохранить считанный массив байт (к примеру, первые 128 байт) и бинарно найти его в EXE-файле, определить адрес в файле.
3) Сделать в начале и конце функции магические АСМ-вставки с какой-нибудь константой, по которой функцию легко найти в файле. Или же вызов некой ненужной функции из липовой DLL, который потом будет убран, но позволит найти начало и конец для крипты при парсинге файла.
Также надо учитывать, что секция кода для записи изначально не доступна, поэтому для расшифровки скорее всего придется делать VirtualProtect.
А также не удивляйся, если вдруг какие-нибудь антивирусы начнут генерировать тонны кирпичей на такое поведение.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
|