Windows7 Поиск базы kernel32.dll
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Windows7 Поиск базы kernel32.dll - 2009-07-18 12:07:23.866666
|
|
|
Sunzer
Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
|
Поставил себе вчера на виртуалку семерку, и столкнулся с проблемой. Этот код получает базу kernel32.dll через PEB.
MOV EAX,DWORD PTR FS:[30]
MOV EAX,DWORD PTR DS:[EAX+0C]
MOV ESI,DWORD PTR DS:[EAX+1C]
LODS DWORD PTR DS:[ESI]
MOV EAX,DWORD PTR DS:[EAX+8] В Windows7 получается база kernelbase.dll. Далее мой код парсит таблицу экспорта,находит адрес GetProcAddress. После того как найдет, передает имя "LoadLibraryA" и базу которая нашлась через PEB. Далее возратился ноль. В этом и проблема, я не долго думая взял саму либу kernelbase.dll В экспорте не оказалось "LoadLibraryA", за то есть LoadLibraryExA и LoadLibraryExW для юникода соответственно. Под Windows 2000, Windows 2003 Server, Windows XP SP3, Windows Vista, код по поиску двух апи работает нормально. Теперь решения 1) Как то найти базу kernel32.dll - Скан памяти в лоб - Как то еще хитро - Через SEH или что-то 2) Заюзать через LoadLibraryExA - Там какие то другие параметры, не юзал раньше но думаю тоже подойдет. Желательно как-то без особых извращений найти базу кернеля.
|
|
|
RE: Windows7 Поиск базы kernel32.dll - 2009-07-23 11:37:36.066666
|
|
|
Sunzer
Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
|
Ок, посмотрю позже, уже через день меня не будет в стране. Я и не боюсь новых апишек, просто хочу что бы было либче, легче, универсальней. Код должен быть база-независим.
|
|
|
|
|