aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-08-18 02:33:39 -0700
committerFuwn <[email protected]>2021-08-18 02:33:39 -0700
commitadef969b7b2c1ed8617001a5d8589dfd0f7ecc05 (patch)
tree2dd9ac9c0a8b1c41a15c7de19c94a0909a62ef36 /include
downloadsoyuz-adef969b7b2c1ed8617001a5d8589dfd0f7ecc05.tar.xz
soyuz-adef969b7b2c1ed8617001a5d8589dfd0f7ecc05.zip
feat(soyuz): :rocket:
Diffstat (limited to 'include')
-rw-r--r--include/soyuz/library.hh68
-rw-r--r--include/soyuz/soyuz.hh12
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