Skip to content

Commit

Permalink
1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
bytecode77 committed Feb 21, 2021
1 parent 596a642 commit fd59d64
Show file tree
Hide file tree
Showing 185 changed files with 27,812 additions and 4,236 deletions.
Binary file removed !Docs/Examples/$77-ExampleExecutable.exe
Binary file not shown.
10 changes: 0 additions & 10 deletions !Docs/Examples/Readme.txt

This file was deleted.

Binary file removed !Docs/ImageBanner.pdn
Binary file not shown.
2 changes: 0 additions & 2 deletions !Docs/Rescue.txt

This file was deleted.

2 changes: 0 additions & 2 deletions !Docs/Restart Explorer.bat

This file was deleted.

7 changes: 6 additions & 1 deletion .gitignore
Expand Up @@ -16,4 +16,9 @@ TestResults/
*~*.xlsx
*~*.docx

$Build/
$Build/
vs/Install/Resources/
vs/InstallStager/Resources/
vs/InstallService32/Resources/
vs/InstallService64/Resources/
vs/Uninstall/Resources/
Binary file added Docs/Documentation.docx
Binary file not shown.
199 changes: 199 additions & 0 deletions Docs/Removed.cpp
@@ -0,0 +1,199 @@
// Backup of removed code & work in progress tests that may be implemented later on



NTSTATUS NTAPI Hooks::HookedNtQuerySystemInformationEx(nt::SYSTEM_INFORMATION_CLASS systemInformationClass, PVOID inputBuffer, ULONG inputBufferLength, PVOID systemInformation, ULONG systemInformationLength, PULONG returnLength)
{
ULONG newReturnLength;
NTSTATUS status = OriginalNtQuerySystemInformationEx(systemInformationClass, inputBuffer, inputBufferLength, systemInformation, systemInformationLength, &newReturnLength);
if (returnLength) *returnLength = newReturnLength;

if (NT_SUCCESS(status))
{
if (systemInformationClass == nt::SYSTEM_INFORMATION_CLASS::SystemProcessorCycleTimeInformation)
{
//TODO: TaskMgr (systemInformationLength = 512, inputBufferLength = 2, returnLength = 64)
//for (ULONG i = 0; i < newReturnLength / sizeof(SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION); i++)
//{
// PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION cycleTime = &((PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION)systemInformation)[i];
// cycleTime->CycleTime = 0;
//}
}
}

return status;
}

NTSTATUS NTAPI Hooks::HookedNtQueryInformationProcess(HANDLE process, nt::PROCESS_INFORMATION_CLASS processInformationClass, PVOID processInformation, ULONG processInformationLength, PULONG returnLength)
{
NTSTATUS status = OriginalNtQueryInformationProcess(process, processInformationClass, processInformation, processInformationLength, returnLength);

if (NT_SUCCESS(status))
{
if (processInformationClass == nt::PROCESS_INFORMATION_CLASS::ProcessCycleTime)
{
}
else if (processInformationClass == nt::PROCESS_INFORMATION_CLASS::ProcessTimes)
{
//TODO: TaskMgr
///ARGE_INTEGER hiddenKernelTime = { 0 };
//LARGE_INTEGER hiddenUserTime = { 0 };
//if (GetProcessHiddenTimes(&hiddenKernelTime, &hiddenUserTime, NULL))
//{
// nt::PKERNEL_USER_TIMES times = (nt::PKERNEL_USER_TIMES)processInformation;
// times->KernelTime.QuadPart -= hiddenKernelTime.QuadPart;
// times->UserTime.QuadPart -= hiddenUserTime.QuadPart;
//}
}
}

return status;
}

BOOL WINAPI Hooks::HookedEnumServiceGroupW(SC_HANDLE serviceManager, DWORD serviceType, DWORD serviceState, LPBYTE services, DWORD servicesLength, LPDWORD bytesNeeded, LPDWORD servicesReturned, LPDWORD resumeHandle, DWORD reserved)
{
BOOL result = OriginalEnumServiceGroupW(serviceManager, serviceType, serviceState, services, servicesLength, bytesNeeded, servicesReturned, resumeHandle, reserved);

if (result && services && servicesReturned)
{
//resumeHandle = NULL;
LPENUM_SERVICE_STATUSW serviceList = (LPENUM_SERVICE_STATUSW)services;

for (DWORD i = 0; i < *servicesReturned; i++)
{
//if (Rootkit::HasPrefix(serviceList[i].lpServiceName))
{
//for (DWORD j = i + 1; j < *servicesReturned - 1; j++)
//{
// serviceList[j].lpServiceName = serviceList[j + 1].lpServiceName;
// serviceList[j].lpDisplayName = serviceList[j + 1].lpDisplayName;
// serviceList[j].ServiceStatus = serviceList[j + 1].ServiceStatus;
// memcpy(&serviceList[j], &serviceList[j + 1], sizeof(ENUM_SERVICE_STATUSW));
//}

//(*servicesReturned)--;
}
}
}

return result;
}

