forked from j5s/ShellcodeLoader
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAntiSandbox.cpp
More file actions
64 lines (53 loc) · 1.29 KB
/
Copy pathAntiSandbox.cpp
File metadata and controls
64 lines (53 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "AntiSandbox.h"
#pragma warning(disable:4996)
void FetchExeName(PCHAR szBuffer,DWORD nSize)
{
CHAR buffer[MAX_PATH] = { 0 };
for (size_t i = nSize - 1; i > 1; i--)
{
if (szBuffer[i-1] == '\\')
{
strcpy(buffer, &szBuffer[i]);
ZeroMemory(szBuffer, nSize);
strcpy(szBuffer, buffer);
}
}
}
void AntiSandbox::AntiSandboxByName(CHAR* szExeName)
{
CHAR szFileName1[MAX_PATH] = { 0 };
CHAR szFileName2[MAX_PATH] = { 0 };
DWORD dwSize = MAX_PATH;
GetModuleFileName(NULL, szFileName1, MAX_PATH);
FetchExeName(szFileName1, sizeof(szFileName1));
//MessageBox(NULL, szFileName, 0, MB_OK);
QueryFullProcessImageName(GetCurrentProcess(), PROCESS_NAME_NATIVE, szFileName2, &dwSize);
FetchExeName(szFileName2, sizeof(szFileName2));
//MessageBox(NULL, szFileName, 0, MB_OK);
if (strcmp(szExeName, szFileName1) || strcmp(szExeName, szFileName2))
{
TerminateProcess(GetCurrentProcess(), 0);
ExitProcess(0);
}
return;
}
EXTERN_C
ULONGLONG
WINAPI
MyGetTickCount64Kernel32(
VOID
);
void AntiSandbox::AntiSandboxByRuntime()
{
__int64 lasttime = MyGetTickCount64Kernel32();
Sleep(300);
__int64 duration = MyGetTickCount64Kernel32() - 300 - lasttime;
if (duration > 100)
{
//MessageBox(0, 0, 0, 0);
TerminateProcess(GetCurrentProcess(), 0);
ExitProcess(0);
}
else
return;
}