![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
W4FhLF, dos stub не может быть больше 64кбайт, т.е. смещение PE заголовка меньше 64кбайт
чтобы такого небыло, надо чтобы небыло проверки которую можно было бы забить nop'ами, т.е. ключ должен не только сравниваться, но и расшифровывать код W4FhLF, у тя в код не соответствует ни спецификации ни загрузчику, вместо local_psh = (PIMAGE_SECTION_HEADER)((PUCHAR)local_poh + sizeof(IMAGE_OPTIONAL_HEADER)); должно быть так local_psh = (PIMAGE_SECTION_HEADER)((PUCHAR)local_poh + local_pfh.SizeOfOptionalHeader); есть файлы, у которых SizeOfOptionalHeader не равен 0xE0 |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Ага, ты прав. Я помню об этом ещё читал в упаковщиках от Володи. Но исправить у себя забыл. Что ещё видно? Насчёт особо дотошных проверок я не заморачивался. Но если есть желание? можно поискать и посмотреть функцию MiVerifyImageHeader, это из загрузчика. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
да вообще непонятно зачем все эти проверки, если можуль есть в памяти значит у него правильный заголовок (если его там не пропатчили)
и непонятно зачем использовать три отдельных указателя на структуры которые следуют друг за другом OUT PIMAGE_FILE_HEADER* pfh OPTIONAL, OUT PIMAGE_OPTIONAL_HEADER* poh OPTIONAL, OUT PIMAGE_SECTION_HEADER* psh OPTIONAL проще считать весь ПЕ-заголовок одной структурой, по крайней мере FILE_HEADER и OPTIONAL_HEADER это если тебе надо например PE и COFF различать они на два отдельных разбиты, а в PE-то зачем их разбивать %) так что смысл этой функции мне не понятен, одно дело проверить правильность, если это действительно надо (базу модуля например найти) а другое дело получить указатель на ПЕ заголовок (прибавить к базе его смещение) |
|||
|
||||
| W4FhLF |
|
||||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Он может быть загружен в память и мной(MapOfViewFile).
Как зачем? Это три отдельные сущности и работа с ними осуществляется по отдельности. Это вполне логично и неважно как они следуют в памяти. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
||||
|
|||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
W4FhLF, почему отдельные-то? если не знать о спецификации, то ПЕ заголовок выглядит как одна большая структура
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |