summaryrefslogtreecommitdiff
path: root/protocols/Xfire/src/tools.h
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Xfire/src/tools.h')
-rw-r--r--protocols/Xfire/src/tools.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/protocols/Xfire/src/tools.h b/protocols/Xfire/src/tools.h
new file mode 100644
index 0000000000..ca0b906179
--- /dev/null
+++ b/protocols/Xfire/src/tools.h
@@ -0,0 +1,99 @@
+
+#ifndef _TOOLS_H
+#define _TOOLS_H
+
+#include "baseProtocol.h"
+
+#include <m_popup.h>
+#include <string>
+using std::string;
+
+//****************************
+//get commandline header stuff
+//****************************
+typedef struct _UNICODE_STRING {
+USHORT Length;
+USHORT MaximumLength;
+PWSTR Buffer;
+} UNICODE_STRING;
+typedef UNICODE_STRING *PUNICODE_STRING;
+typedef enum _PROCESSINFOCLASS {
+ ProcessBasicInformation
+} PROCESSINFOCLASS;
+typedef struct _PEB_LDR_DATA {
+ BYTE Reserved1[8];
+ PVOID Reserved2[3];
+ LIST_ENTRY InMemoryOrderModuleList;
+} PEB_LDR_DATA,
+ *PPEB_LDR_DATA;
+typedef struct _RTL_USER_PROCESS_PARAMETERS {
+ BYTE Reserved1[16];
+ PVOID Reserved2[10];
+ UNICODE_STRING ImagePathName;
+ UNICODE_STRING CommandLine;
+} RTL_USER_PROCESS_PARAMETERS,
+ *PRTL_USER_PROCESS_PARAMETERS;
+typedef struct _PEB {
+ BYTE Reserved1[2];
+ BYTE BeingDebugged;
+ BYTE Reserved2[1];
+ PVOID Reserved3[2];
+ PPEB_LDR_DATA Ldr;
+ PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
+ BYTE Reserved4[104];
+ PVOID Reserved5[52];
+ void* PostProcessInitRoutine;
+ BYTE Reserved6[128];
+ PVOID Reserved7[1];
+ ULONG SessionId;
+} PEB,
+ *PPEB;
+typedef struct
+{
+ULONG AllocationSize;
+ULONG ActualSize;
+ULONG Flags;
+ULONG Unknown1;
+UNICODE_STRING Unknown2;
+HANDLE InputHandle;
+HANDLE OutputHandle;
+HANDLE ErrorHandle;
+UNICODE_STRING CurrentDirectory;
+HANDLE CurrentDirectoryHandle;
+UNICODE_STRING SearchPaths;
+UNICODE_STRING ApplicationName;
+UNICODE_STRING CommandLine;
+PVOID EnvironmentBlock;
+ULONG Unknown[9];
+UNICODE_STRING Unknown3;
+UNICODE_STRING Unknown4;
+UNICODE_STRING Unknown5;
+UNICODE_STRING Unknown6;
+} PROCESS_PARAMETERS, *PPROCESS_PARAMETERS;
+typedef struct _PROCESS_BASIC_INFORMATION {
+ PVOID Reserved1;
+ PPEB PebBaseAddress;
+ PVOID Reserved2[2];
+ ULONG_PTR UniqueProcessId;
+ PVOID Reserved3;
+} PROCESS_BASIC_INFORMATION;
+
+typedef ULONG (WINAPI *pZwQueryInformationProcess)(
+ IN HANDLE ProcessHandle,
+ IN PROCESSINFOCLASS ProcessInformationClass,
+ OUT PVOID ProcessInformation,
+ IN ULONG ProcessInformationLength,
+ OUT PULONG ReturnLength OPTIONAL
+);
+typedef ULONG (WINAPI *pZwClose)(
+ IN HANDLE Handle
+);
+typedef ULONG (WINAPI *pZwReadVirtualMemory)(
+ IN HANDLE ProcessHandle,
+ IN PVOID BaseAddress,
+ OUT PVOID Buffer,
+ IN ULONG BufferLength,
+ OUT PULONG ReturnLength OPTIONAL
+);
+
+#endif \ No newline at end of file