Skip to content
This repository was archived by the owner on Feb 18, 2026. It is now read-only.

Commit cd570dc

Browse files
committed
~ | CONTEXT not required in the DataHijack struct
1 parent f84bcc2 commit cd570dc

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

Threat/Main.c

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ typedef struct HijackData {
4141
HANDLE hProcess; // 8
4242
HANDLE hThread; // 8
4343
DWORD processId; // 4
44-
CONTEXT context; // 1232
4544
} t_HijackData;
4645

4746
static void InitHijackData(t_HijackData *data) {
@@ -53,9 +52,6 @@ static void InitHijackData(t_HijackData *data) {
5352
data->processId = 0;
5453
data->hProcess = NULL;
5554
data->hThread = NULL;
56-
57-
ZeroMemory(&data->context, sizeof(data->context));
58-
data->context.ContextFlags = CONTEXT_FULL;
5955
}
6056

6157
static void CleanHijackData(t_HijackData *data) {
@@ -177,6 +173,11 @@ static bool OpenTargetThread(t_HijackData *data) {
177173
}
178174

179175
static bool Hijack(const wchar_t *processName, t_HijackData *data) {
176+
CONTEXT context;
177+
178+
ZeroMemory(&context, sizeof(context));
179+
context.ContextFlags = CONTEXT_FULL;
180+
180181
if (!processName || !data) {
181182
printf("[ ERROR ] Enter a valid processName!");
182183
return false;
@@ -193,7 +194,8 @@ static bool Hijack(const wchar_t *processName, t_HijackData *data) {
193194
return false;
194195
}
195196

196-
if (!GetThreadContext(data->hThread, &data->context)) {
197+
198+
if (!GetThreadContext(data->hThread, &context)) {
197199
printf("[ ERROR ] Failed to get thread context: %lu", GetLastError());
198200
return false;
199201
}
@@ -223,9 +225,9 @@ static bool Hijack(const wchar_t *processName, t_HijackData *data) {
223225
return false;
224226
}
225227

226-
data->context.Rip = (uintptr_t)hijackBuffer;
228+
context.Rip = (uintptr_t)hijackBuffer;
227229

228-
if (!SetThreadContext(data->hThread, &data->context)) {
230+
if (!SetThreadContext(data->hThread, &context)) {
229231
printf("[ ERROR ] Failed to set the hijacked context: %lu", GetLastError());
230232
return false;
231233
}
@@ -245,6 +247,7 @@ int main() {
245247

246248
if (!Hijack(L"Target.exe", &data)) {
247249
CleanHijackData(&data);
250+
while(1) {}
248251
return 1;
249252
}
250253

0 commit comments

Comments
 (0)