-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsc_loader_x64.cpp
More file actions
51 lines (39 loc) · 1.77 KB
/
sc_loader_x64.cpp
File metadata and controls
51 lines (39 loc) · 1.77 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
// sc_loader_x64.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include <windows.h>
#include <tchar.h>
typedef void (*shellcode_t)();
using namespace std;
int _tmain(int argc, TCHAR* argv[])
{
HANDLE hFile;
size_t nfile_size;
DWORD dwBytesRead = 0;
if (argc != 2) {
cout << "Usage:" << argv[0] << " file_name" << endl;
exit(-1);
}
hFile = CreateFile(argv[1], // name of the write
GENERIC_READ, // open for reading
0, // do not share
NULL, // default security
OPEN_ALWAYS, // create new file only
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
nfile_size = GetFileSize(hFile, NULL);
shellcode_t shellcode = (shellcode_t) VirtualAlloc(0, nfile_size+2, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
*((uint8_t*)(shellcode)) = 0xCC;
ReadFile(hFile, (uint8_t*)(shellcode)+1, nfile_size, &dwBytesRead, NULL);
CloseHandle(hFile);
shellcode();
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu
// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file