Форум программистов CodeGuru
19 Июль 2018, 21:30:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Ринг0. Запись в пользовательское АП  (Прочитано 18188 раз)
0 Пользователей и 1 Гость смотрят эту тему.
asbobby
Новичок
*
Офлайн Офлайн

Сообщений: 1


Просмотр профиля
« : 22 Март 2013, 11:57:18 »

Здравствуйте!

Возникла проблема. Win XP SP2 32 бита

Необходимо перезаписать байты по адресу переменной pCodeEntryPoint.
Все функции отрабатывают хорошо, но, как показывает сравнение, участок памяти не изменяется.

Что делаю не так?


Код:
PsSetLoadImageNotifyRoutine(MonitorLoadImageNotifyRoutine);

VOID MonitorLoadImageNotifyRoutine(IN PUNICODE_STRING  FullImageName, IN HANDLE  ProcessId, IN PIMAGE_INFO  ImageInfo)
{
PMDL                  mdl;
PVOID                 MappedImTable;
PVOID                 pCodeEntryPoint;
UCHAR                 pNumBuf[16];

   if(..)
return;

pCodeEntryPoint = PEFile_GetEntryPointOffset32(ImageInfo->ImageBase, TRUE);

if(pCodeEntryPoint)
{

memcpy(pNumBuf, pCodeEntryPoint, 8);
DbgPrint("ENTRY POINT1: %02X, %02X, %02X, %02X, %02X, %02X, %02X, %02X\n",
pNumBuf[0],
pNumBuf[1],
pNumBuf[2],
pNumBuf[3],
pNumBuf[4],
pNumBuf[5],
pNumBuf[6],
pNumBuf[7]);

mdl = MmCreateMdl(NULL, pCodeEntryPoint, 8);

if(mdl)
{
MmBuildMdlForNonPagedPool(mdl);

mdl->MdlFlags = mdl->MdlFlags | MDL_MAPPED_TO_SYSTEM_VA;

MappedImTable = MmMapLockedPages(mdl, KernelMode);

if(MappedImTable)
{
DbgPrint("OK\n");
memcpy(MappedImTable, pShellCode, 8);

MmUnmapLockedPages(MappedImTable, mdl);
}

IoFreeMdl(mdl);

pCodeEntryPoint = PEFile_GetEntryPointOffset32(ImageInfo->ImageBase, TRUE);
   memcpy(pNumBuf, pCodeEntryPoint, 8);
   DbgPrint("ENTRY POINT1: %02X, %02X, %02X, %02X, %02X, %02X, %02X, %02X\n",
   pNumBuf[0],
   pNumBuf[1],
   pNumBuf[2],
   pNumBuf[3],
   pNumBuf[4],
   pNumBuf[5],
   pNumBuf[6],
   pNumBuf[7]);
}
}

}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!