Skip to content

Commit fe1e409

Browse files
authored
Update fixIAT.hpp
1 parent 141a533 commit fe1e409

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

RunPE-In-Memory/RunPEinMemory/fixIAT.hpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
#include <string>
22
#include <windows.h>
33
using namespace std;
4+
5+
bool hijackCmdline = false;
46
char* sz_masqCmd_Ansi = NULL, *sz_masqCmd_ArgvAnsi[100] = { };
57
wchar_t* sz_masqCmd_Widh = NULL, *sz_masqCmd_ArgvWidh[100] = { };
68
int int_masqCmd_Argc = 0;
79
LPWSTR hookGetCommandLineW() { return sz_masqCmd_Widh; }
810
LPSTR hookGetCommandLineA() { return sz_masqCmd_Ansi; }
11+
912
int __wgetmainargs(int* _Argc, wchar_t*** _Argv, wchar_t*** _Env, int _useless_, void* _useless) {
1013
*_Argc = int_masqCmd_Argc;
1114
*_Argv = (wchar_t **)sz_masqCmd_ArgvWidh;
@@ -39,6 +42,8 @@ void masqueradeCmdline(const wchar_t* cmdline) {
3942
sz_masqCmd_ArgvAnsi[i] = new char[b.size() + 1];
4043
lstrcpyA(sz_masqCmd_ArgvAnsi[i], b.c_str());
4144
}
45+
46+
hijackCmdline = true;
4247
}
4348

4449

@@ -91,19 +96,15 @@ bool fixIAT(PVOID modulePtr)
9196
LPSTR func_name = (LPSTR)by_name->Name;
9297
size_t addr = (size_t)GetProcAddress(LoadLibraryA(lib_name), func_name);
9398
printf(" [V] API %s at %x\n", func_name, addr);
94-
if (strcmpi(func_name, "GetCommandLineA") == 0)
99+
100+
if (hijackCmdline && strcmpi(func_name, "GetCommandLineA") == 0)
95101
fieldThunk->u1.Function = (size_t)hookGetCommandLineA;
96-
else if (strcmpi(func_name, "GetCommandLineW") == 0)
102+
else if (hijackCmdline && strcmpi(func_name, "GetCommandLineW") == 0)
97103
fieldThunk->u1.Function = (size_t)hookGetCommandLineW;
98-
else if (strcmpi(func_name, "__wgetmainargs") == 0) {
99-
104+
else if (hijackCmdline && strcmpi(func_name, "__wgetmainargs") == 0)
100105
fieldThunk->u1.Function = (size_t)__wgetmainargs;
101-
}
102-
else if (strcmpi(func_name, "__getmainargs") == 0) {
106+
else if (hijackCmdline && strcmpi(func_name, "__getmainargs") == 0)
103107
fieldThunk->u1.Function = (size_t)__getmainargs;
104-
105-
}
106-
107108
else
108109
fieldThunk->u1.Function = addr;
109110

0 commit comments

Comments
 (0)