From adef969b7b2c1ed8617001a5d8589dfd0f7ecc05 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Wed, 18 Aug 2021 02:33:39 -0700 Subject: feat(soyuz): :rocket: --- include/soyuz/library.hh | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ include/soyuz/soyuz.hh | 12 +++++++++ 2 files changed, 80 insertions(+) create mode 100644 include/soyuz/library.hh create mode 100644 include/soyuz/soyuz.hh (limited to 'include') 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 + +#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 -- cgit v1.2.3