вообщем столкнулся с задачей - нужно проецировать секции PE файла в память выставляя соответсвующие аттрибуты страницам памяти... использовал вот этот код , но он не совсем корректный и не полный Код (Text): ULONG protect(ULONG characteristics) { static const ULONG mapping[] = {PAGE_NOACCESS,PAGE_EXECUTE,PAGE_READONLY,PAGE_EXECUTE_READ,PAGE_READWRITE,PAGE_EXECUTE_READWRITE,PAGE_READWRITE,PAGE_EXECUTE_READWRITE}; ULONG res = 0; res = mapping[characteristics >> 29]; return res; } есть ли какая то формула переводящая наиболее точно значение аттрибутов секции PE в нужный аттрибут для стр памяти ?
взять атрибуты секции, сбросить флажки, которые не относятся к аттрибутам страницы, а дальше просто перебором.
хм непонятно что за флажки сбрасывать , вот столкнулся - прога упакованная upx , открываю в olly 2.0 если использовать функцию дедушки Неббета выше , то в итоге аттрибуты выдаст PAGE_EXECUTE_READWRITE немного не то , но в принципе все работает, хотелось бы до идеала довести
Посмотри как это в вин реализовано. Лучше, конечно, если у тебя есть исходники винды. Под отладчиком будет геморней.
karabas_barabas Например: IMAGE_SCN_CNT_CODE, IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_CNT_UNINITIALIZED_ DATA, и т. д. см Microsoft Portable Executable and Common Object File Format Specification