Друзья! То есть тут http://www.wasm.ru/article.php?article=green2red02 написано: То есть как вы поняли, это всё флаги, к ним надо применить побитовую операцию и получить A0000020H Какую операцию? Я всё перепробовал, A0000020H никак не выходит, при or или xor получается C0000020G, никак не A! ПОмогите пожалуйста! Спасибо.
| Код (Text): #define IMAGE_SCN_CNT_CODE 0x00000020 // Section contains code. #define IMAGE_SCN_MEM_EXECUTE 0x20000000 // Section is executable. #define IMAGE_SCN_MEM_READ 0x40000000 // Section is readable. #define IMAGE_SCN_MEM_WRITE 0x80000000 // Section is writeable. http://webcache.googleusercontent.c...67-8017-4bae-9fde-d599bac8184a/pecoff_v8.docx
так правильно получается... к флагам применяется операция "или"... 0x80000000 || 0x40000000 = 0xC0000000...
А в статье, на которую я дал ссылку, написано, что должно быть A! Вот чё делать? Наугад оставить C? Но это не наш метод! Наугад нельзя действовать.
Код (Text): 40 = 0100 0000 80 = 1000 0000 A0 = 1010 0000 была применена операция сдвига 40 вправо, затем или))) какие ещё варианты?)))
что значит "чего делать"? это флаги, чтобы работали оба, они оба же должны попасть в соответствующие биты 32-битного числа... следовательно, для них необходимо применить операцию "или" по битам... тут кстати у меня есть опечатка, я думаю все поняли где))) и какой язык)))
Ну я не знаю, если никто ничё не отпишет, буду пробовать так. Буду считать, что должно быть C и в статье опечатка
amvoz Ещё одно независимое подтверждение: опечатка. Можешь вывести это из первого же ответа в этой теме. >Флаги IMAGE_SCN_MEM_EXECUTE и IMAGE_SCN_MEM_READ эквивалентны. Они были эквивалентны лет шесть назад. Сейчас – нет. И на всякий случай: из наличия атрибута IMAGE_SCN_CNT_CODE не следует, что страницы выполнимы. Для выполнимости используется атрибут IMAGE_SCN_MEM_EXECUTE.
Код (Text): CCHAR MiGetImageProtection ( IN ULONG SectionCharacteristics ) /*++ Routine Description: This function takes a section characteristic mask from the image and converts it to an PTE protection mask. Arguments: SectionCharacteristics - Supplies the characteristics mask from the image. Return Value: Returns the protection mask for the PTE. --*/ { ULONG Index; PAGED_CODE(); Index = 0; if (SectionCharacteristics & IMAGE_SCN_MEM_EXECUTE) { Index |= 1; } if (SectionCharacteristics & IMAGE_SCN_MEM_READ) { Index |= 2; } if (SectionCharacteristics & IMAGE_SCN_MEM_WRITE) { Index |= 4; } if (SectionCharacteristics & IMAGE_SCN_MEM_SHARED) { Index |= 8; } return MmImageProtectionArray[Index]; } Код (Text): CCHAR MmImageProtectionArray[16] = { MM_NOACCESS, MM_EXECUTE, MM_READONLY, MM_EXECUTE_READ, MM_WRITECOPY, MM_EXECUTE_WRITECOPY, MM_WRITECOPY, MM_EXECUTE_WRITECOPY, MM_NOACCESS, MM_EXECUTE, MM_READONLY, MM_EXECUTE_READ, MM_READWRITE, MM_EXECUTE_READWRITE, MM_READWRITE, MM_EXECUTE_READWRITE }