Перейти к содержанию

Stealthedit с чем ее едят


Рекомендуемые сообщения

Когда копируешь выделенный участок кода который собираешься модифицировать по адресу ставится новая защита неисполняемого участка памяти и защитник страницы(который ты модифицировал/собираешься модифицировать), как только срабатывает первый бряк отладчик изменяет EIP на оригинальный участок кода(скопированный), а когда срабатывает второй бряк, то возвращает выполнение на модифицированную страницу.

Типа того :D

 

2eDYmCEQdLc.jpg

 

На с++ это так работает.

 

Спойлер

DWORD OldProt;
SYSTEM_INFO system_info;
GetSystemInfo(&system_info);
VirtualProtect(reinterpret_cast<void*>(0xDEADBEEF), system_info.dwPageSize, PAGE_EXECUTE | PAGE_GUARD, &OldProt);
 
LONG WINAPI UnhandledExceptionFilter(EXCEPTION_POINTERS *pExceptionInfo)
{
    if (pExceptionInfo->ExceptionRecord->ExceptionCode == STATUS_GUARD_PAGE_VIOLATION)
    {
        if (pExceptionInfo->ContextRecord->Eip == 0xDEADBEEF)
        {
            pExceptionInfo->ContextRecord->Eip = reinterpret_cast<DWORD>(OrigCopy);
        }
     
        pExceptionInfo->ContextRecord->EFlags |= 0x100;
     
        return EXCEPTION_CONTINUE_EXECUTION;
    }
     
    if (pExceptionInfo->ExceptionRecord->ExceptionCode == STATUS_SINGLE_STEP)
    {
        DWORD OldProt;
        SYSTEM_INFO system_info;
        GetSystemInfo(&system_info);
        VirtualProtect(reinterpret_cast<void*>(0xDEADBEEF), system_info.dwPageSize, PAGE_EXECUTE | PAGE_GUARD, &OldProt);

        return EXCEPTION_CONTINUE_EXECUTION;
    }
     
    return EXCEPTION_CONTINUE_SEARCH;
}

 

 

Я мог что-то напутать или забыть,  но можешь загуглить PageGuard Hooking, есть статьи где подробно расписано как это работает.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, partoftheworlD сказал:

Типа того :D

Ааа, PAGE_GUARD не смогу поставить, защита не дает, а PAGE_NOACESS можно перехватывать? 

 

Изменено пользователем Xipho
Пункт 1.8 правил форума.
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.