Download rtx/windows_rtx/main_orig.c from Snapkitty/sov-kernel-monster: direct link, hf CLI and curl.
- Browser
- Download file 5.9 kB
-
https://huggingface.co/Snapkitty/sov-kernel-monster/resolve/main/rtx/windows_rtx/main_orig.c
- Command line
-
hf download hf://Snapkitty/sov-kernel-monster/rtx/windows_rtx/main_orig.c
-
curl -L -o main_orig.c https://huggingface.co/Snapkitty/sov-kernel-monster/resolve/main/rtx/windows_rtx/main_orig.c
5.9 kB
| /* Zero-CRT entry point — no standard headers, no C runtime | |
| * Manual kernel32 resolution via PEB walk | |
| * Boot: CUDA -> Power -> Janet -> Scheduler -> loop | |
| */ | |
| typedef unsigned long long uint64_t; | |
| typedef unsigned int uint32_t; | |
| typedef unsigned short uint16_t; | |
| typedef unsigned char uint8_t; | |
| typedef int int32_t; | |
| typedef unsigned long ULONG; | |
| typedef void* PVOID; | |
| typedef PVOID HANDLE; | |
| typedef uint32_t DWORD; | |
| typedef uint64_t ULONG_PTR; | |
| typedef int BOOL; | |
| typedef unsigned long long SIZE_T; | |
| typedef int (*LPTHREAD_START_ROUTINE)(PVOID); | |
| /* PE structures (inline) */ | |
| typedef struct { struct _LE* Flink; struct _LE* Blink; } LIST_ENTRY, *PLIST_ENTRY; | |
| typedef struct { uint16_t Length; uint16_t MaximumLength; wchar_t* Buffer; } UNICODE_STRING; | |
| typedef struct { | |
| LIST_ENTRY L1, L2, L3; | |
| PVOID DllBase; PVOID EntryPoint; ULONG SizeOfImage; | |
| UNICODE_STRING FullDllName; UNICODE_STRING BaseDllName; | |
| } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; | |
| typedef struct { ULONG Length; BOOL Init; HANDLE Ss; LIST_ENTRY L1; LIST_ENTRY L2; } PEB_LDR_DATA, *PPEB_LDR_DATA; | |
| typedef struct { uint8_t r[3]; uint8_t r2; PVOID r3[2]; PPEB_LDR_DATA Ldr; } PEB, *PPEB; | |
| typedef struct { uint16_t e_magic; uint8_t r[58]; int32_t e_lfanew; } IMAGE_DOS_HEADER; | |
| typedef struct { uint32_t r[4]; } IMAGE_DATA_DIRECTORY; | |
| typedef struct { uint16_t Magic; uint8_t r1[6]; uint32_t r2[7]; uint64_t r3; uint32_t r4[4]; | |
| uint16_t r5[6]; uint32_t r6[4]; uint64_t r7[4]; uint32_t r8[2]; IMAGE_DATA_DIRECTORY DD[16]; } IMAGE_OPTIONAL_HEADER64; | |
| typedef struct { uint32_t Sig; uint32_t r[5]; uint16_t SzOpt; uint16_t Chars; IMAGE_OPTIONAL_HEADER64 Opt; } IMAGE_NT_HEADERS64; | |
| typedef struct { uint32_t r[4]; uint32_t Name; uint32_t Base; uint32_t NFunc; uint32_t NNames; | |
| uint32_t AddrFunc; uint32_t AddrNames; uint32_t AddrOrd; } IMAGE_EXPORT_DIRECTORY; | |
| typedef void* (*VirtualAlloc_t)(void*,SIZE_T,DWORD,DWORD); | |
| typedef BOOL (*WriteConsoleA_t)(HANDLE,const void*,DWORD,DWORD*,void*); | |
| typedef HANDLE (*GetStdHandle_t)(DWORD); | |
| typedef void (*ExitProcess_t)(DWORD); | |
| static VirtualAlloc_t g_VirtualAlloc; | |
| static WriteConsoleA_t g_WriteConsoleA; | |
| static GetStdHandle_t g_GetStdHandle; | |
| static ExitProcess_t g_ExitProcess; | |
| /* Janet / scheduler types (mirrors sov_rtx.h) */ | |
| typedef struct { uint32_t type_tag; uint32_t length; uint32_t capacity; float data[32]; } sov_janet_array_t; | |
| typedef struct { uint32_t state; uint32_t batch_size; sov_janet_array_t janet; } sov_scheduler_t; | |
| extern int sov_cuda_init(void); | |
| extern void sov_power_handler_init(void); | |
| extern int sov_scheduler_init(sov_scheduler_t*); | |
| extern int sov_scheduler_step(sov_scheduler_t*, void*, void*); | |
| extern int sov_get_power_state(void); | |
| static PVOID peb_find(const wchar_t* tgt) { | |
| PVOID peb; __asm__ volatile("mov %%gs:0x60,%0":"=r"(peb)); | |
| PPEB_LDR_DATA ldr = ((PPEB)peb)->Ldr; | |
| LIST_ENTRY* h = &ldr->L2, *c = h->Flink; | |
| while (c != h) { | |
| PLDR_DATA_TABLE_ENTRY e = (PLDR_DATA_TABLE_ENTRY)((uint8_t*)c - 16); | |
| if (e->BaseDllName.Buffer) { | |
| int ok=1; const wchar_t* n=e->BaseDllName.Buffer; | |
| for (int i=0;i<e->BaseDllName.Length/2;i++){ | |
| wchar_t a=n[i],b=tgt[i]; | |
| if(a>='A'&&a<='Z')a+=32; if(b>='A'&&b<='Z')b+=32; | |
| if(a!=b){ok=0;break;} | |
| } | |
| if(ok&&tgt[e->BaseDllName.Length/2]==0) return e->DllBase; | |
| } | |
| c = c->Flink; | |
| } | |
| return 0; | |
| } | |
| static PVOID pe_exp(PVOID base, const char* name) { | |
| if (!base) return 0; | |
| IMAGE_DOS_HEADER* dos = (IMAGE_DOS_HEADER*)base; | |
| if (dos->e_magic != 0x5A4D) return 0; | |
| IMAGE_NT_HEADERS64* nt = (IMAGE_NT_HEADERS64*)((uint8_t*)base + dos->e_lfanew); | |
| if (nt->Sig != 0x4550) return 0; | |
| uint32_t erva = nt->Opt.DD[0].r[0]; if (!erva) return 0; | |
| IMAGE_EXPORT_DIRECTORY* exp = (IMAGE_EXPORT_DIRECTORY*)((uint8_t*)base + erva); | |
| uint32_t* nms = (uint32_t*)((uint8_t*)base + exp->AddrNames); | |
| uint32_t* fns = (uint32_t*)((uint8_t*)base + exp->AddrFunc); | |
| uint16_t* ords = (uint16_t*)((uint8_t*)base + exp->AddrOrd); | |
| int lo=0, hi=(int)exp->NNames-1; | |
| while (lo<=hi) { | |
| int mid=(lo+hi)>>1; const char* mn=(const char*)((uint8_t*)base+nms[mid]); | |
| int cmp=0; for(int i=0;;i++){if(!mn[i]&&!name[i])break;if(mn[i]!=name[i]){cmp=(mn[i]<name[i])?-1:1;break;}} | |
| if(!cmp) return (PVOID)((uint8_t*)base+fns[ords[mid]]); | |
| else if(cmp<0) lo=mid+1; else hi=mid-1; | |
| } | |
| return 0; | |
| } | |
| static void resolve_kernel32(void) { | |
| PVOID k32 = peb_find(L"kernel32.dll"); | |
| g_VirtualAlloc = (VirtualAlloc_t) pe_exp(k32, "VirtualAlloc"); | |
| g_WriteConsoleA = (WriteConsoleA_t)pe_exp(k32, "WriteConsoleA"); | |
| g_GetStdHandle = (GetStdHandle_t) pe_exp(k32, "GetStdHandle"); | |
| g_ExitProcess = (ExitProcess_t) pe_exp(k32, "ExitProcess"); | |
| } | |
| static void console_write(const char* s, int len) { | |
| if (!g_WriteConsoleA || !g_GetStdHandle) return; | |
| HANDLE out = g_GetStdHandle((DWORD)-11); /* STD_OUTPUT_HANDLE */ | |
| DWORD written = 0; | |
| g_WriteConsoleA(out, s, (DWORD)len, &written, 0); | |
| } | |
| static void main_loop(void) { | |
| sov_scheduler_t sched = {0}; | |
| sched.state = 0; | |
| sched.batch_size = 8; | |
| sov_scheduler_init(&sched); | |
| while (1) { | |
| sov_scheduler_step(&sched, 0, 0); | |
| if (sov_get_power_state() == 1) break; /* SUSPEND */ | |
| } | |
| } | |
| void sov_main(void) { | |
| resolve_kernel32(); | |
| console_write("SOV RTX BOOT\r\n", 14); | |
| sov_cuda_init(); | |
| console_write("CUDA OK\r\n", 9); | |
| sov_power_handler_init(); | |
| console_write("POWER OK\r\n", 10); | |
| main_loop(); | |
| console_write("HALT\r\n", 6); | |
| if (g_ExitProcess) g_ExitProcess(0); | |
| while(1) __asm__ volatile("hlt"); | |
| } | |