typedef enum _PROCESS_INFORMATION_CLASS
{
ProcessBasicInformation,
ProcessQuotaLimits,
ProcessIoCounters,
ProcessVmCounters,
ProcessTimes,
ProcessBasePriority,
ProcessRaisePriority,
ProcessDebugPort,
ProcessExceptionPort,
ProcessAccessToken,
ProcessLdtInformation,
ProcessLdtSize,
ProcessDefaultHardErrorMode,
ProcessIoPortHandlers,
ProcessPooledUsageAndLimits,
ProcessWorkingSetWatch,
ProcessUserModeIOPL,
ProcessEnableAlignmentFaultFixup,
ProcessPriorityClass,
ProcessWx86Information,
ProcessHandleCount,
ProcessAffinityMask,
ProcessPriorityBoost,
ProcessDeviceMap,
ProcessSessionInformation,
ProcessForegroundInformation,
ProcessWow64Information,
ProcessImageFileName,
ProcessLUIDDeviceMapsEnabled,
ProcessBreakOnTermination,
ProcessDebugObjectHandle,
ProcessDebugFlags,
ProcessHandleTracing,
ProcessIoPriority,
ProcessExecuteFlags,
ProcessResourceManagement,
ProcessCookie,
ProcessImageInformation,
ProcessCycleTime,
ProcessPagePriority,
ProcessInstrumentationCallback,
ProcessThreadStackAllocation,
ProcessWorkingSetWatchEx,
ProcessImageFileNameWin32,
ProcessImageFileMapping,
ProcessAffinityUpdateMode,
ProcessMemoryAllocationMode,
ProcessGroupInformation,
ProcessTokenVirtualizationEnabled,
ProcessConsoleHostProcess,
ProcessWindowInformation,
ProcessHandleInformation,
ProcessMitigationPolicy,
ProcessDynamicFunctionTableInformation,
ProcessHandleCheckingMode,
ProcessKeepAliveCount,
ProcessRevokeFileHandles,
ProcessWorkingSetControl,
ProcessHandleTable,
ProcessCheckStackExtentsMode,
ProcessCommandLineInformation,
ProcessProtectionInformation,
ProcessMemoryExhaustion,
ProcessFaultInformation,
ProcessTelemetryIdInformation,
ProcessCommitReleaseInformation,
ProcessDefaultCpuSetsInformation,
ProcessAllowedCpuSetsInformation,
ProcessSubsystemProcess,
ProcessJobMemoryInformation,
ProcessInPrivate,
ProcessRaiseUMExceptionOnInvalidHandleClose,
ProcessIumChallengeResponse,
ProcessChildProcessInformation,
ProcessHighGraphicsPriorityInformation,
ProcessSubsystemInformation,
ProcessEnergyValues,
ProcessActivityThrottleState,
ProcessActivityThrottlePolicy,
ProcessWin32kSyscallFilterInformation,
ProcessDisableSystemAllowedCpuSets,
ProcessWakeInformation,
ProcessEnergyTrackingState,
ProcessManageWritesToExecutableMemory,
ProcessCaptureTrustletLiveDump,
ProcessTelemetryCoverage,
ProcessEnclaveInformation,
ProcessEnableReadWriteVmLogging,
ProcessUptimeInformation,
ProcessImageSection,
ProcessDebugAuthInformation,
ProcessSystemResourceManagement,
ProcessSequenceNumber,
ProcessLoaderDetour,
ProcessSecurityDomainInformation,
ProcessCombineSecurityDomainsInformation,
ProcessEnableLogging,
ProcessLeapSecondInformation,
ProcessFiberShadowStackAllocation,
ProcessFreeFiberShadowStackAllocation,
ProcessAltSystemCallInformation,
ProcessDynamicEHContinuationTargets,
} PROCESS_INFORMATION_CLASS;

typedef struct _KERNEL_USER_TIMES
{
LARGE_INTEGER CreateTime;
LARGE_INTEGER ExitTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;

typedef BOOL(WINAPI *ENUMSERVICEGROUPW)(SC_HANDLE serviceManager, DWORD serviceType, DWORD serviceState, LPBYTE services, DWORD servicesLength, LPDWORD bytesNeeded, LPDWORD servicesReturned, LPDWORD resumeHandle, DWORD reserved);
typedef BOOL(WINAPI *ENUMSERVICESSTATUSA)(SC_HANDLE serviceManager, DWORD serviceType, DWORD serviceState, LPENUM_SERVICE_STATUS services, DWORD servicesLength, LPDWORD bytesNeeded, LPDWORD servicesReturned, LPDWORD resumeHandle);
typedef BOOL(WINAPI *ENUMSERVICESSTATUSEXA)(SC_HANDLE serviceManager, SC_ENUM_TYPE infoLevel, DWORD serviceType, DWORD serviceState, LPBYTE services, DWORD servicesLength, LPDWORD bytesNeeded, LPDWORD servicesReturned, LPDWORD resumeHandle, LPCSTR groupName);
typedef BOOL(WINAPI *ENUMSERVICESSTATUSEXW)(SC_HANDLE serviceManager, SC_ENUM_TYPE infoLevel, DWORD serviceType, DWORD serviceState, LPBYTE services, DWORD servicesLength, LPDWORD bytesNeeded, LPDWORD servicesReturned, LPDWORD resumeHandle, LPCWSTR groupName);
43 changes: 0 additions & 43 deletions Install/MainWindow.xaml

This file was deleted.

70 changes: 0 additions & 70 deletions Install/MainWindow.xaml.cs

This file was deleted.

Binary file removed Install/Resources/ImageBanner.png
Binary file not shown.
Binary file removed Install/Resources/Install.ico
Binary file not shown.
2 changes: 1 addition & 1 deletion LICENSE.md
@@ -1,4 +1,4 @@
Copyright (c) 2017, bytecode77
Copyright (c) 2021, bytecode77
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down

0 comments on commit fd59d64

Please sign in to comment.