Просто мануала нормального нет..
INT PageFaultExceptionFilter(DWORD dwCode)
{
LPVOID lpvResult;
EXCEPTION_POINTERS *ep;
if (dwCode != EXCEPTION_ACCESS_VIOLATION)
{
printf(("Exception code = %d.\n"), dwCode);
return EXCEPTION_EXECUTE_HANDLER;
}
printf("Exception is a page fault.\n");
ep = GetExcepotionInformation();
lpvResult = VirtualAlloc((LPVOID)ep->ExceptionRecord.ExceptionInformation[1], pageSize,MEM_COMMIT, PAGE_READWRITE);
if (lpvResult == NULL)
{
printf("VirtualAlloc failed.\n");
return EXCEPTION_EXECUTE_HANDLER;
}
else{printf("Allocating another page.\n");}
pageCounter++;
return EXCEPTION_CONTINUE_EXECUTION;
}
ep->ExceptionRecord.ExceptionInformation[1]
, я ожидаю, что в начало сбойной страницы. возможно как раз из-за этого....
EXCEPTION_POINTERS::ExceptionRecord.ExceptionInformation[1]
. А как же померяться?
...
Да и просто поболтать?
AddressOfEntryPoint
заинжектить длл в другой процесс
mirexdoors, это иллюзия. Настроить sudo "как надо" можно только для очень-очень ограниченных программ, поведение которых известно и предсказуемо вдоль и поперёк. Установка пакетов в эту категорию не входит. Что rpm, что dpkg поддерживают выполнение скриптов из устанавливаемого пакета, собрать пакет со своим скриптом который запускает shell от рута во время установки -- плёвое дело.