diff options
| author | Fuwn <[email protected]> | 2021-08-18 02:33:39 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2021-08-18 02:33:39 -0700 |
| commit | adef969b7b2c1ed8617001a5d8589dfd0f7ecc05 (patch) | |
| tree | 2dd9ac9c0a8b1c41a15c7de19c94a0909a62ef36 /include | |
| download | soyuz-adef969b7b2c1ed8617001a5d8589dfd0f7ecc05.tar.xz soyuz-adef969b7b2c1ed8617001a5d8589dfd0f7ecc05.zip | |
feat(soyuz): :rocket:
Diffstat (limited to 'include')
| -rw-r--r-- | include/soyuz/library.hh | 68 | ||||
| -rw-r--r-- | include/soyuz/soyuz.hh | 12 |
2 files changed, 80 insertions, 0 deletions
diff --git a/include/soyuz/library.hh b/include/soyuz/library.hh new file mode 100644 index 0000000..57fc468 --- /dev/null +++ b/include/soyuz/library.hh @@ -0,0 +1,68 @@ +// Copyright (C) 2021-2021 Fuwn +// SPDX-License-Identifier: GPL-3.0-only + +#ifndef SOYUZ_LIBRARY_HH +#define SOYUZ_LIBRARY_HH + +#pragma once + +#include <Windows.h> + +#define NT_SUCCESS(status) (status >= 0) +#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) + +enum PROCESSINFOCLASS { + ProcessHandleInformation = 51 +}; + +typedef struct _PROCESS_HANDLE_TABLE_ENTRY_INFO { + HANDLE HandleValue; + ULONG_PTR HandleCount; + ULONG_PTR PointerCount; + ULONG GrantedAccess; + ULONG ObjectTypeIndex; + ULONG HandleAttributes; + ULONG Reserved; +} PROCESS_HANDLE_TABLE_ENTRY_INFO, * PPROCESS_HANDLE_TABLE_ENTRY_INFO; + +typedef struct _PROCESS_HANDLE_SNAPSHOT_INFORMATION { + ULONG_PTR NumberOfHandles; + ULONG_PTR Reserved; + PROCESS_HANDLE_TABLE_ENTRY_INFO Handles[1]; +} PROCESS_HANDLE_SNAPSHOT_INFORMATION, * PPROCESS_HANDLE_SNAPSHOT_INFORMATION; + +extern "C" NTSTATUS NTAPI NtQueryInformationProcess( + _In_ HANDLE ProcessHandle, + _In_ PROCESSINFOCLASS ProcessInformationClass, + _Out_writes_bytes_(ProcessInformationLength) PVOID ProcessInformation, + _In_ ULONG ProcessInformationLength, + _Out_opt_ PULONG ReturnLength +); + +typedef enum _OBJECT_INFORMATION_CLASS { + ObjectNameInformation = 1 +} OBJECT_INFORMATION_CLASS; + +typedef struct _UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + PWSTR Buffer; +} UNICODE_STRING; + +typedef struct _OBJECT_NAME_INFORMATION { + UNICODE_STRING Name; +} OBJECT_NAME_INFORMATION, * POBJECT_NAME_INFORMATION; + +extern "C" NTSTATUS NTAPI NtQueryObject( + _In_opt_ HANDLE Handle, + _In_ OBJECT_INFORMATION_CLASS ObjectInformationClass, + _Out_writes_bytes_opt_(ObjectInformationLength) PVOID ObjectInformation, + _In_ ULONG ObjectInformationLength, + _Out_opt_ PULONG ReturnLength +); + +static auto enum_windows_proc(HWND hwnd, LPARAM lparam) -> BOOL; +auto find_lunar() -> DWORD; +auto delete_handle(DWORD pid) -> int; + +#endif //SOYUZ_LIBRARY_HH diff --git a/include/soyuz/soyuz.hh b/include/soyuz/soyuz.hh new file mode 100644 index 0000000..20cf432 --- /dev/null +++ b/include/soyuz/soyuz.hh @@ -0,0 +1,12 @@ +// Copyright (C) 2021-2021 Fuwn +// SPDX-License-Identifier: GPL-3.0-only + +#ifndef SOYUZ_SOYUZ_HH +#define SOYUZ_SOYUZ_HH + +#pragma once + +#define LUNAR_WINDOW_NAME_BASE "Lunar Client (" +#define DISCORD_IPC_NAMED_PIPE_NAME L"\\Device\\NamedPipe\\discord-ipc-0" + +#endif //SOYUZ_SOYUZ_HH |