From 2e446c404c7e9079a046251c361cda1cf179a11c Mon Sep 17 00:00:00 2001 From: S4Lsalsoft Date: Tue, 8 Sep 2020 20:57:04 +0200 Subject: [PATCH] no message --- DestroyerProtection.sln | 34 + DestroyerProtection/App.config | 6 + .../AntiAnalysis/MainAnalysis.vb | 243 +++++ .../DestroyerCore/AntiDebug/MainDebug.vb | 154 +++ .../DestroyerCore/AntiDump/MainDump.vb | 71 ++ .../AntiVirtualMachine/MainVM.vb | 370 +++++++ .../AntiVirtualMachine/OldAntiVM.vb | 696 +++++++++++++ .../DestroyerCore/DestroyerProtect.vb | 239 +++++ .../DestroyerCore/DirAnalysis/MainDirScan.vb | 65 ++ .../DestroyerCore/FileDirSearcher.vb | 979 ++++++++++++++++++ DestroyerProtection/DestroyerCore/Utils.vb | 157 +++ .../DestroyerProtection.vbproj | 142 +++ DestroyerProtection/Form1.Designer.vb | 118 +++ DestroyerProtection/Form1.resx | 126 +++ DestroyerProtection/Form1.vb | 158 +++ .../My Project/Application.Designer.vb | 38 + .../My Project/Application.myapp | 10 + .../My Project/AssemblyInfo.vb | 35 + .../My Project/Resources.Designer.vb | 62 ++ DestroyerProtection/My Project/Resources.resx | 117 +++ .../My Project/Settings.Designer.vb | 73 ++ .../My Project/Settings.settings | 7 + DestroyerProtection/My Project/app.manifest | 58 ++ .../bin/Debug/DestroyerProtection.exe.config | 6 + .../bin/Debug/DestroyerProtection.pdb | Bin 0 -> 146944 bytes .../bin/Debug/DestroyerProtection.vshost.exe | Bin 0 -> 22984 bytes .../DestroyerProtection.vshost.exe.config | 6 + .../DestroyerProtection.vshost.exe.manifest | 11 + .../bin/Debug/DestroyerProtection.xml | 164 +++ .../bin/Release/DestroyerProtection.exe | Bin 0 -> 98304 bytes .../Release/DestroyerProtection.exe.config | 6 + .../bin/Release/DestroyerProtection.pdb | Bin 0 -> 122368 bytes .../Release/DestroyerProtection.vshost.exe | Bin 0 -> 23168 bytes .../DestroyerProtection.vshost.exe.config | 6 + .../DestroyerProtection.vshost.exe.manifest | 58 ++ .../bin/Release/DestroyerProtection.xml | 164 +++ .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 10026 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7029 bytes .../Debug/DestroyerProtection.Form1.resources | Bin 0 -> 180 bytes .../DestroyerProtection.Resources.resources | Bin 0 -> 180 bytes .../obj/Debug/DestroyerProtection.exe | Bin 0 -> 102400 bytes .../obj/Debug/DestroyerProtection.pdb | Bin 0 -> 146944 bytes ...oyerProtection.vbproj.FileListAbsolute.txt | 10 + ...erProtection.vbproj.GenerateResource.Cache | Bin 0 -> 975 bytes .../obj/Debug/DestroyerProtection.xml | 164 +++ .../My Project.Resources.Designer.vb.dll | Bin 0 -> 7680 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 853 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7136 bytes .../DestroyerProtection.Form1.resources | Bin 0 -> 180 bytes .../DestroyerProtection.Resources.resources | Bin 0 -> 180 bytes .../obj/Release/DestroyerProtection.exe | Bin 0 -> 98304 bytes .../obj/Release/DestroyerProtection.pdb | Bin 0 -> 122368 bytes ...oyerProtection.vbproj.FileListAbsolute.txt | 10 + ...erProtection.vbproj.GenerateResource.Cache | Bin 0 -> 977 bytes .../obj/Release/DestroyerProtection.xml | 164 +++ .../My Project.Resources.Designer.vb.dll | Bin 0 -> 7680 bytes .../AntiAnalysis/MainAnalysis.vb | 243 +++++ .../DestroyerCore/AntiDebug/MainDebug.vb | 154 +++ .../DestroyerCore/AntiDump/MainDump.vb | 72 ++ .../AntiVirtualMachine/MainVM.vb | 370 +++++++ .../AntiVirtualMachine/OldAntiVM.vb | 696 +++++++++++++ .../DestroyerCore/DestroyerProtect.vb | 240 +++++ .../DestroyerCore/DirAnalysis/MainDirScan.vb | 65 ++ .../DestroyerCore/FileDirSearcher.vb | 979 ++++++++++++++++++ DestroyerProtectionLib/DestroyerCore/Utils.vb | 163 +++ .../DestroyerProtectionLib.vbproj | 120 +++ .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../My Project/AssemblyInfo.vb | 35 + .../My Project/Resources.Designer.vb | 62 ++ .../My Project/Resources.resx | 117 +++ .../My Project/Settings.Designer.vb | 73 ++ .../My Project/Settings.settings | 7 + .../bin/Release/DestroyerProtectionLib.dll | Bin 0 -> 87040 bytes .../bin/Release/DestroyerProtectionLib.pdb | Bin 0 -> 108032 bytes .../bin/Release/DestroyerProtectionLib.xml | 164 +++ ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6536 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6852 bytes ...DestroyerProtectionLib.Resources.resources | Bin 0 -> 180 bytes .../obj/Release/DestroyerProtectionLib.dll | Bin 0 -> 87040 bytes .../obj/Release/DestroyerProtectionLib.pdb | Bin 0 -> 108032 bytes ...rProtectionLib.vbproj.FileListAbsolute.txt | 8 + ...rotectionLib.vbproj.GenerateResource.Cache | Bin 0 -> 919 bytes .../obj/Release/DestroyerProtectionLib.xml | 164 +++ .../My Project.Resources.Designer.vb.dll | Bin 0 -> 7680 bytes DestroyerProtectionTest/App.config | 6 + .../DestroyerProtectionTest.csproj | 95 ++ DestroyerProtectionTest/Form1.Designer.cs | 135 +++ DestroyerProtectionTest/Form1.cs | 173 ++++ DestroyerProtectionTest/Form1.resx | 126 +++ DestroyerProtectionTest/Program.cs | 22 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 71 ++ .../Properties/Resources.resx | 117 +++ .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + DestroyerProtectionTest/app.manifest | 58 ++ .../bin/Release/DestroyerProtectionLib.dll | Bin 0 -> 87040 bytes .../bin/Release/DestroyerProtectionLib.pdb | Bin 0 -> 108032 bytes .../bin/Release/DestroyerProtectionLib.xml | 164 +++ .../bin/Release/DestroyerProtectionTest.exe | Bin 0 -> 15360 bytes .../DestroyerProtectionTest.exe.config | 6 + .../bin/Release/DestroyerProtectionTest.pdb | Bin 0 -> 28160 bytes .../DestroyerProtectionTest.vshost.exe | Bin 0 -> 23168 bytes .../DestroyerProtectionTest.vshost.exe.config | 6 + ...estroyerProtectionTest.vshost.exe.manifest | 11 + ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7032 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7253 bytes .../DestroyerProtectionTest.Form1.resources | Bin 0 -> 180 bytes ...tectionTest.Properties.Resources.resources | Bin 0 -> 180 bytes ...ProtectionTest.csproj.FileListAbsolute.txt | 12 + ...otectionTest.csproj.GenerateResource.Cache | Bin 0 -> 977 bytes ...nTest.csprojResolveAssemblyReference.cache | Bin 0 -> 10448 bytes .../obj/Release/DestroyerProtectionTest.exe | Bin 0 -> 15360 bytes .../obj/Release/DestroyerProtectionTest.pdb | Bin 0 -> 28160 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 121 files changed, 9557 insertions(+) create mode 100644 DestroyerProtection.sln create mode 100644 DestroyerProtection/App.config create mode 100644 DestroyerProtection/DestroyerCore/AntiAnalysis/MainAnalysis.vb create mode 100644 DestroyerProtection/DestroyerCore/AntiDebug/MainDebug.vb create mode 100644 DestroyerProtection/DestroyerCore/AntiDump/MainDump.vb create mode 100644 DestroyerProtection/DestroyerCore/AntiVirtualMachine/MainVM.vb create mode 100644 DestroyerProtection/DestroyerCore/AntiVirtualMachine/OldAntiVM.vb create mode 100644 DestroyerProtection/DestroyerCore/DestroyerProtect.vb create mode 100644 DestroyerProtection/DestroyerCore/DirAnalysis/MainDirScan.vb create mode 100644 DestroyerProtection/DestroyerCore/FileDirSearcher.vb create mode 100644 DestroyerProtection/DestroyerCore/Utils.vb create mode 100644 DestroyerProtection/DestroyerProtection.vbproj create mode 100644 DestroyerProtection/Form1.Designer.vb create mode 100644 DestroyerProtection/Form1.resx create mode 100644 DestroyerProtection/Form1.vb create mode 100644 DestroyerProtection/My Project/Application.Designer.vb create mode 100644 DestroyerProtection/My Project/Application.myapp create mode 100644 DestroyerProtection/My Project/AssemblyInfo.vb create mode 100644 DestroyerProtection/My Project/Resources.Designer.vb create mode 100644 DestroyerProtection/My Project/Resources.resx create mode 100644 DestroyerProtection/My Project/Settings.Designer.vb create mode 100644 DestroyerProtection/My Project/Settings.settings create mode 100644 DestroyerProtection/My Project/app.manifest create mode 100644 DestroyerProtection/bin/Debug/DestroyerProtection.exe.config create mode 100644 DestroyerProtection/bin/Debug/DestroyerProtection.pdb create mode 100644 DestroyerProtection/bin/Debug/DestroyerProtection.vshost.exe create mode 100644 DestroyerProtection/bin/Debug/DestroyerProtection.vshost.exe.config create mode 100644 DestroyerProtection/bin/Debug/DestroyerProtection.vshost.exe.manifest create mode 100644 DestroyerProtection/bin/Debug/DestroyerProtection.xml create mode 100644 DestroyerProtection/bin/Release/DestroyerProtection.exe create mode 100644 DestroyerProtection/bin/Release/DestroyerProtection.exe.config create mode 100644 DestroyerProtection/bin/Release/DestroyerProtection.pdb create mode 100644 DestroyerProtection/bin/Release/DestroyerProtection.vshost.exe create mode 100644 DestroyerProtection/bin/Release/DestroyerProtection.vshost.exe.config create mode 100644 DestroyerProtection/bin/Release/DestroyerProtection.vshost.exe.manifest create mode 100644 DestroyerProtection/bin/Release/DestroyerProtection.xml create mode 100644 DestroyerProtection/obj/Debug/DesignTimeResolveAssemblyReferences.cache create mode 100644 DestroyerProtection/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 DestroyerProtection/obj/Debug/DestroyerProtection.Form1.resources create mode 100644 DestroyerProtection/obj/Debug/DestroyerProtection.Resources.resources create mode 100644 DestroyerProtection/obj/Debug/DestroyerProtection.exe create mode 100644 DestroyerProtection/obj/Debug/DestroyerProtection.pdb create mode 100644 DestroyerProtection/obj/Debug/DestroyerProtection.vbproj.FileListAbsolute.txt create mode 100644 DestroyerProtection/obj/Debug/DestroyerProtection.vbproj.GenerateResource.Cache create mode 100644 DestroyerProtection/obj/Debug/DestroyerProtection.xml create mode 100644 DestroyerProtection/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 DestroyerProtection/obj/Release/DesignTimeResolveAssemblyReferences.cache create mode 100644 DestroyerProtection/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 DestroyerProtection/obj/Release/DestroyerProtection.Form1.resources create mode 100644 DestroyerProtection/obj/Release/DestroyerProtection.Resources.resources create mode 100644 DestroyerProtection/obj/Release/DestroyerProtection.exe create mode 100644 DestroyerProtection/obj/Release/DestroyerProtection.pdb create mode 100644 DestroyerProtection/obj/Release/DestroyerProtection.vbproj.FileListAbsolute.txt create mode 100644 DestroyerProtection/obj/Release/DestroyerProtection.vbproj.GenerateResource.Cache create mode 100644 DestroyerProtection/obj/Release/DestroyerProtection.xml create mode 100644 DestroyerProtection/obj/Release/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 DestroyerProtectionLib/DestroyerCore/AntiAnalysis/MainAnalysis.vb create mode 100644 DestroyerProtectionLib/DestroyerCore/AntiDebug/MainDebug.vb create mode 100644 DestroyerProtectionLib/DestroyerCore/AntiDump/MainDump.vb create mode 100644 DestroyerProtectionLib/DestroyerCore/AntiVirtualMachine/MainVM.vb create mode 100644 DestroyerProtectionLib/DestroyerCore/AntiVirtualMachine/OldAntiVM.vb create mode 100644 DestroyerProtectionLib/DestroyerCore/DestroyerProtect.vb create mode 100644 DestroyerProtectionLib/DestroyerCore/DirAnalysis/MainDirScan.vb create mode 100644 DestroyerProtectionLib/DestroyerCore/FileDirSearcher.vb create mode 100644 DestroyerProtectionLib/DestroyerCore/Utils.vb create mode 100644 DestroyerProtectionLib/DestroyerProtectionLib.vbproj create mode 100644 DestroyerProtectionLib/My Project/Application.Designer.vb create mode 100644 DestroyerProtectionLib/My Project/Application.myapp create mode 100644 DestroyerProtectionLib/My Project/AssemblyInfo.vb create mode 100644 DestroyerProtectionLib/My Project/Resources.Designer.vb create mode 100644 DestroyerProtectionLib/My Project/Resources.resx create mode 100644 DestroyerProtectionLib/My Project/Settings.Designer.vb create mode 100644 DestroyerProtectionLib/My Project/Settings.settings create mode 100644 DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.dll create mode 100644 DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.pdb create mode 100644 DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.xml create mode 100644 DestroyerProtectionLib/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 DestroyerProtectionLib/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.Resources.resources create mode 100644 DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.dll create mode 100644 DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.pdb create mode 100644 DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.vbproj.FileListAbsolute.txt create mode 100644 DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.vbproj.GenerateResource.Cache create mode 100644 DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.xml create mode 100644 DestroyerProtectionLib/obj/Release/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 DestroyerProtectionTest/App.config create mode 100644 DestroyerProtectionTest/DestroyerProtectionTest.csproj create mode 100644 DestroyerProtectionTest/Form1.Designer.cs create mode 100644 DestroyerProtectionTest/Form1.cs create mode 100644 DestroyerProtectionTest/Form1.resx create mode 100644 DestroyerProtectionTest/Program.cs create mode 100644 DestroyerProtectionTest/Properties/AssemblyInfo.cs create mode 100644 DestroyerProtectionTest/Properties/Resources.Designer.cs create mode 100644 DestroyerProtectionTest/Properties/Resources.resx create mode 100644 DestroyerProtectionTest/Properties/Settings.Designer.cs create mode 100644 DestroyerProtectionTest/Properties/Settings.settings create mode 100644 DestroyerProtectionTest/app.manifest create mode 100644 DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.dll create mode 100644 DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.pdb create mode 100644 DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.xml create mode 100644 DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.exe create mode 100644 DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.exe.config create mode 100644 DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.pdb create mode 100644 DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe create mode 100644 DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe.config create mode 100644 DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe.manifest create mode 100644 DestroyerProtectionTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 DestroyerProtectionTest/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs create mode 100644 DestroyerProtectionTest/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs create mode 100644 DestroyerProtectionTest/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs create mode 100644 DestroyerProtectionTest/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.Form1.resources create mode 100644 DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.Properties.Resources.resources create mode 100644 DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.csproj.FileListAbsolute.txt create mode 100644 DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.csproj.GenerateResource.Cache create mode 100644 DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.csprojResolveAssemblyReference.cache create mode 100644 DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.exe create mode 100644 DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.pdb create mode 100644 DestroyerProtectionTest/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs create mode 100644 DestroyerProtectionTest/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs create mode 100644 DestroyerProtectionTest/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs diff --git a/DestroyerProtection.sln b/DestroyerProtection.sln new file mode 100644 index 0000000..0c88dec --- /dev/null +++ b/DestroyerProtection.sln @@ -0,0 +1,34 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 2013 for Windows Desktop +VisualStudioVersion = 12.0.30723.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DestroyerProtection", "DestroyerProtection\DestroyerProtection.vbproj", "{FFFD09D6-651F-4ACC-91F6-926924DC578D}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DestroyerProtectionLib", "DestroyerProtectionLib\DestroyerProtectionLib.vbproj", "{C454C96E-DAF1-475C-B261-2AE560BF8FBA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DestroyerProtectionTest", "DestroyerProtectionTest\DestroyerProtectionTest.csproj", "{95C3DCB6-30B3-4D9E-857F-E6C60262055A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FFFD09D6-651F-4ACC-91F6-926924DC578D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FFFD09D6-651F-4ACC-91F6-926924DC578D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FFFD09D6-651F-4ACC-91F6-926924DC578D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FFFD09D6-651F-4ACC-91F6-926924DC578D}.Release|Any CPU.Build.0 = Release|Any CPU + {C454C96E-DAF1-475C-B261-2AE560BF8FBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C454C96E-DAF1-475C-B261-2AE560BF8FBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C454C96E-DAF1-475C-B261-2AE560BF8FBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C454C96E-DAF1-475C-B261-2AE560BF8FBA}.Release|Any CPU.Build.0 = Release|Any CPU + {95C3DCB6-30B3-4D9E-857F-E6C60262055A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {95C3DCB6-30B3-4D9E-857F-E6C60262055A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95C3DCB6-30B3-4D9E-857F-E6C60262055A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {95C3DCB6-30B3-4D9E-857F-E6C60262055A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DestroyerProtection/App.config b/DestroyerProtection/App.config new file mode 100644 index 0000000..bc3672d --- /dev/null +++ b/DestroyerProtection/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DestroyerProtection/DestroyerCore/AntiAnalysis/MainAnalysis.vb b/DestroyerProtection/DestroyerCore/AntiAnalysis/MainAnalysis.vb new file mode 100644 index 0000000..ffcc30f --- /dev/null +++ b/DestroyerProtection/DestroyerCore/AntiAnalysis/MainAnalysis.vb @@ -0,0 +1,243 @@ +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 01-04-2020 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiAnalysis + Public Class MainAnalysis + + '// OllyDebug debugger + '// Process Hacker + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// IDA Pro Interactive Disassembler + '// IDA Pro Interactive Disassembler + '// ImmunityDebugger + '// Wireshark packet sniffer + '// Network traffic dump tool + '// Find various types of runtime hooks + '// Import Reconstructor + '// PE Tool + '// LordPE + '// ESET SysInspector + '// Part of SysAnalyzer iDefense + '// Part of SysAnalyzer iDefense + '// Part of SysAnalyzer iDefense + '// Microsoft WinDbg + '// Part of Joe Sandbox + '// Part of Joe Sandbox + '// Part of Joe Sandbox + '// Resource Hacker + '// x32dbg + '// x64dbg + '// Fiddler + '// Http Debugger + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + +#Region " Declare's " + + Private Shared szProcesses() As String = {"ollydbg.exe", _ + "ProcessHacker.exe", _ + "tcpview.exe", _ + "autoruns.exe", _ + "autorunsc.exe", _ + "filemon.exe", _ + "procmon.exe", _ + "regmon.exe", _ + "procexp.exe", _ + "idaq.exe", _ + "idaq64.exe", _ + "ImmunityDebugger.exe", _ + "Wireshark.exe", _ + "dumpcap.exe", _ + "HookExplorer.exe", _ + "ImportREC.exe", _ + "PETools.exe", _ + "LordPE.exe", _ + "SysInspector.exe", _ + "proc_analyzer.exe", _ + "sysAnalyzer.exe", _ + "sniff_hit.exe", _ + "windbg.exe", _ + "joeboxcontrol.exe", _ + "joeboxserver.exe", _ + "joeboxserver.exe", _ + "ResourceHacker.exe", _ + "x32dbg.exe", _ + "x64dbg.exe", _ + "Fiddler.exe", _ + "httpdebugger.exe", _ + "de4dot.exe", _ + "PEiD.exe", _ + "Universal_Fixer.exe", _ + "MegaDumper.exe", _ + "ida.exe", _ + "ida64.exe", _ + "cheatengine-i386.exe", _ + "cheatengine-x86_64.exe", _ + "Cheat Engine.exe", _ + "de4dot.exe", _ + "de4dot-x64.exe", _ + "dnSpy.exe", _ + "MegaDumper.exe"} + + Private Shared szProcessesTitle() As String = {"Olly", _ + "Process", _ + "Sysinternals", _ + "IDA", _ + "Disassembler", _ + "Debugger", _ + "Wireshark", _ + "packet", _ + "sniffer", _ + "dump", _ + "LordPE", _ + "PE Tool", _ + "ESET", _ + "WinDbg", _ + "Hook", _ + "Http Debugger", _ + "Fiddler", _ + "Resource Hacker", _ + "Dumper", _ + "The Interactive Disassembler", _ + "Cheat Engine", _ + "Winsock Packet Editor", + "Winsock", _ + "artmoney", _ + "de4dot", _ + "dnSpy", _ + "MegaDumper"} + + + + Private Shared exclusion_processes() As String = {"chrome.exe", _ + "Discord.exe", _ + "MEGAsync.exe", _ + "brave.exe", _ + "Opera.exe", _ + "Dropbox.exe", _ + "explorer.exe", _ + "taskmgr.exe"} + +#End Region + +#Region " Types " + + Public Enum SearchType + FromName = 0 + FromTitle = 1 + FromNameandTitle = 2 + None = 3 + End Enum + +#End Region + +#Region " Public Methods " + + Public Shared Function Malicious_Processes_Found(ByVal Search_Level As SearchType) As Boolean + Dim Nproc As Integer = 0 + + Select Case Search_Level + Case 0 : Nproc = ProcessMonitorFromName() + Case 1 : Nproc = ProcessMonitorFromTitle() + Case 2 : Nproc = (ProcessMonitorFromName() + ProcessMonitorFromTitle()) + Case 3 : Nproc = 0 + End Select + + If Nproc = 0 Then + Return False + Else + Return True + End If + End Function + + Public Shared Function ProcessMonitorFromName() As Integer + Dim ProcessesFound As Integer = 0 + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + + Public Shared Function ProcessMonitorFromTitle() As Integer + Dim ProcessesFound As Integer = 0 + + Dim poc() As Process = Process.GetProcesses() + + For Each ProcessTitle As String In szProcessesTitle + For i As Integer = 0 To poc.Length - 1 + Dim NameProc As String = poc(i).ProcessName + Dim WinTitleProc As String = poc(i).MainWindowTitle + If ExclusionClases(exclusion_processes.Count, NameProc) = False Then + If InStr(1, LCase(WinTitleProc), LCase(ProcessTitle)) > 0 Then + _LogResult = "Malicious identification detected: " & WinTitleProc & " In process :" & NameProc & ".exe" & " | Corresponding to : " & ProcessTitle & vbNewLine + ProcessesFound += 1 + End If + End If + Next + Next + + Return ProcessesFound + End Function + +#End Region + +#Region " Private Methods " + + Private Shared Function ExclusionClases(ByVal CountClass As Integer, ByVal Clase As String) As Boolean + If Clase.ToLower.EndsWith(".exe") Then Clase = Clase.Substring(0, Clase.Length - 4) + Dim MaxValue As Integer = CountClass + Dim DetectionCount As Integer = 0 + Dim ProcessClass As Integer = 0 + For Each Processnames As String In exclusion_processes + If Processnames.ToLower.EndsWith(".exe") Then Processnames = Processnames.Substring(0, Processnames.Length - 4) + + If LCase(Processnames) = LCase(Clase) Then + DetectionCount += 1 + End If + ProcessClass += 1 + Next + If MaxValue = ProcessClass Then + If DetectionCount > 0 Then + Return True + End If + End If + Return False + End Function + + Private Shared Function Get_Process_Window_Title(ByVal ProcessName As String) As String + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + Dim ProcessArray = Process.GetProcessesByName(ProcessName) + If ProcessArray.Length = 0 Then Return Nothing Else Return ProcessArray(0).MainWindowTitle + End Function + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtection/DestroyerCore/AntiDebug/MainDebug.vb b/DestroyerProtection/DestroyerCore/AntiDebug/MainDebug.vb new file mode 100644 index 0000000..d9836fd --- /dev/null +++ b/DestroyerProtection/DestroyerCore/AntiDebug/MainDebug.vb @@ -0,0 +1,154 @@ +Imports System.Runtime.InteropServices +Imports System.Management +Imports System.Security.Principal + +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 01-04-2020 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiDebug + Public Class MainDebug + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + +#Region " Pinvoke " + + + Friend Shared Function IsDebuggerPresent( + ) As Boolean + End Function + + + Public Shared Function CsrGetProcessId() As Integer + End Function + + + Public Shared Function OpenProcess( + ByVal dwDesiredAccess As Integer, + ByVal bInheritHandle As Boolean, + ByVal dwProcessId As Integer) As IntPtr + End Function + + + +#End Region + +#Region " Types " + + Public Enum DebugDetectionTypes + IsDebuggerPresent = 0 + IsDbgCsrss = 1 + Parent_Process = 2 + IsDebuggerAttached = 3 + IsDebuggerLogging = 4 + AllScanEgines = 5 + None = 6 + End Enum + +#End Region + +#Region " Public Methods " + + Public Shared Function Debugger_Check(ByVal DebugTypeFunction As DebugDetectionTypes) As Boolean + Select Case DebugTypeFunction + Case DebugDetectionTypes.IsDebuggerPresent : Return IsDebuggerPresent() + Case DebugDetectionTypes.IsDebuggerAttached : Return IsDebuggerAttached() + Case DebugDetectionTypes.IsDebuggerLogging : Return IsDebuggerLogging() + Case DebugDetectionTypes.IsDbgCsrss : Return False 'IsDbgCsrss() + Case DebugDetectionTypes.Parent_Process : Return Parent_Process() + Case DebugDetectionTypes.AllScanEgines : Return AllScan() + End Select + Return False + End Function + + Private Shared Function AllScan() As Boolean + If IsDebuggerPresent() = True Then + _LogResult = "Debugger Presence Detected." & vbNewLine + Return True + End If + 'If IsDbgCsrss() = True Then + 'Return True + 'End If + If IsDebuggerAttached() = True Then + _LogResult = "Attached debugger detected." & vbNewLine + Return True + End If + If IsDebuggerLogging() = True Then + _LogResult = "Logging debugger detected." & vbNewLine + Return True + End If + If Parent_Process() = True Then + Return True + End If + Return False + End Function + + Public Shared Function IsDebuggerAttached() As Boolean + Return Debugger.IsAttached + End Function + + Public Shared Function IsDebuggerLogging() As Boolean + Return Debugger.IsLogging + End Function + + Public Shared Sub DebuggerBreak() + Debugger.Break() + End Sub + + '//////////////////////////////////////////////////////////////////////// + 'Administrator privileges are required for this Function. + Const PROCESS_ALL_ACCESS = &H1F0FFF + Public Shared Function IsDbgCsrss() As Boolean + If IsAdministrator = True Then + Return CBool(OpenProcess(PROCESS_ALL_ACCESS, 0, CsrGetProcessId)) + End If + Return False + End Function + 'Administrator privileges are required for this Function. + '//////////////////////////////////////////////////////////////////////// + + Public Shared Function Parent_Process(Optional ByVal ProcessName As String = "explorer.exe") As Boolean + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + Dim myId = Process.GetCurrentProcess().Id + Dim query = String.Format("SELECT ParentProcessId FROM Win32_Process WHERE ProcessId = {0}", myId) + Dim search = New ManagementObjectSearcher("root\CIMV2", query) + Dim results = search.[Get]().GetEnumerator() + results.MoveNext() + Dim queryObj = results.Current + Dim parentId = CUInt(queryObj("ParentProcessId")) + Dim parent = Process.GetProcessById(CInt(parentId)) + Dim ParentProcessName As String = parent.ProcessName + If LCase(ParentProcessName) = LCase(ProcessName) Then + Return False + Else + _LogResult = "The process : " & ParentProcessName & ".exe" & " I am trying to run / debug the program." & vbNewLine + Return True + End If + End Function + + Public Shared ReadOnly Property IsAdministrator As Boolean + Get + Return New WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator) + End Get + End Property + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtection/DestroyerCore/AntiDump/MainDump.vb b/DestroyerProtection/DestroyerCore/AntiDump/MainDump.vb new file mode 100644 index 0000000..4a0d52a --- /dev/null +++ b/DestroyerProtection/DestroyerCore/AntiDump/MainDump.vb @@ -0,0 +1,71 @@ +Imports System.Runtime.InteropServices + +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 01-04-2020 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiDump + Public Class MainDump + +#Region " Pinvoke's " + + _ + Public Shared Function GetModuleHandle(ByVal lpModuleName As String) As IntPtr + End Function + + + Private Shared Function ZeroMemory(ByVal addr As IntPtr, ByVal size As IntPtr) As IntPtr + End Function + + + Private Shared Function VirtualProtect(ByVal lpAddress As IntPtr, ByVal dwSize As IntPtr, ByVal flNewProtect As IntPtr, ByRef lpflOldProtect As IntPtr) As IntPtr + End Function + +#End Region + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + + Const PAGE_READWRITE As UInteger = 4 + + Public Shared Function AntiDumpEnabled(Optional ByVal FormF As Form = Nothing) As Boolean + Try + Dim OldProtect As UInteger = 0 + Dim pBaseAddr As IntPtr = GetModuleHandle(Nothing) + + ' Change memory protection + VirtualProtect(pBaseAddr, 4096, PAGE_READWRITE, OldProtect) + ZeroMemory(pBaseAddr, 4096) + + If Not FormF Is Nothing Then + AddHandler FormF.FormClosed, AddressOf FixClose + End If + _LogResult = "Anti Dump Triggered Properly" & vbNewLine + Return True + Catch ex As Exception + _LogResult = "Error activating Anti Dump. | " & ex.Message & vbNewLine + Return False + End Try + End Function + + Private Shared Sub FixClose() 'Not Fount . :( + End + End Sub + + End Class +End Namespace + diff --git a/DestroyerProtection/DestroyerCore/AntiVirtualMachine/MainVM.vb b/DestroyerProtection/DestroyerCore/AntiVirtualMachine/MainVM.vb new file mode 100644 index 0000000..4d5c341 --- /dev/null +++ b/DestroyerProtection/DestroyerCore/AntiVirtualMachine/MainVM.vb @@ -0,0 +1,370 @@ +Imports System.Runtime.InteropServices + +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 01-04-2020 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiVirtualMachine + Public Class MainVM + +#Region " Pinvoke's " + + _ + Public Shared Function GetModuleHandle(ByVal lpModuleName As String) As IntPtr + End Function + + _ + Public Shared Function GetProcAddress(ByVal hModule As IntPtr, ByVal procName As String) As UIntPtr + End Function + +#End Region + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + +#Region " Methods " + + Public Shared Function VirtualMachine_Check() As Boolean + If VMWareCheck() = True Then + Return True + End If + If WineCheck() = True Then + Return True + End If + If VirtualPCCheck() = True Then + Return True + End If + If VBoxCheck() = True Then + Return True + End If + Return False + End Function + +#Region " VMware Check" + + Public Shared Function VMWareCheck() As Boolean + If vmware_reg_key_value() = True Then + Return True + End If + If vmware_reg_keys() = True Then + Return True + End If + If vmware_files() = True Then + Return True + End If + If Not vmware_processes() = 0 Then + Return True + End If + Return False + End Function + + Private Shared Function vmware_reg_key_value() As Boolean + ' Array of strings of blacklisted registry key values + Dim szEntries()() As String = { + New String() {"HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0", "Identifier", "VMWARE"}, + New String() {"HARDWARE\DEVICEMAP\Scsi\Scsi Port 1\Scsi Bus 0\Target Id 0\Logical Unit Id 0", "Identifier", "VMWARE"}, + New String() {"HARDWARE\DEVICEMAP\Scsi\Scsi Port 2\Scsi Bus 0\Target Id 0\Logical Unit Id 0", "Identifier", "VMWARE"}, + New String() {"SYSTEM\ControlSet001\Control\SystemInformation", "SystemManufacturer", "VMWARE"}, + New String() {"SYSTEM\ControlSet001\Control\SystemInformation", "SystemProductName", "VMWARE"} + } + + Dim dwLength As UShort = szEntries.Length + For i As Integer = 0 To dwLength - 1 + If Not Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szEntries(i)(0)) Is Nothing Then + Dim regKey As String = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szEntries(i)(0)).GetValue(szEntries(i)(1)).ToString + If regKey = szEntries(i)(2) Then + _LogResult = "Malicious Registry Value: " & regKey.ToString & vbNewLine + Return True + End If + End If + Next i + Return False + End Function + + Private Shared Function vmware_reg_keys() As Boolean + ' Array of strings of blacklisted registry keys + Dim szKeys() As String = {"SOFTWARE\VMware", "Inc.\VMware Tools"} + Dim dwlength As UShort = szKeys.Length + + ' Check one by one + For i As Integer = 0 To dwlength - 1 + If Not Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szKeys(i)) Is Nothing Then + _LogResult = "Malicious Registry Value: " & "HKEY_LOCAL_MACHINE\" & szKeys(i).ToString & vbNewLine + Return True + End If + Next i + Return False + End Function + + + Private Shared Function vmware_files() As Boolean + Dim szPaths() As String = {"vmnet.sys", _ + "vmmouse.sys", _ + "vmusb.sys", _ + "vm3dmp.sys", _ + "vmci.sys", _ + "vmhgfs.sys", _ + "vmmemctl.sys", _ + "vmx86.sys", _ + "vmrawdsk.sys", _ + "vmusbmouse.sys", _ + "vmkdb.sys", _ + "vmnetuserif.sys", _ + "vmnetadapter.sys"} + + Dim winPath As String = Environment.GetEnvironmentVariable("windir") & "\System32\Drivers\" + + For Each DriverFile As String In szPaths + If My.Computer.FileSystem.FileExists(winPath & DriverFile) Then + _LogResult = "Virtual Machine Detected. | " & "Detected Driver: " & winPath & DriverFile & vbNewLine + Return True + End If + Next + Return False + End Function + + Private Shared Function vmware_processes() As Integer + Dim szProcesses() As String = {"vmtoolsd.exe", "vmwaretray.exe", "vmwareuser.exe", "VGAuthService.exe", "vmacthlp.exe"} + Dim ProcessesFound As Integer = 0 + + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + +#End Region + +#Region " WineVM Check" + + Public Shared Function WineCheck() As Boolean + If wine_exports() = True Then + Return True + End If + If wine_reg_keys() = True Then + Return True + End If + Return False + End Function + + Private Shared Function wine_exports() As Boolean + Dim hKernel32 As IntPtr + + hKernel32 = GetModuleHandle("kernel32.dll") + If hKernel32 = Nothing Then + Return False + End If + + ' Check if wine_get_unix_file_name is exported by this dll + If GetProcAddress(hKernel32, "wine_get_unix_file_name") = Nothing Then + _LogResult = "Running on WineVM detected." & vbNewLine + Return False + Else + Return True + End If + End Function + + Private Shared Function wine_reg_keys() As Boolean + If Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Wine") Is Nothing Then + Return False + Else + _LogResult = "Malicious Registry Value: " & "HKEY_CURRENT_USER\SOFTWARE\Wine" & vbNewLine + Return True + End If + End Function + +#End Region + +#Region " xen " + + Public Shared Function XenCheck() As Boolean + If Not Xen_processes() = 0 Then + Return True + End If + Return False + End Function + + + Private Shared Function Xen_processes() As Integer + Dim szProcesses() As String = {"xenservice.exe"} + Dim ProcessesFound As Integer = 0 + + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + +#End Region + +#Region " VirtualPC " + + Public Shared Function VirtualPCCheck() As Boolean + If VirtualPC_reg_keys() = True Then + Return True + End If + If Not VirtualPC_processes() = 0 Then + Return True + End If + Return False + End Function + + Private Shared Function VirtualPC_reg_keys() As Boolean + If Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Virtual Machine\\Guest\\Parameters") Is Nothing Then + Return False + Else + _LogResult = "Malicious Registry Value: " & "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" & vbNewLine + Return True + End If + End Function + + Private Shared Function VirtualPC_processes() As Integer + Dim szProcesses() As String = {"VMSrvc.exe", "VMUSrvc.exe"} + Dim ProcessesFound As Integer = 0 + + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + +#End Region + +#Region " VirtualBox " + + Public Shared Function VBoxCheck() As Boolean + If vbox_reg_key_value() = True Then + Return True + End If + If vbox_reg_keys() = True Then + Return True + End If + If vbox_files() = True Then + Return True + End If + If Not VBox_processes() = 0 Then + Return True + End If + Return False + End Function + + Private Shared Function vbox_reg_key_value() As Boolean + ' Array of strings of blacklisted registry key values + Dim szEntries()() As String = { + New String() {"HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0", "Identifier", "VBOX"}, + New String() {"HARDWARE\Description\System", "SystemBiosVersion", "VBOX"}, + New String() {"HARDWARE\Description\System", "VideoBiosVersion", "VIRTUALBOX"}, + New String() {"HARDWARE\Description\System", "SystemBiosDate", "06/23/99"} + } + Dim dwLength As UShort = szEntries.Length + For i As Integer = 0 To dwLength - 1 + If Not Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szEntries(i)(0)) Is Nothing Then + Dim regKey As String = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szEntries(i)(0)).GetValue(szEntries(i)(1)).ToString + If regKey = szEntries(i)(2) Then + _LogResult = "Malicious Registry Value: " & regKey.ToString & vbNewLine + Return True + End If + End If + Next i + Return False + End Function + + Private Shared Function vbox_reg_keys() As Boolean + ' Array of strings of blacklisted registry keys + Dim szKeys() As String = {"HARDWARE\ACPI\DSDT\VBOX__", _ + "HARDWARE\ACPI\FADT\VBOX__", _ + "HARDWARE\ACPI\RSDT\VBOX__", _ + "SOFTWARE\Oracle\VirtualBox Guest Additions", _ + "SYSTEM\ControlSet001\Services\VBoxGuest", _ + "SYSTEM\ControlSet001\Services\VBoxMouse", _ + "SYSTEM\ControlSet001\Services\VBoxService", _ + "SYSTEM\ControlSet001\Services\VBoxSF", _ + "SYSTEM\ControlSet001\Services\VBoxVideo"} + + Dim dwlength As UShort = szKeys.Length + For i As Integer = 0 To dwlength - 1 + If Not Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szKeys(i)) Is Nothing Then + _LogResult = "Malicious Registry Value: " & "HKEY_LOCAL_MACHINE\" & szKeys(i).ToString & vbNewLine + Return True + End If + Next i + Return False + End Function + + Private Shared Function vbox_files() As Boolean + Dim szPaths() As String = {"System32\drivers\VBoxMouse.sys", _ + "System32\drivers\VBoxGuest.sys", _ + "System32\drivers\VBoxSF.sys", _ + "System32\drivers\VBoxVideo.sys", _ + "System32\vboxdisp.dll", _ + "System32\vboxhook.dll", _ + "System32\vboxmrxnp.dll", _ + "System32\vboxogl.dll", _ + "System32\vboxoglarrayspu.dll", _ + "System32\vboxoglcrutil.dll", _ + "System32\vboxoglerrorspu.dll", _ + "System32\vboxoglfeedbackspu.dll", _ + "System32\vboxoglpackspu.dll", _ + "System32\vboxoglpassthroughspu.dll", _ + "System32\vboxservice.exe", _ + "System32\vboxtray.exe", _ + "System32\VBoxControl.exe"} + + Dim winPath As String = Environment.GetEnvironmentVariable("windir") & "\" + + For Each DriverFile As String In szPaths + If My.Computer.FileSystem.FileExists(winPath & DriverFile) Then + _LogResult = "VBox Detected. | " & "Detected Driver: " & winPath & DriverFile & vbNewLine + Return True + End If + Next + Return False + End Function + + Private Shared Function VBox_processes() As Integer + Dim szProcesses() As String = {"vboxservice.exe", "vboxtray.exe"} + Dim ProcessesFound As Integer = 0 + + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + +#End Region + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtection/DestroyerCore/AntiVirtualMachine/OldAntiVM.vb b/DestroyerProtection/DestroyerCore/AntiVirtualMachine/OldAntiVM.vb new file mode 100644 index 0000000..7368553 --- /dev/null +++ b/DestroyerProtection/DestroyerCore/AntiVirtualMachine/OldAntiVM.vb @@ -0,0 +1,696 @@ +Imports System.Runtime.InteropServices +Imports System.Management + +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 09-05-2019 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiVirtualMachine + Public Class OldAntiVM + +#Region "PInvokes" + + + Public Shared Function LoadLibrary( ByVal moduleName As String) As IntPtr + End Function + +#End Region + +#Region " Declarations " + + Private Shared DetectVM As ResultType = ResultType.Indeterminate + Private Shared DesCriptVM As String = String.Empty + +#End Region + +#Region "Propiertes" + + Public Shared Function IsVirtualMachinePresent() As Boolean + Return DetectVM + End Function + + Public Shared Function DescriptcionVM() As String + Return DesCriptVM + End Function + +#End Region + +#Region " Types " + + Public Enum ResultType + Secure = 0 + Danger = 1 + Indeterminate = 2 + End Enum + +#End Region + +#Region " Public Methods " + + Public Shared Sub VM_Start() + + Dim ScanAsyncEngine As New Task(StarScan, TaskCreationOptions.LongRunning) + + ScanAsyncEngine.Start() + + End Sub + + Private Shared StarScan As New Action( + Sub() + StartProcessScan() + End Sub) + + Private Shared Sub StartProcessScan() + + If LoadLibrary("SbieDll.dll") = True Then + DesCriptVM = "Sandboxie Detected" + DetectVM = ResultType.Danger + End If + + If Detect_Virtual_Machine() = True Then + DesCriptVM = "VM Detected" + DetectVM = ResultType.Danger + End If + + If Not AntiVM() = "False" Then + DesCriptVM = AntiVM() + DetectVM = ResultType.Danger + End If + + DetectVM = ResultType.Secure + End Sub + +#End Region + +#Region "Funcs" + + Private Shared Function Detect_Virtual_Machine() As Boolean + Dim ModelName As String = Nothing + Dim SearchQuery = New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE BytesPerSector > 0") + + For Each ManagementSystem In SearchQuery.Get + + ModelName = ManagementSystem("Model").ToString.Split(" ").First.ToLower + + If ModelName = "virtual" Or _ + ModelName = "vmware" Or _ + ModelName = "vbox" Or _ + ModelName = "qemu" _ + Then + Return True + End If + + Next + + Return False + End Function + + Private Shared Function AntiVM() As String + Dim oItem + With GetObject("winmgmts:\\.\root\cimv2") + For Each oItem In .ExecQuery("Select * from Win32_ComputerSystem") + Debug.Print(oItem.Model, CBool(InStr(1, oItem.Model, "Virtual", vbTextCompare))) + If CBool(InStr(1, oItem.Model, "Virtual", vbTextCompare)) = True Then + Return "Win32_ComputerSystem" + End If + + Next + + For Each oItem In .ExecQuery("Select * from Win32_VideoController") + If CBool(InStr(1, oItem.Caption, "VMWare", vbTextCompare)) = True Then + Return "Win32_VideoController" + End If + Next + + For Each Nic In .ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration") + + If Not IsDBNull(Nic.MACAddress) And Not IsDBNull(Nic.Description) Then + Dim MacAddress = LCase(CStr(Nic.MACAddress)) + Dim Description = LCase(CStr(Nic.Description)) + If InStr(1, MacAddress, "08:00:27:") = 1 And InStr(1, Description, "virtualbox") = 0 Then + Return "NetworkAdapterConfiguration" + End If + End If + + Next + + + For Each SysDrv In .ExecQuery("SELECT * FROM Win32_SystemDriver") + Dim DescSysDrv = SysDrv.Description + Dim DispSysDrv = SysDrv.DisplayName + Dim NameSysDrv = SysDrv.Name + Dim PathSysDrv = SysDrv.PathName + If Not IsDBNull(DescSysDrv) Then + If DescSysDrv = "VirtualBox Guest Driver" Or DescSysDrv = "VirtualBox Guest Mouse Service" Or DescSysDrv = "VirtualBox Shared Folders" Or DescSysDrv = "VBoxVideo" Then + 'test + Return "Win32_SystemDriver ==> SysDrv.Description ==> " & DescSysDrv + End If + End If + + If Not IsDBNull(DispSysDrv) Then + If DispSysDrv = "VirtualBox Guest Driver" Or DispSysDrv = "VirtualBox Guest Mouse Service" Or DispSysDrv = "VirtualBox Shared Folders" Or DispSysDrv = "VBoxVideo" Then + 'test + Return "Win32_SystemDriver ==> SysDrv.DisplayName ==> " & DispSysDrv + End If + End If + + If Not IsDBNull(NameSysDrv) Then + If NameSysDrv = "VBoxGuest" Or NameSysDrv = "VBoxMouse" Or NameSysDrv = "VBoxSF" Or NameSysDrv = "VBoxVideo" Then + 'test + Return "Win32_SystemDriver ==> SysDrv.Name ==> " & NameSysDrv + End If + End If + + If Not IsDBNull(PathSysDrv) Then + Dim PathSysDrv_l = LCase(PathSysDrv) + If InStr(1, PathSysDrv_l, "vboxguest.sys") > 0 Or InStr(1, PathSysDrv_l, "vboxmouse.sys") > 0 Or InStr(1, PathSysDrv_l, "vboxsf.sys") > 0 Or InStr(1, PathSysDrv_l, "vboxvideo.sys") > 0 Then + 'test + Return "Win32_SystemDriver ==> SysDrv.PathName ==> " & PathSysDrv + End If + End If + Next + + For Each EvtLogX In .ExecQuery("SELECT * FROM Win32_NTEventlogFile") + If Not IsDBNull(EvtLogX) Then + Dim FileNameEvtX = CStr(EvtLogX.FileName) + Dim FileNameEvtX_l = LCase(FileNameEvtX) + If FileNameEvtX_l = "sysevent" Or FileNameEvtX_l = "system" Then + Dim SourcesEvtX = EvtLogX.Sources + For Each SourceEvtX In SourcesEvtX + Dim SourceEvtX_l = LCase(CStr(SourceEvtX)) + If SourceEvtX_l = "vboxvideo" Then + 'test + Return "Win32_NTEventlogFile ==> EvtLogX.Sources ==> " & SourceEvtX + End If + Next + End If + End If + Next + + + For Each Bios In .ExecQuery("SELECT * FROM Win32_BIOS") + If Not IsDBNull(Bios) Then + If Not IsDBNull(Bios.Manufacturer) Then + Dim ManufacturerBios = LCase(CStr(Bios.Manufacturer)) + If InStr(1, ManufacturerBios, "innotek gmbh") > 0 Then + 'test + Return "Win32_BIOS ==> Bios.Manufacturer ==> " & Bios.Manufacturer + End If + End If + If Not IsDBNull(Bios.SMBIOSBIOSVersion) Then + Dim SMBIOSBIOSVersionBios = LCase(CStr(Bios.SMBIOSBIOSVersion)) + If InStr(1, SMBIOSBIOSVersionBios, "virtualbox") > 0 Then + + Return "Win32_BIOS ==> Bios.SMBIOSBIOSVersion ==> " & Bios.SMBIOSBIOSVersion + End If + End If + If Not IsDBNull(Bios.Version) Then + Dim VersionBios = LCase(CStr(Bios.Version)) + If InStr(1, VersionBios, "vbox - 1") > 0 Then + 'test + Return "Win32_BIOS ==> Bios.Version ==> " & Bios.Version + End If + End If + End If + Next + + For Each DiskDrive In .ExecQuery("SELECT * FROM Win32_DiskDrive") + If Not IsDBNull(DiskDrive) Then + If Not IsDBNull(DiskDrive.Model) Then + Dim ModelDskDrv = LCase(DiskDrive.Model) + If ModelDskDrv = "vbox harddisk" Then + 'test + Return "Win32_DiskDrive ==> DiskDrive.Model ==> " & DiskDrive.Model + End If + End If + If Not IsDBNull(DiskDrive.PNPDeviceID) Then + Dim PNPDeviceIDDskDrv = LCase(DiskDrive.PNPDeviceID) + If InStr(1, PNPDeviceIDDskDrv, "diskvbox") > 0 Then + 'test + Return "Win32_DiskDrive ==> DiskDrive.PNPDeviceID ==> " & DiskDrive.PNPDeviceID + End If + End If + End If + Next + + For Each Startup In .ExecQuery("SELECT * FROM Win32_StartupCommand") + If Not IsDBNull(Startup) Then + If Not IsDBNull(Startup.Caption) Then + Dim CaptionStartup = LCase(CStr(Startup.Caption)) + If CaptionStartup = "vboxtray" Then + 'test + Return "Win32_StartupCommand ==> Startup.Caption ==> " & Startup.Caption + End If + End If + If Not IsDBNull(Startup.Command) Then + Dim CommandStartup = LCase(CStr(Startup.Command)) + If InStr(1, CommandStartup, "vboxtray.exe") > 0 Then + 'test + Return "Win32_StartupCommand ==> Startup.Command ==> " & Startup.Command + End If + End If + If Not IsDBNull(Startup.Description) Then + Dim DescStartup = LCase(CStr(Startup.Description)) + If DescStartup = "vboxtray" Then + + Return "Win32_StartupCommand ==> Startup.Description ==> " & Startup.Description + End If + End If + End If + Next + + For Each ComputerSystem In .ExecQuery("SELECT * FROM Win32_ComputerSystem") + If Not IsDBNull(ComputerSystem) Then + If Not IsDBNull(ComputerSystem.Manufacturer) Then + Dim ManufacturerComputerSystem = LCase(CStr(ComputerSystem.Manufacturer)) + If ManufacturerComputerSystem = "innotek gmbh" Then + 'test + Return "Win32_ComputerSystem ==> ComputerSystem.Manufacturer ==> " & ComputerSystem.Manufacturer + End If + End If + If Not IsDBNull(ComputerSystem.Model) Then + Dim ModelComputerSystem = LCase(CStr(ComputerSystem.Model)) + If ModelComputerSystem = "virtualbox" Then + + Return "Win32_ComputerSystem ==> ComputerSystem.Model ==> " & ComputerSystem.Model + End If + End If + If Not IsDBNull(ComputerSystem.OEMStringArray) Then + Dim OEMStringArrayComputerSystem = ComputerSystem.OEMStringArray + For Each OEM In OEMStringArrayComputerSystem + Dim OEM_l = LCase(OEM) + If InStr(1, OEM_l, "vboxver_") > 0 Or InStr(1, OEM_l, "vboxrev_") > 0 Then + 'test + Return "Win32_ComputerSystem ==> ComputerSystem.OEMStringArray ==> " & OEM + End If + Next + End If + End If + Next + + + For Each Service In .ExecQuery("SELECT * FROM Win32_Service") + If Not IsDBNull(Service) Then + If Not IsDBNull(Service.Caption) Then + Dim CaptionService = LCase(CStr(Service.Caption)) + If CaptionService = "virtualbox guest additions service" Then + 'test + Return "Win32_Service ==> Service.Caption ==> " & Service.Caption + End If + End If + If Not IsDBNull(Service.DisplayName) Then + Dim DisplayNameService = LCase(CStr(Service.DisplayName)) + If DisplayNameService = "virtualbox guest additions service" Then + 'test + Return "Win32_Service ==> Service.DisplayName ==> " & Service.DisplayName + End If + End If + If Not IsDBNull(Service.Name) Then + Dim NameService = LCase(CStr(Service.Name)) + If NameService = "vboxservice" Then + 'test + Return "Win32_Service ==> Service.Name ==> " & Service.Name + End If + End If + If Not IsDBNull(Service.PathName) Then + Dim PathNameService = LCase(CStr(Service.PathName)) + If InStr(1, PathNameService, "vboxservice.exe") > 0 Then + 'test + Return "Win32_Service ==> Service.PathName ==> " & Service.PathName + End If + End If + End If + Next + + + For Each LogicalDisk In .ExecQuery("SELECT * FROM Win32_LogicalDisk") + If Not IsDBNull(LogicalDisk) Then + If Not IsDBNull(LogicalDisk.DriveType) Then + If LogicalDisk.DriveType = 3 Then + If Not IsDBNull(LogicalDisk.VolumeSerialNumber) Then + Dim VolumeSerialNumberLogicalDisk = LCase(LogicalDisk.VolumeSerialNumber) + If VolumeSerialNumberLogicalDisk = "fceae0a3" Then + 'test + Return "Win32_LogicalDisk ==> LogicalDisk.VolumeSerialNumber ==> " & LogicalDisk.VolumeSerialNumber + End If + End If + ElseIf LogicalDisk.DriveType = 5 Then + If Not IsDBNull(LogicalDisk.VolumeName) Then + Dim VolumeNameLogicalDisk = LCase(LogicalDisk.VolumeName) + 'Volume name should be "VBOXADDITIONS_4." + If InStr(1, VolumeNameLogicalDisk, "vboxadditions") > 0 Then + + Return "Win32_LogicalDisk ==> LogicalDisk.VolumeName ==> " & LogicalDisk.VolumeName + End If + End If + End If + End If + End If + Next + + '////////////////////////////////////////////////////////////////////////// + + + For Each LocalProgramGroup In .ExecQuery("SELECT * FROM Win32_LogicalProgramGroup") + If Not IsDBNull(LocalProgramGroup) Then + Dim NameLocalProgramGroup = LCase(LocalProgramGroup.Name) + If InStr(1, NameLocalProgramGroup, "oracle vm virtualbox guest additions") > 0 Then + 'test + Return "Win32_LogicalProgramGroup ==> LocalProgramGroup.Name ==> " & LocalProgramGroup.Name + End If + End If + Next + + + + 'Win32_NetworkAdapter aka NIC + For Each NIC_x In .ExecQuery("SELECT * FROM Win32_NetworkAdapter") + If Not IsDBNull(NIC_x.MACAddress) And Not IsDBNull(NIC_x.Description) Then + Dim MacAddress_x = LCase(CStr(NIC_x.MACAddress)) + Dim Description_x = LCase(CStr(NIC_x.Description)) + 'We want to detect the VirtualBox guest, not the host + If InStr(1, MacAddress_x, "08:00:27:") = 1 And InStr(1, Description_x, "virtualbox") = 0 Then + 'test + Return "Wow: Win32_NetworkAdapter ==> NIC.MacAddress: " & NIC_x.MACAddress + End If + End If + Next + + + 'Win32_Process aka process + For Each Process In .ExecQuery("SELECT * FROM Win32_Process") + If Not IsDBNull(Process) Then + If Not IsDBNull(Process.Description) Then + Dim DescProcess = LCase(Process.Description) + If DescProcess = "vboxservice.exe" Or DescProcess = "vboxtray.exe" Then + 'test + Return "Win32_Process ==> Process.Description ==> " & Process.Description + End If + End If + If Not IsDBNull(Process.Name) Then + Dim NameProcess = LCase(Process.Name) + If NameProcess = "vboxservice.exe" Or NameProcess = "vboxtray.exe" Then + ''test "Win32_Process ==> Process.Name ==> " & Process.Name + Return True + End If + End If + If Not IsDBNull(Process.CommandLine) Then + Dim CmdProcess = LCase(Process.CommandLine) + If InStr(1, CmdProcess, "vboxservice.exe") > 0 Or InStr(1, CmdProcess, "vboxtray.exe") > 0 Then + 'test + Return "Win32_Service ==> Process.CommandLine ==> " & Process.CommandLine + End If + End If + If Not IsDBNull(Process.ExecutablePath) Then + Dim ExePathProcess = LCase(Process.ExecutablePath) + If InStr(1, ExePathProcess, "vboxservice.exe") > 0 Or InStr(1, ExePathProcess, "vboxtray.exe") > 0 Then + ''test + Return "Win32_Service ==> Process.ExecutablePath ==> " & Process.ExecutablePath + End If + End If + End If + Next + + 'Win32_BaseBoard aka BaseBoard + + For Each BaseBoard In .ExecQuery("SELECT * FROM Win32_BaseBoard") + If Not IsDBNull(BaseBoard) Then + If Not IsDBNull(BaseBoard.Manufacturer) Then + Dim ManufacturerBaseBoard = LCase(BaseBoard.Manufacturer) + If ManufacturerBaseBoard = "oracle corporation" Then + ''test + Return "Win32_BaseBoard ==> BaseBoard.Manufacturer ==> " & BaseBoard.Manufacturer + End If + End If + If Not IsDBNull(BaseBoard.Product) Then + Dim ProductBaseBoard = LCase(BaseBoard.Product) + If ProductBaseBoard = "virtualbox" Then + ''test + Return "Win32_BaseBoard ==> BaseBoard.Product ==> " & BaseBoard.Product + End If + End If + End If + Next + + 'Win32_SystemEnclosure aka SystemEnclosure + + For Each SystemEnclosure In .ExecQuery("SELECT * FROM Win32_SystemEnclosure") + If Not IsDBNull(SystemEnclosure) Then + If Not IsDBNull(SystemEnclosure.Manufacturer) Then + Dim ManufacturerSystemEnclosure = LCase(SystemEnclosure.Manufacturer) + If ManufacturerSystemEnclosure = "oracle corporation" Then + 'test + Return "Win32_SystemEnclosure ==> SystemEnclosure.Manufacturer ==> " & SystemEnclosure.Manufacturer + End If + End If + End If + Next + + 'Win32_CDROMDrive aka cdrom + For Each CDRom In .ExecQuery("SELECT * FROM Win32_CDROMDrive") + If Not IsDBNull(CDRom) Then + If Not IsDBNull(CDRom.Name) Then + Dim NameCDRom = LCase(CDRom.Name) + If NameCDRom = "vbox cd-rom" Then + 'test + Return "Win32_CDROMDrive ==> CDRom.Name ==> " & CDRom.Name + End If + End If + If Not IsDBNull(CDRom.VolumeName) Then + Dim VolumeNameCDRom = LCase(CDRom.VolumeName) + 'Volume name should be "VBOXADDITIONS_4." + If InStr(1, VolumeNameCDRom, "vboxadditions") > 0 Then + 'test + Return "Win32_CDROMDrive ==> CDRom.VolumeName ==> " & CDRom.VolumeName + End If + End If + If Not IsDBNull(CDRom.DeviceID) Then + Dim DeviceIDCDRom = LCase(CDRom.DeviceID) + If InStr(1, DeviceIDCDRom, "cdromvbox") > 0 Then + 'test + Return "Win32_CDROMDrive ==> CDRom.DeviceID ==> " & CDRom.DeviceID + End If + End If + If Not IsDBNull(CDRom.PNPDeviceID) Then + Dim PNPDeviceIDCDRom = LCase(CDRom.PNPDeviceID) + If InStr(1, PNPDeviceIDCDRom, "cdromvbox") > 0 Then + + Return "Win32_CDROMDrive ==> CDRom.PNPDeviceID ==> " & CDRom.PNPDeviceID + End If + End If + End If + Next + + + 'WIN32_NetworkClient aka netclient + For Each NetClient In .ExecQuery("SELECT * FROM WIN32_NetworkClient") + If Not IsDBNull(NetClient) Then + If Not IsDBNull(NetClient.Description) Then + Dim DescNetClient = LCase(NetClient.Description) + If DescNetClient = "vboxsf" Then + 'test + Return "WIN32_NetworkClient ==> NetClient.Description ==> " & NetClient.Description + End If + End If + If Not IsDBNull(NetClient.Manufacturer) Then + Dim ManufacturerNetClient = LCase(NetClient.Manufacturer) + If ManufacturerNetClient = "oracle corporation" Then + 'test + Return "WIN32_NetworkClient ==> NetClient.Manufacturer ==> " & NetClient.Manufacturer + End If + End If + If Not IsDBNull(NetClient.Name) Then + Dim NameNetClient = LCase(NetClient.Name) + If NameNetClient = "virtualbox shared folders" Then + 'test + Return "WIN32_NetworkClient ==> NetClient.Name ==> " & NetClient.Name + End If + End If + End If + Next + + 'Win32_ComputerSystemProduct aka csproduct + + For Each CSProduct In .ExecQuery("SELECT * FROM Win32_ComputerSystemProduct") + If Not IsDBNull(CSProduct) Then + If Not IsDBNull(CSProduct.Name) Then + Dim NameCSProduct = LCase(CSProduct.Name) + If NameCSProduct = "virtualbox" Then + 'test + Return "Win32_ComputerSystemProduct ==> CSProduct.Name ==> " & CSProduct.Name + End If + End If + If Not IsDBNull(CSProduct.Vendor) Then + Dim VendorCSProduct = LCase(CSProduct.Vendor) + If VendorCSProduct = "innotek gmbh" Then + 'test + Return "Win32_ComputerSystemProduct ==> CSProduct.Vendor ==> " & CSProduct.Vendor + End If + End If + End If + Next + + 'Win32_VideoController + + For Each VideoController In .ExecQuery("SELECT * FROM Win32_VideoController") + If Not IsDBNull(VideoController) Then + If Not IsDBNull(VideoController.Name) Then + Dim NameVideoController = LCase(VideoController.Name) + If NameVideoController = "virtualbox graphics adapter" Then + 'test + Return "Win32_VideoController ==> VideoController.Name ==> " & VideoController.Name + End If + End If + If Not IsDBNull(VideoController.Description) Then + Dim DescVideoController = LCase(VideoController.Description) + If DescVideoController = "virtualbox graphics adapter" Then + 'test + Return "Win32_VideoController ==> VideoController.Description ==> " & VideoController.Description + End If + End If + If Not IsDBNull(VideoController.Caption) Then + Dim CaptionVideoController = LCase(VideoController.Caption) + If CaptionVideoController = "virtualbox graphics adapter" Then + 'test + Return "Win32_VideoController ==> VideoController.Caption ==> " & VideoController.Caption + End If + End If + If Not IsDBNull(VideoController.VideoProcessor) Then + Dim VideoProcessorVideoController = LCase(VideoController.VideoProcessor) + If VideoProcessorVideoController = "vbox" Then + + Return "Win32_VideoController ==> VideoController.VideoProcessor ==> " & VideoController.VideoProcessor + End If + End If + If Not IsDBNull(VideoController.InstalledDisplayDrivers) Then + Dim InstalledDisplayDriversVideoController = LCase(VideoController.InstalledDisplayDrivers) + If InstalledDisplayDriversVideoController = "vboxdisp.sys" Then + 'test + Return "Win32_VideoController ==> VideoController.InstalledDisplayDrivers ==> " & VideoController.InstalledDisplayDrivers + End If + End If + If Not IsDBNull(VideoController.InfSection) Then + Dim InfSectionVideoController = LCase(VideoController.InfSection) + If InfSectionVideoController = "vboxvideo" Then + 'test + Return "Win32_VideoController ==> VideoController.InfSection ==> " & VideoController.InfSection + End If + End If + If Not IsDBNull(VideoController.AdapterCompatibility) Then + Dim AdapterCompatibilityVideoController = LCase(VideoController.AdapterCompatibility) + If AdapterCompatibilityVideoController = "oracle corporation" Then + 'test + Return "Win32_VideoController ==> VideoController.AdapterCompatibility ==> " & VideoController.AdapterCompatibility + End If + End If + End If + Next + + + 'Win32_PnPEntity + + For Each PnPEntity In .ExecQuery("SELECT * FROM Win32_PnPEntity") + If Not IsDBNull(PnPEntity) Then + If Not IsDBNull(PnPEntity.Name) Then + Dim NamePnPEntity = LCase(PnPEntity.Name) + If NamePnPEntity = "virtualbox device" Or NamePnPEntity = "vbox harddisk" Or NamePnPEntity = "vbox cd-rom" Or NamePnPEntity = "virtualbox graphics adapter" Then + 'test + Return "Win32_PnPEntity ==> PnPEntity.Name ==> " & PnPEntity.Name + End If + End If + If Not IsDBNull(PnPEntity.Caption) Then + Dim CaptionPnPEntity = LCase(PnPEntity.Caption) + If CaptionPnPEntity = "virtualbox device" Or CaptionPnPEntity = "vbox harddisk" Or CaptionPnPEntity = "vbox cd-rom" Or CaptionPnPEntity = "virtualbox graphics adapter" Then + 'test + Return "Win32_PnPEntity ==> PnPEntity.Caption ==> " & PnPEntity.Caption + End If + End If + If Not IsDBNull(PnPEntity.Description) Then + Dim DescPnPEntity = LCase(PnPEntity.Description) + If DescPnPEntity = "virtualbox device" Or DescPnPEntity = "virtualbox graphics adapter" Then + + Return "Win32_PnPEntity ==> PnPEntity.Description ==> " & PnPEntity.Description + End If + End If + If Not IsDBNull(PnPEntity.Service) Then + Dim SrvPnPEntity = LCase(PnPEntity.Service) + If SrvPnPEntity = "vboxguest" Or SrvPnPEntity = "vboxvideo" Then + + Return "Win32_PnPEntity ==> PnPEntity.Service ==> " & PnPEntity.Service + End If + End If + If Not IsDBNull(PnPEntity.DeviceID) Then + Dim DeviceIDPnPEntity = LCase(PnPEntity.DeviceID) + If InStr(1, DeviceIDPnPEntity, "diskvbox_") > 0 Or InStr(1, DeviceIDPnPEntity, "cdromvbox_") > 0 Then + 'test + Return "Win32_PnPEntity ==> PnPEntity.DeviceID ==> " & PnPEntity.DeviceID + End If + End If + If Not IsDBNull(PnPEntity.PNPDeviceID) Then + Dim PNPDeviceIDPnPEntity = LCase(PnPEntity.PNPDeviceID) + If InStr(1, PNPDeviceIDPnPEntity, "diskvbox_") > 0 Or InStr(1, PNPDeviceIDPnPEntity, "cdromvbox_") > 0 Then + 'test + Return "Win32_PnPEntity ==> PnPEntity.PNPDeviceID ==> " & PnPEntity.PNPDeviceID + End If + End If + End If + Next + + 'Win32_NetworkConnection aka NetUse + + For Each NetUse In .ExecQuery("SELECT * FROM Win32_NetworkConnection") + If Not IsDBNull(NetUse) Then + If Not IsDBNull(NetUse.Name) Then + Dim NameNetUse = LCase(NetUse.Name) + If InStr(1, NameNetUse, "vboxsvr") > 0 Then + 'test + Return "Win32_NetworkConnection ==> NetUse.Name ==> " & NetUse.Name + End If + End If + If Not IsDBNull(NetUse.Description) Then + Dim DescNetUse = LCase(NetUse.Description) + If InStr(1, DescNetUse, "virtualbox shared folders") > 0 Then + 'test + Return "Win32_NetworkConnection ==> NetUse.Description ==> " & NetUse.Description + End If + End If + If Not IsDBNull(NetUse.ProviderName) Then + Dim PrvNameNetUse = LCase(NetUse.ProviderName) + If PrvNameNetUse = "virtualbox shared folders" Then + 'test + Return "Win32_NetworkConnection ==> NetUse.ProviderName ==> " & NetUse.ProviderName + End If + End If + + If Not IsDBNull(NetUse.RemoteName) Then + Dim RemoteNameNetUse = LCase(NetUse.RemoteName) + If InStr(1, RemoteNameNetUse, "vboxsvr") > 0 Then + 'test + Return "Win32_NetworkConnection ==> NetUse.RemoteName ==> " & NetUse.RemoteName + End If + End If + If Not IsDBNull(NetUse.RemotePath) Then + Dim RemotePathNetUse = LCase(NetUse.RemotePath) + If InStr(1, RemotePathNetUse, "vboxsvr") > 0 Then + 'test + Return "Win32_NetworkConnection ==> NetUse.RemotePath ==> " & NetUse.RemotePath + End If + End If + End If + Next + + End With + Return "False" + End Function + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtection/DestroyerCore/DestroyerProtect.vb b/DestroyerProtection/DestroyerCore/DestroyerProtect.vb new file mode 100644 index 0000000..4864d04 --- /dev/null +++ b/DestroyerProtection/DestroyerCore/DestroyerProtect.vb @@ -0,0 +1,239 @@ +Imports DestroyerProtection.Destroyer.AntiAnalysis +Imports DestroyerProtection.Destroyer.AntiDebug +Imports DestroyerProtection.Destroyer.AntiDump +Imports DestroyerProtection.Destroyer.AntiVirtualMachine +Imports System.ComponentModel + +Namespace Destroyer.Protect + Public Class DestroyerProtect + +#Region " Properties " + + Private Shared _Process_scanner As ResultType = ResultType.Indeterminate + Public Shared ReadOnly Property Process_scanner As ResultType + Get + Return _Process_scanner + End Get + End Property + + Private Shared _Debugers_scanner As ResultType = ResultType.Indeterminate + Public Shared ReadOnly Property Debugers_scanner As ResultType + Get + Return _Debugers_scanner + End Get + End Property + + Private Shared _VM_scanner As ResultType = ResultType.Indeterminate + Public Shared ReadOnly Property VM_scanner As ResultType + Get + Return _VM_scanner + End Get + End Property + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + + Private Shared _DetectDescription As String = String.Empty + Public Shared ReadOnly Property DetectDescription As String + Get + Return _DetectDescription + End Get + End Property + +#End Region + +#Region " Types " + + Public Enum ResultType + Secure = 0 + Danger = 1 + Indeterminate = 2 + IError = 3 + End Enum + + Public Enum VMScanType + By_Directory_Known = 0 + By_Generalized_Name = 1 + None = 2 + End Enum + +#End Region + +#Region " Methods " + + Private Shared Pscan As MainAnalysis.SearchType + Private Shared Dscan As MainDebug.DebugDetectionTypes + Private Shared VMscan As VMScanType + Private Shared tmrFormMonitor As System.Windows.Forms.Timer = New System.Windows.Forms.Timer() + + Public Shared Sub Start(ByVal ProcessScan As MainAnalysis.SearchType, ByVal DebugScan As MainDebug.DebugDetectionTypes, _ + ByVal VMScanType As VMScanType, Optional EnableAntiDump As Boolean = False, Optional MainForm As Form = Nothing) + Execution_Start() + _Process_scanner = ResultType.Indeterminate + _Debugers_scanner = ResultType.Indeterminate + _VM_scanner = ResultType.Indeterminate + Pscan = ProcessScan + Dscan = DebugScan + VMscan = VMScanType + If EnableAntiDump = True Then + MainDump.AntiDumpEnabled(MainForm) + _LogResult += MainDump.LogResult & vbNewLine + End If + AddHandler tmrFormMonitor.Tick, New System.EventHandler(AddressOf tmrFormMonitor_Tick) + tmrFormMonitor.Interval = 100 + tmrFormMonitor.Enabled = True + Dim t = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf StartAnalisys)) + t.Start() + End Sub + + Private Shared Sub tmrFormMonitor_Tick(ByVal sender As Object, ByVal e As EventArgs) + If VMscan = VMScanType.By_Generalized_Name Then + Dim VMDetection As OldAntiVM.ResultType = OldAntiVM.IsVirtualMachinePresent + Dim VMDescription As String = OldAntiVM.DescriptcionVM + + If VMDetection = OldAntiVM.ResultType.Danger Then + _VM_scanner = ResultType.Danger + _DetectDescription += "Virtual Machine Detected : " & VMDescription & vbNewLine + Execution_End() + tmrFormMonitor.Enabled = False + ElseIf VMDetection = OldAntiVM.ResultType.Secure Then + _VM_scanner = ResultType.Secure + Execution_End() + tmrFormMonitor.Enabled = False + End If + End If + End Sub + + Private Shared Sub StartAnalisys() + + If Not Pscan = MainAnalysis.SearchType.None Then + If MainAnalysis.Malicious_Processes_Found(Pscan) = True Then + _Process_scanner = ResultType.Danger + _DetectDescription += MainAnalysis.LogResult & vbNewLine + Else + _Process_scanner = ResultType.Secure + End If + End If + + If Not Dscan = MainDebug.DebugDetectionTypes.None Then + + If MainDebug.Debugger_Check(Dscan) = True Then + _Debugers_scanner = ResultType.Danger + _DetectDescription += MainDebug.LogResult & vbNewLine + Else + _Debugers_scanner = ResultType.Secure + End If + + End If + + If Not VMscan = VMScanType.None Then + If VMscan = VMScanType.By_Directory_Known Then + If MainVM.VirtualMachine_Check() = True Then + _VM_scanner = ResultType.Danger + _DetectDescription += MainVM.LogResult & vbNewLine + Else + _VM_scanner = ResultType.Secure + End If + Execution_End() + ElseIf VMscan = VMScanType.By_Generalized_Name Then + OldAntiVM.VM_Start() + End If + End If + + End Sub + + Private Shared PscanMonitor As MainAnalysis.SearchType + Private Shared DscanMonitor As MainDebug.DebugDetectionTypes + + Public Shared Sub MonitorAsync(ByVal ProcessMonitoreScan As MainAnalysis.SearchType, ByVal DebugMonitoreScan As MainDebug.DebugDetectionTypes, Optional VmScanAsyncro As VMScanType = VMScanType.None) + _Process_scanner = ResultType.Indeterminate + _Debugers_scanner = ResultType.Indeterminate + PscanMonitor = ProcessMonitoreScan + DscanMonitor = DebugMonitoreScan + If Not VmScanAsyncro = VMScanType.None Then + VMscan = VmScanAsyncro + AddHandler tmrFormMonitor.Tick, New System.EventHandler(AddressOf tmrFormMonitor_Tick) + tmrFormMonitor.Interval = 100 + tmrFormMonitor.Enabled = True + End If + Dim EngineThread As New Task(ProcessAsyncMonitoring, TaskCreationOptions.LongRunning) + EngineThread.Start() + Execution_Start() + End Sub + + Private Shared ProcessAsyncMonitoring As New Action( + Sub() + Do While True + + If Not PscanMonitor = MainAnalysis.SearchType.None Then + If MainAnalysis.Malicious_Processes_Found(PscanMonitor) = True Then + _DetectDescription += MainAnalysis.LogResult & vbNewLine + _Process_scanner = ResultType.Danger + Execution_End() + End If + End If + + If Not DscanMonitor = MainDebug.DebugDetectionTypes.None Then + If MainDebug.Debugger_Check(DscanMonitor) = True Then + _DetectDescription += MainDebug.LogResult & vbNewLine + _Debugers_scanner = ResultType.Danger + Execution_End() + End If + End If + + If Not VMscan = VMScanType.None Then + If VMscan = VMScanType.By_Directory_Known Then + If MainVM.VirtualMachine_Check() = True Then + _DetectDescription += MainVM.LogResult & vbNewLine + _VM_scanner = ResultType.Danger + Else + _VM_scanner = ResultType.Secure + End If + Execution_End() + ElseIf VMscan = VMScanType.By_Generalized_Name Then + OldAntiVM.VM_Start() + End If + End If + + Loop + End Sub) + +#End Region + +#Region " Execution Time " + + ' [ Code Execution Time ] + ' + ' Examples : + ' Execution_Start() : Threading.Thread.Sleep(500) : Execution_End() + + Private Shared Execution_Watcher As New Stopwatch + + Private Shared Sub Execution_Start() + If Execution_Watcher.IsRunning Then Execution_Watcher.Restart() + Execution_Watcher.Start() + End Sub + + Private Shared Sub Execution_End() + If Execution_Watcher.IsRunning Then + _LogResult += vbNewLine + _LogResult += " +Elapsed Time: " & Execution_Watcher.Elapsed.Hours & "h" & _ + ":" & Execution_Watcher.Elapsed.Minutes & "m" & _ + ":" & Execution_Watcher.Elapsed.Seconds & "s" & _ + ":" & Execution_Watcher.Elapsed.Milliseconds & "ms" & vbNewLine & vbNewLine + Execution_Watcher.Reset() + Else + + + End If + End Sub + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtection/DestroyerCore/DirAnalysis/MainDirScan.vb b/DestroyerProtection/DestroyerCore/DirAnalysis/MainDirScan.vb new file mode 100644 index 0000000..e963206 --- /dev/null +++ b/DestroyerProtection/DestroyerCore/DirAnalysis/MainDirScan.vb @@ -0,0 +1,65 @@ +Imports System.IO + +Namespace Destroyer + + Public Class MainDirScan + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + +#Region " Declare's " + + Dim MaliciusFolderName() As String = {"de4dot", _ + "dnSpy"} + + Public ReadOnly Property ResultDirScan As Boolean + Get + Return MaliciousDir() + End Get + End Property + +#End Region + +#Region " Methods " + + Public Function MaliciousDir() As Boolean + Dim DirRoaming As List(Of String) = GetFolders(GetAppDataPath()) + + For Each FolderPth As String In DirRoaming + Dim FolderN As String = LCase(System.IO.Path.GetFileName(FolderPth)) + For Each FolderMname As String In MaliciusFolderName + If CheckString(FolderN, LCase(FolderMname)) = True Then + _LogResult = "Malicious path detected: " & FolderPth & vbNewLine + Return True + End If + Next + Next + + Return False + End Function + + Private Function CheckString(ByVal Foldername As String, ByVal FolderIdent As String) + Return Foldername.Contains(FolderIdent) + End Function + + Private Function GetFolders(ByVal DirP As String) As List(Of String) + Return FileDirSearcher.GetDirPaths(DirP, SearchOption.TopDirectoryOnly).ToList + End Function + + Private Function GetAppDataPath() As String + Return Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + End Function + +#End Region + + End Class + +End Namespace diff --git a/DestroyerProtection/DestroyerCore/FileDirSearcher.vb b/DestroyerProtection/DestroyerCore/FileDirSearcher.vb new file mode 100644 index 0000000..5c3b43e --- /dev/null +++ b/DestroyerProtection/DestroyerCore/FileDirSearcher.vb @@ -0,0 +1,979 @@ +' *********************************************************************** +' Author : Elektro +' Modified : 14-February-2015 +' *********************************************************************** +' +' Copyright (c) Elektro Studios. All rights reserved. +' +' *********************************************************************** + +#Region " Usage Examples " + +'Dim files As List(Of FileInfo) = FileDirSearcher.GetFiles("C:\Windows\System32", SearchOption.AllDirectories).ToList +'Dim files As List(Of String) = FileDirSearcher.GetFilePaths("C:\Windows\System32", SearchOption.AllDirectories).ToList + +'Dim dirs As List(Of DirectoryInfo) = FileDirSearcher.GetDirs("C:\Windows\System32", SearchOption.AllDirectories).ToList +'Dim dirs As List(Of String) = FileDirSearcher.GetDirPaths("C:\Windows\System32", SearchOption.AllDirectories).ToList + +'Dim files As IEnumerable(Of FileInfo) = FileDirSearcher.GetFiles(dirPath:="C:\Windows\System32", +' searchOption:=SearchOption.TopDirectoryOnly, +' fileNamePatterns:={"*"}, +' fileExtPatterns:={"*.dll", "*.exe"}, +' ignoreCase:=True, +' throwOnError:=True) + +'Dim dirs As IEnumerable(Of DirectoryInfo) = FileDirSearcher.GetDirs(dirPath:="C:\Windows\System32", +' searchOption:=SearchOption.TopDirectoryOnly, +' dirPathPatterns:={"*"}, +' dirNamePatterns:={"*Microsoft*"}, +' ignoreCase:=True, +' throwOnError:=True) + +#End Region + +#Region " Option Statements " + +Option Explicit On +Option Strict On +Option Infer Off + +#End Region + +#Region " Imports " + +Imports System.IO +Imports System.Collections.Concurrent +Imports System.Threading.Tasks + +#End Region + +#Region " File Dir Searcher " + +''' +''' Searchs for files and directories. +''' +Public NotInheritable Class FileDirSearcher + +#Region " Public Methods " + + ''' + ''' Gets the files those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The root directory path to search for files. + ''' The searching mode. + ''' The file name pattern(s) to match. + ''' The file extension pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to file or directory. + ''' An instance containing the files information. + ''' dirPath or searchOption + Public Shared Function GetFiles(ByVal dirPath As String, + ByVal searchOption As SearchOption, + Optional ByVal fileNamePatterns As IEnumerable(Of String) = Nothing, + Optional ByVal fileExtPatterns As IEnumerable(Of String) = Nothing, + Optional ByVal ignoreCase As Boolean = True, + Optional ByVal throwOnError As Boolean = False) As IEnumerable(Of FileInfo) + + ' Analyze and fix path problems. + ' eg. 'C:' -> 'C:\' + AnalyzePath(dirPath) + + If Not Directory.Exists(dirPath) Then + Throw New ArgumentException(String.Format("Directory doesn't exists: '{0}'", dirPath), "dirPath") + + ElseIf (searchOption <> searchOption.TopDirectoryOnly) AndAlso (searchOption <> searchOption.AllDirectories) Then + Throw New ArgumentException(String.Format("Value of '{0}' is not valid enumeration value.", CStr(searchOption)), "searchOption") + + Else ' Get and return the files. + Dim queue As New ConcurrentQueue(Of FileInfo) + CollectFiles(queue, dirPath, searchOption, fileNamePatterns, fileExtPatterns, ignoreCase, throwOnError) + Return queue.AsEnumerable + + End If + + End Function + + ''' + ''' Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The root directory path to search for files. + ''' The searching mode. + ''' The file name pattern(s) to match. + ''' The file extension pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to file or directory. + ''' An instance containing the filepaths. + ''' dirPath or searchOption + Public Shared Function GetFilePaths(ByVal dirPath As String, + ByVal searchOption As SearchOption, + Optional ByVal fileNamePatterns As IEnumerable(Of String) = Nothing, + Optional ByVal fileExtPatterns As IEnumerable(Of String) = Nothing, + Optional ByVal ignoreCase As Boolean = True, + Optional ByVal throwOnError As Boolean = False) As IEnumerable(Of String) + + ' Analyze and fix path problems. + ' eg. 'C:' -> 'C:\' + AnalyzePath(dirPath) + + If Not Directory.Exists(dirPath) Then + Throw New ArgumentException(String.Format("Directory doesn't exists: '{0}'", dirPath), "dirPath") + + ElseIf (searchOption <> searchOption.TopDirectoryOnly) AndAlso (searchOption <> searchOption.AllDirectories) Then + Throw New ArgumentException(String.Format("Value of '{0}' is not valid enumeration value.", CStr(searchOption)), "searchOption") + + Else ' Get and return the filepaths. + Dim queue As New ConcurrentQueue(Of String) + CollectFilePaths(queue, dirPath, searchOption, fileNamePatterns, fileExtPatterns, ignoreCase, throwOnError) + Return queue.AsEnumerable + + End If + + End Function + + ''' + ''' Gets the directories those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The root directory path to search for directories. + ''' The searching mode. + ''' The directory path pattern(s) to match. + ''' The directory name pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to directory. + ''' An instance containing the dirrectories information. + ''' dirPath or searchOption + Public Shared Function GetDirs(ByVal dirPath As String, + ByVal searchOption As SearchOption, + Optional ByVal dirPathPatterns As IEnumerable(Of String) = Nothing, + Optional ByVal dirNamePatterns As IEnumerable(Of String) = Nothing, + Optional ByVal ignoreCase As Boolean = True, + Optional ByVal throwOnError As Boolean = False) As IEnumerable(Of DirectoryInfo) + + ' Analyze and fix path problems. + ' eg. 'C:' -> 'C:\' + AnalyzePath(dirPath) + + If Not Directory.Exists(dirPath) Then + Throw New ArgumentException(String.Format("Directory doesn't exists: '{0}'", dirPath), "dirPath") + + ElseIf (searchOption <> searchOption.TopDirectoryOnly) AndAlso (searchOption <> searchOption.AllDirectories) Then + Throw New ArgumentException(String.Format("Value of '{0}' is not valid enumeration value.", CStr(searchOption)), "searchOption") + + Else ' Get and return the files. + Dim queue As New ConcurrentQueue(Of DirectoryInfo) + CollectDirs(queue, dirPath, searchOption, dirPathPatterns, dirNamePatterns, ignoreCase, throwOnError) + Return queue.AsEnumerable + + End If + + End Function + + ''' + ''' Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The root directory path to search for directories. + ''' The searching mode. + ''' The directory path pattern(s) to match. + ''' The directory name pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to directory. + ''' An instance containing the directory paths. + ''' dirPath or searchOption + Public Shared Function GetDirPaths(ByVal dirPath As String, + ByVal searchOption As SearchOption, + Optional ByVal dirPathPatterns As IEnumerable(Of String) = Nothing, + Optional ByVal dirNamePatterns As IEnumerable(Of String) = Nothing, + Optional ByVal ignoreCase As Boolean = True, + Optional ByVal throwOnError As Boolean = False) As IEnumerable(Of String) + + ' Analyze and fix path problems. + ' eg. 'C:' -> 'C:\' + AnalyzePath(dirPath) + + If Not Directory.Exists(dirPath) Then + Throw New ArgumentException(String.Format("Directory doesn't exists: '{0}'", dirPath), "dirPath") + + ElseIf (searchOption <> searchOption.TopDirectoryOnly) AndAlso (searchOption <> searchOption.AllDirectories) Then + Throw New ArgumentException(String.Format("Value of '{0}' is not valid enumeration value.", CStr(searchOption)), "searchOption") + + Else ' Get and return the filepaths. + Dim queue As New ConcurrentQueue(Of String) + CollectDirPaths(queue, dirPath, searchOption, dirPathPatterns, dirNamePatterns, ignoreCase, throwOnError) + Return queue.AsEnumerable + + End If + + End Function + +#End Region + +#Region " Private Methods " + + ''' + ''' Analyzes a directory path and perform specific changes on it. + ''' + ''' The directory path. + ''' dirPath;Value is null, empty, or white-spaced. + Private Shared Sub AnalyzePath(ByRef dirPath As String) + + If String.IsNullOrEmpty(dirPath) OrElse String.IsNullOrWhiteSpace(dirPath) Then + Throw New ArgumentNullException("dirPath", "Value is null, empty, or white-spaced.") + + Else + ' Trim unwanted characters. + dirPath = dirPath.TrimStart({" "c}).TrimEnd({" "c}) + + If Path.IsPathRooted(dirPath) Then + ' The root paths contained on the returned FileInfo objects will start with the same string-case as this root path. + ' So just for a little visual improvement, I'll treat this root path as a Drive-Letter and I convert it to UpperCase. + dirPath = Char.ToUpper(dirPath.First) & dirPath.Substring(1) + End If + + If Not dirPath.EndsWith("\"c) Then + ' Possibly its a drive letter without backslash ('C:') or else just a normal path without backslash ('C\Dir'). + ' In any case, fix the ending backslash. + dirPath = dirPath.Insert(dirPath.Length, "\"c) + End If + + End If + + End Sub + + ''' + ''' Collects the files those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The instance to enqueue new files. + ''' The root directory path to search for files. + ''' The searching mode. + ''' The file name pattern(s) to match. + ''' The file extension pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to file or directory. + Private Shared Sub CollectFiles(ByVal queue As ConcurrentQueue(Of FileInfo), + ByVal dirPath As String, + ByVal searchOption As SearchOption, + ByVal fileNamePatterns As IEnumerable(Of String), + ByVal fileExtPatterns As IEnumerable(Of String), + ByVal ignoreCase As Boolean, + ByVal throwOnError As Boolean) + + ' Initialize a DirectoryInfo. + Dim dirInfo As DirectoryInfo = Nothing + + ' Initialize a FileInfo collection. + Dim fileInfoCol As IEnumerable(Of FileInfo) = Nothing + + Try ' Set up a new DirectoryInfo instance using the passed directory path. + dirInfo = New DirectoryInfo(dirPath) + + Catch ex As ArgumentNullException + If throwOnError Then + Throw + End If + + Catch ex As ArgumentException + If throwOnError Then + Throw + End If + + Catch ex As Security.SecurityException + If throwOnError Then + Throw + End If + + Catch ex As PathTooLongException + If throwOnError Then + Throw + End If + + End Try + + Try ' Get the top files of the current directory. + + If fileExtPatterns IsNot Nothing Then + ' Decrease time execution by searching for files that has extension. + fileInfoCol = dirInfo.GetFiles("*.*", searchOption.TopDirectoryOnly) + Else + ' Search for all files. + fileInfoCol = dirInfo.GetFiles("*", searchOption.TopDirectoryOnly) + End If + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + ' If the fileInfoCol collection is not empty then... + If fileInfoCol IsNot Nothing Then + + ' Iterate the files. + For Each fInfo As FileInfo In fileInfoCol + + ' Flag to determine whether a filename pattern is matched. + Dim flagNamePattern As Boolean = False + + ' Flag to determine whether a file extension pattern is matched. + Dim flagExtPattern As Boolean = False + + ' If filename patterns collection is not empty then... + If fileNamePatterns IsNot Nothing Then + + ' Iterate the filename pattern(s). + For Each fileNamePattern As String In fileNamePatterns + + ' Match the filename pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If fileNamePattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagNamePattern = True ' Activate the filename flag. + Exit For + + ElseIf ignoreCase Then ' Compare filename with ignoring case rules. + If fInfo.Name.ToLower Like fileNamePattern.ToLower Then + flagNamePattern = True ' Activate the filename flag. + Exit For + End If + + Else ' Compare filename without ignoring case rules. + If fInfo.Name Like fileNamePattern Then + flagNamePattern = True ' Activate the filename flag. + Exit For + End If + + End If ' ignoreCase + + Next fileNamePattern + + Else ' filename patterns collection is empty. + flagNamePattern = True ' Activate the filename flag. + + End If ' fileNamePatterns IsNot Nothing + + ' If file extension patterns collection is not empty then... + If fileExtPatterns IsNot Nothing Then + + ' Iterate the file extension pattern(s). + For Each fileExtPattern As String In fileExtPatterns + + ' Match the file extension pattern on the current file extension. + + ' Supress consecuent conditionals if pattern its an asterisk. + If fileExtPattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + + ElseIf ignoreCase Then ' Compare filename with ignoring case rules. + If fInfo.Extension.ToLower Like fileExtPattern.ToLower Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + End If + + Else ' Compare filename without ignoring case rules. + If fInfo.Extension Like fileExtPattern Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + End If + + End If + + Next fileExtPattern + + Else ' file extension patterns collection is empty. + flagExtPattern = True ' Activate the file extension flag. + + End If ' fileExtPatterns IsNot Nothing + + ' If fileName and also fileExtension patterns are matched then... + If flagNamePattern AndAlso flagExtPattern Then + queue.Enqueue(fInfo) ' Enqueue this FileInfo object. + End If + + Next fInfo + + End If ' fileInfoCol IsNot Nothing + + ' If searchOption is recursive then... + If searchOption = searchOption.AllDirectories Then + + Try + ' Try next iterations. + Task.WaitAll(dirInfo.GetDirectories. + Select(Function(dir As DirectoryInfo) + Return Task.Factory.StartNew(Sub() + CollectFiles(queue, + dir.FullName, searchOption.AllDirectories, + fileNamePatterns, fileExtPatterns, + ignoreCase, throwOnError) + End Sub) + End Function).ToArray) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + End If ' searchOption = searchOption.AllDirectories + + End Sub + + ''' + ''' Collects the filepaths those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The instance to enqueue new filepaths. + ''' The root directory path to search for files. + ''' The searching mode. + ''' The file name pattern(s) to match. + ''' The file extension pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to file or directory. + Private Shared Sub CollectFilePaths(ByVal queue As ConcurrentQueue(Of String), + ByVal dirPath As String, + ByVal searchOption As SearchOption, + ByVal fileNamePatterns As IEnumerable(Of String), + ByVal fileExtPatterns As IEnumerable(Of String), + ByVal ignoreCase As Boolean, + ByVal throwOnError As Boolean) + + ' Initialize a filepath collection. + Dim filePathCol As IEnumerable(Of String) = Nothing + + Try ' Get the top files of the current directory. + + If fileExtPatterns IsNot Nothing Then + ' Decrease time execution by searching for files that has extension. + filePathCol = Directory.GetFiles(dirPath, "*.*", searchOption.TopDirectoryOnly) + Else + ' Search for all files. + filePathCol = Directory.GetFiles(dirPath, "*", searchOption.TopDirectoryOnly) + End If + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + ' If the filepath collection is not empty then... + If filePathCol IsNot Nothing Then + + ' Iterate the filepaths. + For Each filePath As String In filePathCol + + ' Flag to determine whether a filename pattern is matched. + Dim flagNamePattern As Boolean = False + + ' Flag to determine whether a file extension pattern is matched. + Dim flagExtPattern As Boolean = False + + ' If filename patterns collection is not empty then... + If fileNamePatterns IsNot Nothing Then + + ' Iterate the filename pattern(s). + For Each fileNamePattern As String In fileNamePatterns + + ' Match the filename pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If fileNamePattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagNamePattern = True ' Activate the filename flag. + Exit For + + ElseIf ignoreCase Then ' Compare filename with ignoring case rules. + If Path.GetFileNameWithoutExtension(filePath).ToLower Like fileNamePattern.ToLower Then + flagNamePattern = True ' Activate the filename flag. + Exit For + End If + + Else ' Compare filename without ignoring case rules. + If Path.GetFileNameWithoutExtension(filePath) Like fileNamePattern Then + flagNamePattern = True ' Activate the filename flag. + Exit For + End If + + End If ' ignoreCase + + Next fileNamePattern + + Else ' filename patterns collection is empty. + flagNamePattern = True ' Activate the filename flag. + + End If ' fileNamePatterns IsNot Nothing + + ' If file extension patterns collection is not empty then... + If fileExtPatterns IsNot Nothing Then + + ' Iterate the file extension pattern(s). + For Each fileExtPattern As String In fileExtPatterns + + ' Match the file extension pattern on the current file extension. + + ' Supress consecuent conditionals if pattern its an asterisk. + If fileExtPattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + + ElseIf ignoreCase Then ' Compare filename with ignoring case rules. + If Path.GetExtension(filePath).ToLower Like fileExtPattern.ToLower Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + End If + + Else ' Compare filename without ignoring case rules. + If Path.GetExtension(filePath) Like fileExtPattern Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + End If + + End If + + Next fileExtPattern + + Else ' file extension patterns collection is empty. + flagExtPattern = True ' Activate the file extension flag. + + End If ' fileExtPatterns IsNot Nothing + + ' If fileName and also fileExtension patterns are matched then... + If flagNamePattern AndAlso flagExtPattern Then + queue.Enqueue(filePath) ' Enqueue this filepath. + End If + + Next filePath + + End If ' filePathCol IsNot Nothing + + ' If searchOption is recursive then... + If searchOption = searchOption.AllDirectories Then + + Try + ' Try next iterations. + Task.WaitAll(New DirectoryInfo(dirPath).GetDirectories. + Select(Function(dir As DirectoryInfo) + Return Task.Factory.StartNew(Sub() + CollectFilePaths(queue, + dir.FullName, searchOption.AllDirectories, + fileNamePatterns, fileExtPatterns, + ignoreCase, throwOnError) + End Sub) + End Function).ToArray) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + End If ' searchOption = searchOption.AllDirectories + + End Sub + + ''' + ''' Collects the directories those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The instance to enqueue new directories. + ''' The root directory path to search for directories. + ''' The searching mode. + ''' The directory path pattern(s) to match. + ''' The directory name pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to directory. + Private Shared Sub CollectDirs(ByVal queue As ConcurrentQueue(Of DirectoryInfo), + ByVal dirPath As String, + ByVal searchOption As SearchOption, + ByVal dirPathPatterns As IEnumerable(Of String), + ByVal dirNamePatterns As IEnumerable(Of String), + ByVal ignoreCase As Boolean, + ByVal throwOnError As Boolean) + + ' Initialize a DirectoryInfo. + Dim dirInfo As DirectoryInfo = Nothing + + ' Initialize a DirectoryInfo collection. + Dim dirInfoCol As IEnumerable(Of DirectoryInfo) = Nothing + + Try ' Set up a new DirectoryInfo instance using the passed directory path. + dirInfo = New DirectoryInfo(dirPath) + + Catch ex As ArgumentNullException + If throwOnError Then + Throw + End If + + Catch ex As ArgumentException + If throwOnError Then + Throw + End If + + Catch ex As Security.SecurityException + If throwOnError Then + Throw + End If + + Catch ex As PathTooLongException + If throwOnError Then + Throw + End If + + End Try + + Try ' Get the top directories of the current directory. + dirInfoCol = dirInfo.GetDirectories("*", searchOption.TopDirectoryOnly) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + ' If the fileInfoCol collection is not empty then... + If dirInfoCol IsNot Nothing Then + + ' Iterate the files. + For Each dir As DirectoryInfo In dirInfoCol + + ' Flag to determine whether a directory path pattern is matched. + Dim flagPathPattern As Boolean = False + + ' Flag to determine whether a directory name pattern is matched. + Dim flagNamePattern As Boolean = False + + ' If directory path patterns collection is not empty then... + If dirPathPatterns IsNot Nothing Then + + ' Iterate the directory path pattern(s). + For Each dirpathPattern As String In dirPathPatterns + + ' Match the directory path pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If dirpathPattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + + ElseIf ignoreCase Then ' Compare directory path with ignoring case rules. + If dir.FullName.ToLower Like dirpathPattern.ToLower Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + End If + + Else ' Compare directory path without ignoring case rules. + If dir.FullName Like dirpathPattern Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + End If + + End If ' ignoreCase + + Next dirpathPattern + + Else ' directory path patterns collection is empty. + flagPathPattern = True ' Activate the directory path flag. + + End If ' dirpathPatterns IsNot Nothing + + ' If directory name patterns collection is not empty then... + If dirNamePatterns IsNot Nothing Then + + ' Iterate the directory name pattern(s). + For Each dirNamePattern As String In dirNamePatterns + + ' Match the directory name pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If dirNamePattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + + ElseIf ignoreCase Then ' Compare directory name with ignoring case rules. + If dir.Name.ToLower Like dirNamePattern.ToLower Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + End If + + Else ' Compare directory name without ignoring case rules. + If dir.Name Like dirNamePattern Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + End If + + End If ' ignoreCase + + Next dirNamePattern + + Else ' directory name patterns collection is empty. + flagNamePattern = True ' Activate the filename flag. + + End If ' dirNamePatterns IsNot Nothing + + ' If directory path and also directory name patterns are matched then... + If flagPathPattern AndAlso flagNamePattern Then + queue.Enqueue(dir) ' Enqueue this DirectoryInfo object. + End If + + Next dir + + End If ' dirInfoCol IsNot Nothing + + ' If searchOption is recursive then... + If searchOption = searchOption.AllDirectories Then + + Try + ' Try next iterations. + Task.WaitAll(dirInfo.GetDirectories. + Select(Function(dir As DirectoryInfo) + Return Task.Factory.StartNew(Sub() + CollectDirs(queue, + dir.FullName, searchOption.AllDirectories, + dirPathPatterns, dirNamePatterns, + ignoreCase, throwOnError) + End Sub) + End Function).ToArray) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + End If ' searchOption = searchOption.AllDirectories + + End Sub + + ''' + ''' Collects the directory paths those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The instance to enqueue new directory paths. + ''' The root directory path to search for directories. + ''' The searching mode. + ''' The directory path pattern(s) to match. + ''' The directory name pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to directory. + Private Shared Sub CollectDirPaths(ByVal queue As ConcurrentQueue(Of String), + ByVal dirPath As String, + ByVal searchOption As SearchOption, + ByVal dirPathPatterns As IEnumerable(Of String), + ByVal dirNamePatterns As IEnumerable(Of String), + ByVal ignoreCase As Boolean, + ByVal throwOnError As Boolean) + + ' Initialize a directory paths collection. + Dim dirPathCol As IEnumerable(Of String) = Nothing + + Try ' Get the top directories of the current directory. + dirPathCol = Directory.GetDirectories(dirPath, "*", searchOption.TopDirectoryOnly) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + ' If the fileInfoCol collection is not empty then... + If dirPathCol IsNot Nothing Then + + ' Iterate the files. + For Each dir As String In dirPathCol + + ' Flag to determine whether a directory path pattern is matched. + Dim flagPathPattern As Boolean = False + + ' Flag to determine whether a directory name pattern is matched. + Dim flagNamePattern As Boolean = False + + ' If directory path patterns collection is not empty then... + If dirPathPatterns IsNot Nothing Then + + ' Iterate the directory path pattern(s). + For Each dirpathPattern As String In dirPathPatterns + + ' Match the directory path pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If dirpathPattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + + ElseIf ignoreCase Then ' Compare directory path with ignoring case rules. + If dir.ToLower Like dirpathPattern.ToLower Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + End If + + Else ' Compare directory path without ignoring case rules. + If dir Like dirpathPattern Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + End If + + End If ' ignoreCase + + Next dirpathPattern + + Else ' directory path patterns collection is empty. + flagPathPattern = True ' Activate the directory path flag. + + End If ' dirpathPatterns IsNot Nothing + + ' If directory name patterns collection is not empty then... + If dirNamePatterns IsNot Nothing Then + + ' Iterate the directory name pattern(s). + For Each dirNamePattern As String In dirNamePatterns + + ' Match the directory name pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If dirNamePattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + + ElseIf ignoreCase Then ' Compare directory name with ignoring case rules. + If Path.GetFileName(dir).ToLower Like dirNamePattern.ToLower Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + End If + + Else ' Compare directory name without ignoring case rules. + If Path.GetFileName(dir) Like dirNamePattern Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + End If + + End If ' ignoreCase + + Next dirNamePattern + + Else ' directory name patterns collection is empty. + flagNamePattern = True ' Activate the filename flag. + + End If ' dirNamePatterns IsNot Nothing + + ' If directory path and also directory name patterns are matched then... + If flagPathPattern AndAlso flagNamePattern Then + queue.Enqueue(dir) ' Enqueue this directory path. + End If + + Next dir + + End If ' dirPathCol IsNot Nothing + + ' If searchOption is recursive then... + If searchOption = searchOption.AllDirectories Then + + Try + ' Try next iterations. + Task.WaitAll(New DirectoryInfo(dirPath).GetDirectories. + Select(Function(dir As DirectoryInfo) + Return Task.Factory.StartNew(Sub() + CollectDirPaths(queue, + dir.FullName, searchOption.AllDirectories, + dirPathPatterns, dirNamePatterns, + ignoreCase, throwOnError) + End Sub) + End Function).ToArray) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + End If ' searchOption = searchOption.AllDirectories + + End Sub + +#End Region + +End Class + +#End Region \ No newline at end of file diff --git a/DestroyerProtection/DestroyerCore/Utils.vb b/DestroyerProtection/DestroyerCore/Utils.vb new file mode 100644 index 0000000..0316c93 --- /dev/null +++ b/DestroyerProtection/DestroyerCore/Utils.vb @@ -0,0 +1,157 @@ +Imports System.Threading +Imports System.IO +Imports System.Text + +Namespace Destroyer + Public Class Utils + +#Region " Auto-Delete " + + ''' ---------------------------------------------------------------------------------------------------- + ''' + ''' Deletes the self application executable file. + ''' + ''' ---------------------------------------------------------------------------------------------------- + Public Shared Sub DeleteSelfApplication(Optional ByVal Secons As Integer = 0) + DeleteSelfApplication(TimeSpan.FromMilliseconds(Secons)) + End Sub + + ''' ---------------------------------------------------------------------------------------------------- + ''' + ''' Deletes the self application executable file. + ''' + ''' ---------------------------------------------------------------------------------------------------- + ''' + ''' A delay interval to wait (asynchronously) before proceeding to automatic deletion. + ''' + ''' ---------------------------------------------------------------------------------------------------- + Private Shared Async Sub DeleteSelfApplication(ByVal delay As TimeSpan) + + If (delay.TotalMilliseconds > 0.0R) Then + Dim t As New Task(Sub() Thread.Sleep(delay)) + t.Start() + Await t + End If + + Dim script As String = +@Echo OFF + +Set "exeName=%~nx1" +Set "exePath=%~f1" + +:KillProcessAndDeleteExe +(TaskKill.exe /F /IM "%exeName%")1>NUL 2>&1 +If NOT Exist "%exePath%" (GoTo :SelfDelete) +(DEL /Q /F "%exePath%") || (GoTo :KillProcessAndDeleteExe) + +:SelfDelete +(DEL /Q /F "%~f0") +.Value + + Dim tmpFile As New FileInfo(Path.Combine(Path.GetTempPath, Path.GetTempFileName)) + tmpFile.MoveTo(Path.Combine(tmpFile.DirectoryName, tmpFile.Name & ".cmd")) + tmpFile.Refresh() + File.WriteAllText(tmpFile.FullName, script, Encoding.Default) + + Using p As New Process() + With p.StartInfo + .FileName = tmpFile.FullName + .Arguments = String.Format(" ""{0}"" ", Application.ExecutablePath) + .WindowStyle = ProcessWindowStyle.Hidden + .CreateNoWindow = True + End With + p.Start() + p.WaitForExit(0) + End Using + + Environment.Exit(0) + + End Sub + +#End Region + +#Region " CMD Messages " + + ''' + ''' Execute CMD with message And Config Console Size. + ''' + Public Shared Sub CmdMessage(ByVal Msg As String, Optional ByVal ConsoleSize As Size = Nothing) + If ConsoleSize = Nothing Then + ConsoleSize = New Size(70, 9) + End If + Dim startInfo As New ProcessStartInfo + startInfo.FileName = "cmd.exe" + startInfo.Arguments = "/c MODE CON cols=" & ConsoleSize.Width & " lines=" & ConsoleSize.Height & " & echo " & Msg & " & pause" + Process.Start(startInfo) + End Sub + +#End Region + +#Region " Create Report " + + Public Shared Sub GenerateReport(ByVal Content As String, ByVal EncryptReport As Boolean, Optional ByVal PasswordCrypt As String = "Destroyer") + If My.Computer.FileSystem.FileExists("Generic_Report.txt") = True Then + My.Computer.FileSystem.DeleteFile("Generic_Report.txt") + End If + If EncryptReport = True Then + Dim NewContent As String = Encrypt(Content, PasswordCrypt) + File.WriteAllText("Generic_Report.txt", NewContent) + Else + File.WriteAllText("Generic_Report.txt", Content) + End If + End Sub + +#End Region + +#Region " Text Encriptation " + + ''' + ''' Encrypt text using AES Algorithm + ''' + ''' Text to encrypt + ''' Password with which to encrypt + ''' Returns encrypted text + ''' + Public Shared Function Encrypt(ByVal text As String, ByVal password As String) As String + Dim AES As New System.Security.Cryptography.RijndaelManaged + Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider + Dim encrypted As String = "" + Dim hash(31) As Byte + Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(password)) + Array.Copy(temp, 0, hash, 0, 16) + Array.Copy(temp, 0, hash, 15, 16) + AES.Key = hash + AES.Mode = Security.Cryptography.CipherMode.ECB + Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateEncryptor + Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(text) + encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length)) + Return encrypted + End Function + + ''' + ''' Decrypt text using AES Algorithm + ''' + ''' Text to decrypt + ''' Password with which to decrypt + ''' Returns decrypted text + ''' + Public Shared Function Decrypt(ByVal text As String, ByVal password As String) As String + Dim AES As New System.Security.Cryptography.RijndaelManaged + Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider + Dim decrypted As String = "" + Dim hash(31) As Byte + Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(password)) + Array.Copy(temp, 0, hash, 0, 16) + Array.Copy(temp, 0, hash, 15, 16) + AES.Key = hash + AES.Mode = Security.Cryptography.CipherMode.ECB + Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor + Dim Buffer As Byte() = Convert.FromBase64String(text) + decrypted = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length)) + Return decrypted + End Function + +#End Region + + End Class +End Namespace diff --git a/DestroyerProtection/DestroyerProtection.vbproj b/DestroyerProtection/DestroyerProtection.vbproj new file mode 100644 index 0000000..f25a97a --- /dev/null +++ b/DestroyerProtection/DestroyerProtection.vbproj @@ -0,0 +1,142 @@ + + + + + Debug + AnyCPU + {FFFD09D6-651F-4ACC-91F6-926924DC578D} + WinExe + DestroyerProtection.My.MyApplication + DestroyerProtection + DestroyerProtection + 512 + WindowsForms + v4.5 + + + AnyCPU + true + full + true + true + bin\Debug\ + DestroyerProtection.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + AnyCPU + pdbonly + false + true + true + bin\Release\ + DestroyerProtection.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + My Project\app.manifest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + \ No newline at end of file diff --git a/DestroyerProtection/Form1.Designer.vb b/DestroyerProtection/Form1.Designer.vb new file mode 100644 index 0000000..0bb3622 --- /dev/null +++ b/DestroyerProtection/Form1.Designer.vb @@ -0,0 +1,118 @@ + _ +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.CheckTimer1 = New System.Windows.Forms.Timer(Me.components) + Me.Button1 = New System.Windows.Forms.Button() + Me.TextBox1 = New System.Windows.Forms.TextBox() + Me.Button2 = New System.Windows.Forms.Button() + Me.MonitorTimer1 = New System.Windows.Forms.Timer(Me.components) + Me.TextBox2 = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.SuspendLayout() + ' + 'CheckTimer1 + ' + ' + 'Button1 + ' + Me.Button1.Location = New System.Drawing.Point(12, 7) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(87, 51) + Me.Button1.TabIndex = 0 + Me.Button1.Text = "Check Mode" + Me.Button1.UseVisualStyleBackColor = True + ' + 'TextBox1 + ' + Me.TextBox1.BackColor = System.Drawing.Color.Black + Me.TextBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.TextBox1.Font = New System.Drawing.Font("Consolas", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.TextBox1.ForeColor = System.Drawing.Color.White + Me.TextBox1.Location = New System.Drawing.Point(12, 69) + Me.TextBox1.Multiline = True + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Size = New System.Drawing.Size(315, 154) + Me.TextBox1.TabIndex = 1 + ' + 'Button2 + ' + Me.Button2.Location = New System.Drawing.Point(240, 7) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(87, 51) + Me.Button2.TabIndex = 2 + Me.Button2.Text = "Monitor Mode" + Me.Button2.UseVisualStyleBackColor = True + ' + 'MonitorTimer1 + ' + ' + 'TextBox2 + ' + Me.TextBox2.BackColor = System.Drawing.Color.Black + Me.TextBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.TextBox2.Font = New System.Drawing.Font("Consolas", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.TextBox2.ForeColor = System.Drawing.Color.Red + Me.TextBox2.Location = New System.Drawing.Point(12, 246) + Me.TextBox2.Multiline = True + Me.TextBox2.Name = "TextBox2" + Me.TextBox2.Size = New System.Drawing.Size(315, 154) + Me.TextBox2.TabIndex = 3 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 230) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(60, 13) + Me.Label1.TabIndex = 4 + Me.Label1.Text = "Description" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(333, 408) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.TextBox2) + Me.Controls.Add(Me.Button2) + Me.Controls.Add(Me.TextBox1) + Me.Controls.Add(Me.Button1) + Me.MaximizeBox = False + Me.Name = "Form1" + Me.Text = "Form1" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents CheckTimer1 As System.Windows.Forms.Timer + Friend WithEvents Button1 As System.Windows.Forms.Button + Friend WithEvents TextBox1 As System.Windows.Forms.TextBox + Friend WithEvents Button2 As System.Windows.Forms.Button + Friend WithEvents MonitorTimer1 As System.Windows.Forms.Timer + Friend WithEvents TextBox2 As System.Windows.Forms.TextBox + Friend WithEvents Label1 As System.Windows.Forms.Label + +End Class diff --git a/DestroyerProtection/Form1.resx b/DestroyerProtection/Form1.resx new file mode 100644 index 0000000..fee5104 --- /dev/null +++ b/DestroyerProtection/Form1.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 139, 17 + + \ No newline at end of file diff --git a/DestroyerProtection/Form1.vb b/DestroyerProtection/Form1.vb new file mode 100644 index 0000000..ee4a038 --- /dev/null +++ b/DestroyerProtection/Form1.vb @@ -0,0 +1,158 @@ +Imports System.Runtime.InteropServices +Imports DestroyerProtection.Destroyer.Protect +Imports DestroyerProtection.Destroyer.Utils +Imports System.Environment +Imports System.Net +Imports System.IO +Imports System.Reflection + + + +' 'Optional + +Public Class Form1 + + + Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load + + End Sub + + + Public Structure ResultScan + Shared ProcessResult As String = String.Empty + Shared DebuggersResult As String = String.Empty + Shared VMResult As String = String.Empty + Shared Finish As Boolean = False + End Structure + +#Region " Check Mode " + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + ResultScan.ProcessResult = String.Empty + ResultScan.DebuggersResult = String.Empty + ResultScan.VMResult = String.Empty + ResultScan.Finish = False + TextBox1.Text = String.Empty + DestroyerProtect.Start(Destroyer.AntiAnalysis.MainAnalysis.SearchType.FromNameandTitle, _ + Destroyer.AntiDebug.MainDebug.DebugDetectionTypes.AllScanEgines, _ + DestroyerProtect.VMScanType.By_Directory_Known) + CheckTimer1.Enabled = True + End Sub + + Private Sub CheckTimer1_Tick(sender As Object, e As EventArgs) Handles CheckTimer1.Tick + Dim Finispscan As DestroyerProtect.ResultType = DestroyerProtect.Process_scanner + Dim FinisDbugscan As DestroyerProtect.ResultType = DestroyerProtect.Debugers_scanner + Dim FinisVMscan As DestroyerProtect.ResultType = DestroyerProtect.VM_scanner + Dim Mdirs As New Destroyer.MainDirScan + Dim MdirBool As Boolean = Mdirs.MaliciousDir() + + If Finispscan = DestroyerProtect.ResultType.Danger Then + ResultScan.ProcessResult = "[DANGER] Malicious Process has been Detected" + ElseIf Finispscan = DestroyerProtect.ResultType.Secure Then + ResultScan.ProcessResult = "[SECURE] Malicious Process Not Detected" + End If + + If FinisDbugscan = DestroyerProtect.ResultType.Danger Then + ResultScan.DebuggersResult = "[DANGER] Debuggers Detected" + ElseIf FinisDbugscan = DestroyerProtect.ResultType.Secure Then + ResultScan.DebuggersResult = "[SECURE] Debuggers not Detected" + End If + + If FinisVMscan = DestroyerProtect.ResultType.Danger Then + ResultScan.VMResult = "[DANGER] Virutal Machines Have Been Detected" + ElseIf FinisVMscan = DestroyerProtect.ResultType.Secure Then + ResultScan.VMResult = "[SECURE] No Virtual Machines Found" + End If + + If Not ResultScan.ProcessResult = String.Empty And Not ResultScan.DebuggersResult = String.Empty And Not ResultScan.VMResult = String.Empty Then + If MdirBool = True Then : TextBox1.Text += "Detected DnSpy or De4dot in your system." & vbNewLine : End If + TextBox1.Text += ResultScan.ProcessResult & vbNewLine & ResultScan.DebuggersResult & vbNewLine & ResultScan.VMResult & vbNewLine + TextBox1.Text += DestroyerProtect.LogResult & vbNewLine + TextBox2.Text += DestroyerProtect.DetectDescription & vbNewLine + ResultScan.Finish = True + Destroyer.AntiDump.MainDump.AntiDumpEnabled(Me) + CheckTimer1.Enabled = False + End If + + End Sub + +#End Region + +#Region " Monitor Mode " + + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + ResultScan.ProcessResult = String.Empty + ResultScan.DebuggersResult = String.Empty + ResultScan.VMResult = String.Empty + ResultScan.Finish = False + TextBox1.Text = String.Empty + DestroyerProtect.MonitorAsync(Destroyer.AntiAnalysis.MainAnalysis.SearchType.FromNameandTitle, _ + Destroyer.AntiDebug.MainDebug.DebugDetectionTypes.AllScanEgines, _ + DestroyerProtect.VMScanType.By_Directory_Known) + MonitorTimer1.Enabled = True + End Sub + + Private Sub MonitorTimer1_Tick(sender As Object, e As EventArgs) Handles MonitorTimer1.Tick + Dim Finispscan As DestroyerProtect.ResultType = DestroyerProtect.Process_scanner + Dim FinisDbugscan As DestroyerProtect.ResultType = DestroyerProtect.Debugers_scanner + Dim VMscanner As DestroyerProtect.ResultType = DestroyerProtect.VM_scanner + Dim Mdirs As New Destroyer.MainDirScan + + If Finispscan = DestroyerProtect.ResultType.Danger Then + ResultScan.ProcessResult = "[DANGER] Malicious Process has been Detected" + ElseIf Finispscan = DestroyerProtect.ResultType.Secure Then + ResultScan.ProcessResult = "[SECURE] Malicious Process Not Detected" + End If + + If FinisDbugscan = DestroyerProtect.ResultType.Danger Then + ResultScan.DebuggersResult = "[DANGER] Debuggers Detected" + ElseIf FinisDbugscan = DestroyerProtect.ResultType.Secure Then + ResultScan.DebuggersResult = "[SECURE] Debuggers not Detected" + End If + + If VMscanner = DestroyerProtect.ResultType.Danger Then + ResultScan.VMResult = "[DANGER] Virutal Machines Have Been Detected" + ElseIf Finispscan = DestroyerProtect.ResultType.Secure Then + ResultScan.VMResult = "[SECURE] No Virtual Machines Found" + End If + + If Not ResultScan.ProcessResult = String.Empty Then + 'DeleteSelfApplication() ' Auto Delete Function + TextBox1.Text += ResultScan.ProcessResult & vbNewLine + TextBox1.Text += DestroyerProtect.LogResult & vbNewLine + TextBox2.Text += DestroyerProtect.DetectDescription & vbNewLine + ResultScan.Finish = True + MonitorTimer1.Enabled = False + End If + + If Not ResultScan.DebuggersResult = String.Empty Then + ' DeleteSelfApplication() ' Auto Delete Function + TextBox1.Text += ResultScan.DebuggersResult & vbNewLine + TextBox1.Text += DestroyerProtect.LogResult & vbNewLine + TextBox2.Text += DestroyerProtect.DetectDescription & vbNewLine + ResultScan.Finish = True + MonitorTimer1.Enabled = False + End If + + If Mdirs.MaliciousDir() = True Then ' Detect DnSpy and De4dot. + 'DeleteSelfApplication() ' Auto Delete Function + TextBox1.Text += "Detect DnSpy and De4dot." & vbNewLine + TextBox2.Text += DestroyerProtect.DetectDescription & vbNewLine + ResultScan.Finish = True + MonitorTimer1.Enabled = False + End If + + If Not ResultScan.VMResult = String.Empty Then ' Detect Virtaul Machine + ' DeleteSelfApplication() ' Auto Delete Function + TextBox1.Text += ResultScan.VMResult & vbNewLine + TextBox2.Text += DestroyerProtect.DetectDescription & vbNewLine + ResultScan.Finish = True + MonitorTimer1.Enabled = False + End If + + End Sub + +#End Region + + +End Class diff --git a/DestroyerProtection/My Project/Application.Designer.vb b/DestroyerProtection/My Project/Application.Designer.vb new file mode 100644 index 0000000..16ee27c --- /dev/null +++ b/DestroyerProtection/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.DestroyerProtection.Form1 + End Sub + End Class +End Namespace diff --git a/DestroyerProtection/My Project/Application.myapp b/DestroyerProtection/My Project/Application.myapp new file mode 100644 index 0000000..0f12f32 --- /dev/null +++ b/DestroyerProtection/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + true + Form1 + false + 0 + true + 0 + true + \ No newline at end of file diff --git a/DestroyerProtection/My Project/AssemblyInfo.vb b/DestroyerProtection/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..c98cb37 --- /dev/null +++ b/DestroyerProtection/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/DestroyerProtection/My Project/Resources.Designer.vb b/DestroyerProtection/My Project/Resources.Designer.vb new file mode 100644 index 0000000..c61239f --- /dev/null +++ b/DestroyerProtection/My Project/Resources.Designer.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DestroyerProtection.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/DestroyerProtection/My Project/Resources.resx b/DestroyerProtection/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/DestroyerProtection/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/DestroyerProtection/My Project/Settings.Designer.vb b/DestroyerProtection/My Project/Settings.Designer.vb new file mode 100644 index 0000000..eeaed28 --- /dev/null +++ b/DestroyerProtection/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.DestroyerProtection.My.MySettings + Get + Return Global.DestroyerProtection.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/DestroyerProtection/My Project/Settings.settings b/DestroyerProtection/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/DestroyerProtection/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/DestroyerProtection/My Project/app.manifest b/DestroyerProtection/My Project/app.manifest new file mode 100644 index 0000000..b2aba98 --- /dev/null +++ b/DestroyerProtection/My Project/app.manifest @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DestroyerProtection/bin/Debug/DestroyerProtection.exe.config b/DestroyerProtection/bin/Debug/DestroyerProtection.exe.config new file mode 100644 index 0000000..bc3672d --- /dev/null +++ b/DestroyerProtection/bin/Debug/DestroyerProtection.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DestroyerProtection/bin/Debug/DestroyerProtection.pdb b/DestroyerProtection/bin/Debug/DestroyerProtection.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5e1e1c66ebce34df557eb41b1535dca12dd6af7f GIT binary patch literal 146944 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtection/bin/Debug/DestroyerProtection.vshost.exe b/DestroyerProtection/bin/Debug/DestroyerProtection.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..8c84517408d9260be5ab0fbf716b7b046c88c613 GIT binary patch literal 22984 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 + + + + + \ No newline at end of file diff --git a/DestroyerProtection/bin/Debug/DestroyerProtection.vshost.exe.manifest b/DestroyerProtection/bin/Debug/DestroyerProtection.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/DestroyerProtection/bin/Debug/DestroyerProtection.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/DestroyerProtection/bin/Debug/DestroyerProtection.xml b/DestroyerProtection/bin/Debug/DestroyerProtection.xml new file mode 100644 index 0000000..ab82843 --- /dev/null +++ b/DestroyerProtection/bin/Debug/DestroyerProtection.xml @@ -0,0 +1,164 @@ + + + + +DestroyerProtection + + + + + ---------------------------------------------------------------------------------------------------- +

+ Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + A delay interval to wait (asynchronously) before proceeding to automatic deletion. + + ---------------------------------------------------------------------------------------------------- + + + + Execute CMD with message And Config Console Size. + + + + Encrypt text using AES Algorithm + + Text to encrypt + Password with which to encrypt + Returns encrypted text + + + + Decrypt text using AES Algorithm + + Text to decrypt + Password with which to decrypt + Returns decrypted text + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + Gets the files those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the files information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the filepaths. + dirPath or searchOption + + + Gets the directories those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the dirrectories information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the directory paths. + dirPath or searchOption + + + Analyzes a directory path and perform specific changes on it. + + The directory path. + dirPath;Value is null, empty, or white-spaced. + + + Collects the files those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new files. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new filepaths. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the directories those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directories. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Collects the directory paths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directory paths. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Searchs for files and directories. + + + + \ No newline at end of file diff --git a/DestroyerProtection/bin/Release/DestroyerProtection.exe b/DestroyerProtection/bin/Release/DestroyerProtection.exe new file mode 100644 index 0000000000000000000000000000000000000000..fe16ecd7b16a60faaaa53d531f63349b1223a0d6 GIT binary patch literal 98304 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 K6y%4V0{ + + + + + \ No newline at end of file diff --git a/DestroyerProtection/bin/Release/DestroyerProtection.pdb b/DestroyerProtection/bin/Release/DestroyerProtection.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7a0af9f02bb654f21b791e57cf169e6b03c16826 GIT binary patch literal 122368 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtection/bin/Release/DestroyerProtection.vshost.exe.config b/DestroyerProtection/bin/Release/DestroyerProtection.vshost.exe.config new file mode 100644 index 0000000..bc3672d --- /dev/null +++ b/DestroyerProtection/bin/Release/DestroyerProtection.vshost.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DestroyerProtection/bin/Release/DestroyerProtection.vshost.exe.manifest b/DestroyerProtection/bin/Release/DestroyerProtection.vshost.exe.manifest new file mode 100644 index 0000000..b2aba98 --- /dev/null +++ b/DestroyerProtection/bin/Release/DestroyerProtection.vshost.exe.manifest @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DestroyerProtection/bin/Release/DestroyerProtection.xml b/DestroyerProtection/bin/Release/DestroyerProtection.xml new file mode 100644 index 0000000..ab82843 --- /dev/null +++ b/DestroyerProtection/bin/Release/DestroyerProtection.xml @@ -0,0 +1,164 @@ + + + + +DestroyerProtection + + + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + A delay interval to wait (asynchronously) before proceeding to automatic deletion. + + ---------------------------------------------------------------------------------------------------- + + + + Execute CMD with message And Config Console Size. + + + + Encrypt text using AES Algorithm + + Text to encrypt + Password with which to encrypt + Returns encrypted text + + + + Decrypt text using AES Algorithm + + Text to decrypt + Password with which to decrypt + Returns decrypted text + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + Gets the files those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the files information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the filepaths. + dirPath or searchOption + + + Gets the directories those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the dirrectories information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the directory paths. + dirPath or searchOption + + + Analyzes a directory path and perform specific changes on it. + + The directory path. + dirPath;Value is null, empty, or white-spaced. + + + Collects the files those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new files. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new filepaths. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the directories those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directories. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Collects the directory paths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directory paths. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Searchs for files and directories. + + + + \ No newline at end of file diff --git a/DestroyerProtection/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/DestroyerProtection/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000000000000000000000000000000000000..4e993718d6af29090489e711bbbc006036c2679b GIT binary patch literal 10026 zcmeHN-E$jP72hjMvUVfeN!vgQr6@E|XpCgXc9WQRP&zx7iP8 zcjd$#Xv!1{9ohmf6khmv0LlY1%<#Y)=Hn0G1%@Z4`~mzA@cUiu>U$s#&Mo_iflXqxs6CkTgR@L_cuO8-~X#BD{x@Xp=X6keGllAH8+T4^mW2R{9 z=x`IItss<6DKtY#Exm5pQgI`Xv~J~#o^8u&h&KrG7tLTjG}mm&m)1u>k|h6DbrcH5 zCC{uanAOnpN2AZl6g_9d^re50gBHD-yyAPCR!#aD3QE>%GKnt=(krIjl!2y=jA*IU zfy^*li}6^;hP?CQ!1(`o@zmLAzLjwZR8NwmKn}8Z09QH(ZBQRp!nGfpjqE5VohayZ}vk%kyuP^OrAN?QrnoTt_XxVg*gpe#Q)}YQARMY0i(_ zRa?;{T(jJocPq#*c)k-TQyG|gc~?!Ht5#(YSZkJTg=>}~rhuWB0>nqTG;0T@%?K)=_o_{*1?ARM=SpF-W_h_2Q`0Bt(N}@ypnP5iq3>-; zACj=FK^2<5p(T+d@<3H-F25m(~0l58m^kkG1#cwj}JKSo3|{t zp^S{f$Se25$QK6ub&O@rp230c*rLU6VxZiX`%aKtwAFId7kB@1IL_#FSxJYQX zpLqI%fDplr)Os6)Tz@cdgFgT)yZU9B*!NEU0zzp z+FHv;3zc%_h1;QYSxL|@`JFs)eU*H)khD62;N}&%AX04!PIUBa51COnn z0ait>?4EzludZ8MAW?BHx(iJLh)TNUI89XxW_{_H8ym8=;Cs#ptH|V|F;rwdsvUcf zD1`X6XirC{ynI%=(nndO3P2gYGJXB}PGCBj>(}1ZGJ18DZX~kx&x54%AkPgcBRbBV zzT1l3ZQ3@+Er5(NQZ!B@%eCZ=T&!Mh3Xkd2BqvB_NM=dqNS-7)337o*N2oo_P#CYWDC}HFS=5!FT$ ziA>*&%(Y{|ty_(zZ*sR4M+{cpxVzQ!viJ7XV}qeN@M%xo?fXQt*fRq|40NX)H9d*+ z7vQ}IhXjwIKZQGYaHY?Hd`l2d^Myj8IA2heexXz87uuD6VX)FK#Fc(wh?Su-RQiyk z(jRu0mA?Ko-YEHdY~Jr}>KW6co7~P;Dq1G_2BQ3T7>onr4p6_1-hVasy%tm|{w>D5 z8<+Gx%0kyjF&+J1CTbo^3>-9Mispt{#XeO_YMFt;ZAifspDHk`W|;fg^kVB*6U?(m zDLD_q?WleML@@Iz@j@(qmSW~&CB7Jo7b#|TR^sPk@$(cjUn}vYSiD3rGq@68j>Ruf z%$%;oS7Pyt6f?^!@p3FKp_62u?Mpz+>gmdo`KssR$8!0j4x;qRvfQ+|=0iivpiz~Z z6u?Tg3C1g1LNGiyxFFlrQk=4#OgINPQpJH2kAs$FX!;Eh96K?2XoCI_NzVFSTOtzs zO9U3!XoZNAU5p`af!oHV(6ot82TeQx8AKBg zLiW+Lhtc#79DFE3Q|CX782Y=Aw=ne{dg3Oq(#F(A7h?zy+%_(SDHoj%rg(ZbfT;iQl|dUU_)-?{5p9Pw*U!M`hh@f?G|c`m3{*JBR*a%nNQgsmkNS?l!^gL+_~E zMhqR5bz!e6>%*a{T={!dSpf`HWlryXSLXJistnlPQ5m>HRq2P`QR$Cist5iBDgmPN literal 0 HcmV?d00001 diff --git a/DestroyerProtection/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/DestroyerProtection/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..77c4374c9dea664c7a00fd96936100823967bfd5 GIT binary patch literal 7029 zcmeHMZBrXJ5VpZ67?Kv#lqArkPMf|=>R#;vC1i#V1ml(|WEk6l&TtIKcd}8qlUzxM zaT))X{(??_V!L~W<2AG&?q>L4dAt@YX;-^i-95Xc(y3JHA87cC?fwuDcY`}hYS}c_ z7S{pwY9?^Gv{t0=OR-j7E#$YD(p-wAQpqafr;uL>JQFCkBv@b+^$PjTpy6@nSJth| zLnf9Q#o6Y3bD>!(x${LjOGi-Us}E>;6L8N(eQUxnCEMGIw%bfuRjSrRJ23hYEPg^g zPj;BQtTpo+UU&7_FoC<$4`B9+6iwc$aF0znRJh!whMmnsuAXTIo>x)SXC0{y&xY!> z0b>s@ja8)Qg1yg>S*NPSOth>PG&D1BL5P0ATS6*UW=#sNSQFa7{?2#T7yR<}Nquqs zsgL;0BA#C3UtE>4~;$sH!oloP$kj4)jFp3S+#jWD`7uR!u6_ z;@YV0`GPDMW*E9~8U$T*#sw`?SB5sE;D<~-znNX;y6w>}D!jVzG|*=H3pbT?nATD) z!|u5On;_&)moT>)2*Z7Ly5y>)zLzu^BEy8FQo}%p(&;pTFVH_nYF%xZ4?zc~<`@hk z>t`mI;*PZrF4!;a?A$U1;(UvG0o$Zp?f)1}tr^8dtC07#BbCP+=Qn5We_x!11v>A{ z|5RF>onysUi@Sx}_HjqInuH&A<8|vD7ne>CLNtjeif&U9!tZ!Y#e9JV0h&Y%4FWW- z7w0a5+w3rqv1|srBS-)Xq_X#bz|Sa>ERr!K<3Ps9eV{4w0LYt@>M0z0T?2I7p^DiN zg0-!;tMv#N7LMku`NA2hJVlVJ$35~9$my-Tw%=)hly+@yT~iOCwq2G^;4@*gy<98X zWdLzXc9{amgE$B9$c;SNcn|zW(85swmvsO@Ri>qP6rtTJYcjAQjP^_b znZCT`GfjlTxtG#qX#kgD)quSfPY|AUS09ra6xF!FaM zdfQyDxeN*_STy}$?I(%2kNfarPA_+MM@O??!&C39v4nd*nM9ojm!43xh@3ih|NN zT$&y!0DthiMJAd*S(Ga9|t$Yw#HRumAlF9%E7Ues}y|?>suJ literal 0 HcmV?d00001 diff --git a/DestroyerProtection/obj/Debug/DestroyerProtection.Form1.resources b/DestroyerProtection/obj/Debug/DestroyerProtection.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/DestroyerProtection/obj/Debug/DestroyerProtection.Resources.resources b/DestroyerProtection/obj/Debug/DestroyerProtection.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/DestroyerProtection/obj/Debug/DestroyerProtection.exe b/DestroyerProtection/obj/Debug/DestroyerProtection.exe new file mode 100644 index 0000000000000000000000000000000000000000..7be4a9fd5317cf6a153a1f97eec976b91bb850e2 GIT binary patch literal 102400 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtection/obj/Debug/DestroyerProtection.vbproj.FileListAbsolute.txt b/DestroyerProtection/obj/Debug/DestroyerProtection.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..6b309e9 --- /dev/null +++ b/DestroyerProtection/obj/Debug/DestroyerProtection.vbproj.FileListAbsolute.txt @@ -0,0 +1,10 @@ +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\bin\Debug\DestroyerProtection.exe.config +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\obj\Debug\DestroyerProtection.pdb +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\bin\Debug\DestroyerProtection.exe +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\bin\Debug\DestroyerProtection.pdb +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\bin\Debug\DestroyerProtection.xml +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\obj\Debug\DestroyerProtection.Form1.resources +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\obj\Debug\DestroyerProtection.Resources.resources +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\obj\Debug\DestroyerProtection.vbproj.GenerateResource.Cache +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\obj\Debug\DestroyerProtection.exe +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtection\obj\Debug\DestroyerProtection.xml diff --git a/DestroyerProtection/obj/Debug/DestroyerProtection.vbproj.GenerateResource.Cache b/DestroyerProtection/obj/Debug/DestroyerProtection.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..a401d28a7d9b17fcec94dc999069e44bb200bd8a GIT binary patch literal 975 zcma)4QESvd5Ke58UUFB>2~wm!9O8q}BizxJ_T><~a$4GhYD-bjhfQ{Z+uO??yGd#M z1^yKOk@zO~D*ggdXBJyZ8>ADM%SF)@$j0&hq&1AoKSfx^A`%oXN85E;*u#s=&+xc+F zw+3v3`NZ|Knc_8=7f|fN0tyaACcrEqIMiU?OoRl}T_|0$RKkHsHPe`1O_{+}F#}GB zU7;Z>m99O{eca4(wK}Q2C5)h@+rKmM*}+qpklQTt+~2pctPp(!c!gnOb8tUoZ_iCW^7*aH!Rp;GkQyaU?#1 zhc9J<6DBJ#NV(+re!JDgwRchLNrQsD8})y@+IiNet|BXg8Vp + + + +DestroyerProtection + + + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + A delay interval to wait (asynchronously) before proceeding to automatic deletion. + + ---------------------------------------------------------------------------------------------------- + + + + Execute CMD with message And Config Console Size. + + + + Encrypt text using AES Algorithm + + Text to encrypt + Password with which to encrypt + Returns encrypted text + + + + Decrypt text using AES Algorithm + + Text to decrypt + Password with which to decrypt + Returns decrypted text + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + Gets the files those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the files information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the filepaths. + dirPath or searchOption + + + Gets the directories those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the dirrectories information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the directory paths. + dirPath or searchOption + + + Analyzes a directory path and perform specific changes on it. + + The directory path. + dirPath;Value is null, empty, or white-spaced. + + + Collects the files those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new files. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new filepaths. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the directories those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directories. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Collects the directory paths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directory paths. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Searchs for files and directories. + + + + \ No newline at end of file diff --git a/DestroyerProtection/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/DestroyerProtection/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..3d76555122527d45bf043914209eab5e79070348 GIT binary patch literal 7680 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 C&Hm{C literal 0 HcmV?d00001 diff --git a/DestroyerProtection/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/DestroyerProtection/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..c1a494fbf0b86f84fbdd197e84251e6afc66dbca GIT binary patch literal 7136 zcmeHMZBrXJ5Viv-7?Kv#G%ut{oi=@UuQo3w$xJ>Fj9aFVVQhzV1~WvyTN{Nt$(3|~ z%P{>Z{RN%=#CG>E$7^Um+|A^J#ds}N(yn%IrF(Xr$!0Q{f3VRvwHw!vc&ozI%BZ$= z)`bbVU$>zrl(VRUK*{CGQn9cO+6X0|m#3W){S^y~p>IPC&n1LbbH7+v3tPT$e}P^@ z?SOpVD$TU#+Vkyl*_$iz89qWPpS(lUi%|F;>06c-wCcXryxRrs)VN-j-O!plxcDCT zeYFSPf-w-Z{NB>O1xdRyH*xl&l5Nqc3LkE}TzbOe7LI2U*W7Q1zF*ZmfIX#mj)xk& zg=4qQj8&EIp}h}@+2FbZHeOZ_TL$b)6k;BWj#L^d(B|lhWoaz#?__sJg1^0b(vi5M zsdvQXA|71epI%k)(N1H}ZL=aYxK?QaW}@p^uIs?HyS>KkwwdUhV~lsTYNLn9s!0tU zVXW?*EXbi@7RZHDDCo2^PHDM)ZfI3Wu><plQa9j56=8NpL6Ga zEI*x@h0>F!o5id4@t$rq4L@uq>(=*NTsAuh(KMncK22!|f6rqo;R7@X&@^Ib5THrD zI5!F0=7x}r<%X#{LIkluCU+ePevJ~z5g8*gj%1A8K$>AUk-Rvl_2JO7I-=t}uAvzt z*rxMxsSyLi;_j?7S3E|QeFV9*f5<*SIe#oZYrZlFDVz1#6~ldk+Rch`!vLf;&4qfU zSwRq|RSz^m9>O_@M=s^5*4t(ceBcIX9N}dHAy5sB@^@prTZ1-ekO-X|m%H1L`;aV} zKr(f9)5ox$HqY`nK1t(+*s22YCy_rK&G?9Vfe}8tg}pK4m7JN_TH4H%g<}1C-oE$>`1wrc8w> zgTlb;$5o*p=$K!eIuLQ#oIM&%ik)VRr8Pv+@DMe~G&EGWHIV;t0J8g z;|0{vO2sPZ`l?6wMP$h%)blzGJ!HgZD10jo;T6sCQs_h$e4du4R=MOIh&}Zf^*|cN zycW_^d&a3M9hk_ZFHqG+8mfK`{7Au4MZ7vpf29+DC&c3tAlt$bq{qPgcV>dQOM{{4{t#{n= zlp|2RnthFAHPIV4PpL;F`y1>GSFy&Nr8FeUO-^qjOL@r!Zk`eqYI#alXrJsmBzF%M zFD-f>vLcR79{en%rRr~0V~rgT%^~|9`BMjt%PYFQL+0Rk68X;$DCg!ujqeeJq>Aq$ zDis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/DestroyerProtection/obj/Release/DestroyerProtection.Resources.resources b/DestroyerProtection/obj/Release/DestroyerProtection.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/DestroyerProtection/obj/Release/DestroyerProtection.exe b/DestroyerProtection/obj/Release/DestroyerProtection.exe new file mode 100644 index 0000000000000000000000000000000000000000..fe16ecd7b16a60faaaa53d531f63349b1223a0d6 GIT binary patch literal 98304 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 K6y%4V0{$3|iM)s(v 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 uthx5sw~!;45~4GQZ3 literal 0 HcmV?d00001 diff --git a/DestroyerProtection/obj/Release/DestroyerProtection.xml b/DestroyerProtection/obj/Release/DestroyerProtection.xml new file mode 100644 index 0000000..ab82843 --- /dev/null +++ b/DestroyerProtection/obj/Release/DestroyerProtection.xml @@ -0,0 +1,164 @@ + + + + +DestroyerProtection + + + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + A delay interval to wait (asynchronously) before proceeding to automatic deletion. + + ---------------------------------------------------------------------------------------------------- + + + + Execute CMD with message And Config Console Size. + + + + Encrypt text using AES Algorithm + + Text to encrypt + Password with which to encrypt + Returns encrypted text + + + + Decrypt text using AES Algorithm + + Text to decrypt + Password with which to decrypt + Returns decrypted text + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + Gets the files those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the files information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the filepaths. + dirPath or searchOption + + + Gets the directories those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the dirrectories information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the directory paths. + dirPath or searchOption + + + Analyzes a directory path and perform specific changes on it. + + The directory path. + dirPath;Value is null, empty, or white-spaced. + + + Collects the files those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new files. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new filepaths. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the directories those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directories. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Collects the directory paths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directory paths. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Searchs for files and directories. + + + + \ No newline at end of file diff --git a/DestroyerProtection/obj/Release/TempPE/My Project.Resources.Designer.vb.dll b/DestroyerProtection/obj/Release/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..51acd771e6f5bfd18f46c70206a9480e6f304aa5 GIT binary patch literal 7680 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 NnegEa#)r@Ie*h{h>-7Kt literal 0 HcmV?d00001 diff --git a/DestroyerProtectionLib/DestroyerCore/AntiAnalysis/MainAnalysis.vb b/DestroyerProtectionLib/DestroyerCore/AntiAnalysis/MainAnalysis.vb new file mode 100644 index 0000000..ffcc30f --- /dev/null +++ b/DestroyerProtectionLib/DestroyerCore/AntiAnalysis/MainAnalysis.vb @@ -0,0 +1,243 @@ +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 01-04-2020 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiAnalysis + Public Class MainAnalysis + + '// OllyDebug debugger + '// Process Hacker + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// Part of Sysinternals Suite + '// IDA Pro Interactive Disassembler + '// IDA Pro Interactive Disassembler + '// ImmunityDebugger + '// Wireshark packet sniffer + '// Network traffic dump tool + '// Find various types of runtime hooks + '// Import Reconstructor + '// PE Tool + '// LordPE + '// ESET SysInspector + '// Part of SysAnalyzer iDefense + '// Part of SysAnalyzer iDefense + '// Part of SysAnalyzer iDefense + '// Microsoft WinDbg + '// Part of Joe Sandbox + '// Part of Joe Sandbox + '// Part of Joe Sandbox + '// Resource Hacker + '// x32dbg + '// x64dbg + '// Fiddler + '// Http Debugger + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + +#Region " Declare's " + + Private Shared szProcesses() As String = {"ollydbg.exe", _ + "ProcessHacker.exe", _ + "tcpview.exe", _ + "autoruns.exe", _ + "autorunsc.exe", _ + "filemon.exe", _ + "procmon.exe", _ + "regmon.exe", _ + "procexp.exe", _ + "idaq.exe", _ + "idaq64.exe", _ + "ImmunityDebugger.exe", _ + "Wireshark.exe", _ + "dumpcap.exe", _ + "HookExplorer.exe", _ + "ImportREC.exe", _ + "PETools.exe", _ + "LordPE.exe", _ + "SysInspector.exe", _ + "proc_analyzer.exe", _ + "sysAnalyzer.exe", _ + "sniff_hit.exe", _ + "windbg.exe", _ + "joeboxcontrol.exe", _ + "joeboxserver.exe", _ + "joeboxserver.exe", _ + "ResourceHacker.exe", _ + "x32dbg.exe", _ + "x64dbg.exe", _ + "Fiddler.exe", _ + "httpdebugger.exe", _ + "de4dot.exe", _ + "PEiD.exe", _ + "Universal_Fixer.exe", _ + "MegaDumper.exe", _ + "ida.exe", _ + "ida64.exe", _ + "cheatengine-i386.exe", _ + "cheatengine-x86_64.exe", _ + "Cheat Engine.exe", _ + "de4dot.exe", _ + "de4dot-x64.exe", _ + "dnSpy.exe", _ + "MegaDumper.exe"} + + Private Shared szProcessesTitle() As String = {"Olly", _ + "Process", _ + "Sysinternals", _ + "IDA", _ + "Disassembler", _ + "Debugger", _ + "Wireshark", _ + "packet", _ + "sniffer", _ + "dump", _ + "LordPE", _ + "PE Tool", _ + "ESET", _ + "WinDbg", _ + "Hook", _ + "Http Debugger", _ + "Fiddler", _ + "Resource Hacker", _ + "Dumper", _ + "The Interactive Disassembler", _ + "Cheat Engine", _ + "Winsock Packet Editor", + "Winsock", _ + "artmoney", _ + "de4dot", _ + "dnSpy", _ + "MegaDumper"} + + + + Private Shared exclusion_processes() As String = {"chrome.exe", _ + "Discord.exe", _ + "MEGAsync.exe", _ + "brave.exe", _ + "Opera.exe", _ + "Dropbox.exe", _ + "explorer.exe", _ + "taskmgr.exe"} + +#End Region + +#Region " Types " + + Public Enum SearchType + FromName = 0 + FromTitle = 1 + FromNameandTitle = 2 + None = 3 + End Enum + +#End Region + +#Region " Public Methods " + + Public Shared Function Malicious_Processes_Found(ByVal Search_Level As SearchType) As Boolean + Dim Nproc As Integer = 0 + + Select Case Search_Level + Case 0 : Nproc = ProcessMonitorFromName() + Case 1 : Nproc = ProcessMonitorFromTitle() + Case 2 : Nproc = (ProcessMonitorFromName() + ProcessMonitorFromTitle()) + Case 3 : Nproc = 0 + End Select + + If Nproc = 0 Then + Return False + Else + Return True + End If + End Function + + Public Shared Function ProcessMonitorFromName() As Integer + Dim ProcessesFound As Integer = 0 + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + + Public Shared Function ProcessMonitorFromTitle() As Integer + Dim ProcessesFound As Integer = 0 + + Dim poc() As Process = Process.GetProcesses() + + For Each ProcessTitle As String In szProcessesTitle + For i As Integer = 0 To poc.Length - 1 + Dim NameProc As String = poc(i).ProcessName + Dim WinTitleProc As String = poc(i).MainWindowTitle + If ExclusionClases(exclusion_processes.Count, NameProc) = False Then + If InStr(1, LCase(WinTitleProc), LCase(ProcessTitle)) > 0 Then + _LogResult = "Malicious identification detected: " & WinTitleProc & " In process :" & NameProc & ".exe" & " | Corresponding to : " & ProcessTitle & vbNewLine + ProcessesFound += 1 + End If + End If + Next + Next + + Return ProcessesFound + End Function + +#End Region + +#Region " Private Methods " + + Private Shared Function ExclusionClases(ByVal CountClass As Integer, ByVal Clase As String) As Boolean + If Clase.ToLower.EndsWith(".exe") Then Clase = Clase.Substring(0, Clase.Length - 4) + Dim MaxValue As Integer = CountClass + Dim DetectionCount As Integer = 0 + Dim ProcessClass As Integer = 0 + For Each Processnames As String In exclusion_processes + If Processnames.ToLower.EndsWith(".exe") Then Processnames = Processnames.Substring(0, Processnames.Length - 4) + + If LCase(Processnames) = LCase(Clase) Then + DetectionCount += 1 + End If + ProcessClass += 1 + Next + If MaxValue = ProcessClass Then + If DetectionCount > 0 Then + Return True + End If + End If + Return False + End Function + + Private Shared Function Get_Process_Window_Title(ByVal ProcessName As String) As String + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + Dim ProcessArray = Process.GetProcessesByName(ProcessName) + If ProcessArray.Length = 0 Then Return Nothing Else Return ProcessArray(0).MainWindowTitle + End Function + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtectionLib/DestroyerCore/AntiDebug/MainDebug.vb b/DestroyerProtectionLib/DestroyerCore/AntiDebug/MainDebug.vb new file mode 100644 index 0000000..d9836fd --- /dev/null +++ b/DestroyerProtectionLib/DestroyerCore/AntiDebug/MainDebug.vb @@ -0,0 +1,154 @@ +Imports System.Runtime.InteropServices +Imports System.Management +Imports System.Security.Principal + +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 01-04-2020 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiDebug + Public Class MainDebug + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + +#Region " Pinvoke " + + + Friend Shared Function IsDebuggerPresent( + ) As Boolean + End Function + + + Public Shared Function CsrGetProcessId() As Integer + End Function + + + Public Shared Function OpenProcess( + ByVal dwDesiredAccess As Integer, + ByVal bInheritHandle As Boolean, + ByVal dwProcessId As Integer) As IntPtr + End Function + + + +#End Region + +#Region " Types " + + Public Enum DebugDetectionTypes + IsDebuggerPresent = 0 + IsDbgCsrss = 1 + Parent_Process = 2 + IsDebuggerAttached = 3 + IsDebuggerLogging = 4 + AllScanEgines = 5 + None = 6 + End Enum + +#End Region + +#Region " Public Methods " + + Public Shared Function Debugger_Check(ByVal DebugTypeFunction As DebugDetectionTypes) As Boolean + Select Case DebugTypeFunction + Case DebugDetectionTypes.IsDebuggerPresent : Return IsDebuggerPresent() + Case DebugDetectionTypes.IsDebuggerAttached : Return IsDebuggerAttached() + Case DebugDetectionTypes.IsDebuggerLogging : Return IsDebuggerLogging() + Case DebugDetectionTypes.IsDbgCsrss : Return False 'IsDbgCsrss() + Case DebugDetectionTypes.Parent_Process : Return Parent_Process() + Case DebugDetectionTypes.AllScanEgines : Return AllScan() + End Select + Return False + End Function + + Private Shared Function AllScan() As Boolean + If IsDebuggerPresent() = True Then + _LogResult = "Debugger Presence Detected." & vbNewLine + Return True + End If + 'If IsDbgCsrss() = True Then + 'Return True + 'End If + If IsDebuggerAttached() = True Then + _LogResult = "Attached debugger detected." & vbNewLine + Return True + End If + If IsDebuggerLogging() = True Then + _LogResult = "Logging debugger detected." & vbNewLine + Return True + End If + If Parent_Process() = True Then + Return True + End If + Return False + End Function + + Public Shared Function IsDebuggerAttached() As Boolean + Return Debugger.IsAttached + End Function + + Public Shared Function IsDebuggerLogging() As Boolean + Return Debugger.IsLogging + End Function + + Public Shared Sub DebuggerBreak() + Debugger.Break() + End Sub + + '//////////////////////////////////////////////////////////////////////// + 'Administrator privileges are required for this Function. + Const PROCESS_ALL_ACCESS = &H1F0FFF + Public Shared Function IsDbgCsrss() As Boolean + If IsAdministrator = True Then + Return CBool(OpenProcess(PROCESS_ALL_ACCESS, 0, CsrGetProcessId)) + End If + Return False + End Function + 'Administrator privileges are required for this Function. + '//////////////////////////////////////////////////////////////////////// + + Public Shared Function Parent_Process(Optional ByVal ProcessName As String = "explorer.exe") As Boolean + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + Dim myId = Process.GetCurrentProcess().Id + Dim query = String.Format("SELECT ParentProcessId FROM Win32_Process WHERE ProcessId = {0}", myId) + Dim search = New ManagementObjectSearcher("root\CIMV2", query) + Dim results = search.[Get]().GetEnumerator() + results.MoveNext() + Dim queryObj = results.Current + Dim parentId = CUInt(queryObj("ParentProcessId")) + Dim parent = Process.GetProcessById(CInt(parentId)) + Dim ParentProcessName As String = parent.ProcessName + If LCase(ParentProcessName) = LCase(ProcessName) Then + Return False + Else + _LogResult = "The process : " & ParentProcessName & ".exe" & " I am trying to run / debug the program." & vbNewLine + Return True + End If + End Function + + Public Shared ReadOnly Property IsAdministrator As Boolean + Get + Return New WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator) + End Get + End Property + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtectionLib/DestroyerCore/AntiDump/MainDump.vb b/DestroyerProtectionLib/DestroyerCore/AntiDump/MainDump.vb new file mode 100644 index 0000000..21d5862 --- /dev/null +++ b/DestroyerProtectionLib/DestroyerCore/AntiDump/MainDump.vb @@ -0,0 +1,72 @@ +Imports System.Runtime.InteropServices +Imports System.Windows.Forms + +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 01-04-2020 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiDump + Public Class MainDump + +#Region " Pinvoke's " + + _ + Public Shared Function GetModuleHandle(ByVal lpModuleName As String) As IntPtr + End Function + + + Private Shared Function ZeroMemory(ByVal addr As IntPtr, ByVal size As IntPtr) As IntPtr + End Function + + + Private Shared Function VirtualProtect(ByVal lpAddress As IntPtr, ByVal dwSize As IntPtr, ByVal flNewProtect As IntPtr, ByRef lpflOldProtect As IntPtr) As IntPtr + End Function + +#End Region + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + + Const PAGE_READWRITE As UInteger = 4 + + Public Shared Function AntiDumpEnabled(Optional ByVal FormF As Form = Nothing) As Boolean + Try + Dim OldProtect As UInteger = 0 + Dim pBaseAddr As IntPtr = GetModuleHandle(Nothing) + + ' Change memory protection + VirtualProtect(pBaseAddr, 4096, PAGE_READWRITE, OldProtect) + ZeroMemory(pBaseAddr, 4096) + + If Not FormF Is Nothing Then + AddHandler FormF.FormClosed, AddressOf FixClose + End If + _LogResult = "Anti Dump Triggered Properly" & vbNewLine + Return True + Catch ex As Exception + _LogResult = "Error activating Anti Dump. | " & ex.Message & vbNewLine + Return False + End Try + End Function + + Private Shared Sub FixClose() 'Not Fount . :( + Application.Exit() + End Sub + + End Class +End Namespace + diff --git a/DestroyerProtectionLib/DestroyerCore/AntiVirtualMachine/MainVM.vb b/DestroyerProtectionLib/DestroyerCore/AntiVirtualMachine/MainVM.vb new file mode 100644 index 0000000..4d5c341 --- /dev/null +++ b/DestroyerProtectionLib/DestroyerCore/AntiVirtualMachine/MainVM.vb @@ -0,0 +1,370 @@ +Imports System.Runtime.InteropServices + +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 01-04-2020 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiVirtualMachine + Public Class MainVM + +#Region " Pinvoke's " + + _ + Public Shared Function GetModuleHandle(ByVal lpModuleName As String) As IntPtr + End Function + + _ + Public Shared Function GetProcAddress(ByVal hModule As IntPtr, ByVal procName As String) As UIntPtr + End Function + +#End Region + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + +#Region " Methods " + + Public Shared Function VirtualMachine_Check() As Boolean + If VMWareCheck() = True Then + Return True + End If + If WineCheck() = True Then + Return True + End If + If VirtualPCCheck() = True Then + Return True + End If + If VBoxCheck() = True Then + Return True + End If + Return False + End Function + +#Region " VMware Check" + + Public Shared Function VMWareCheck() As Boolean + If vmware_reg_key_value() = True Then + Return True + End If + If vmware_reg_keys() = True Then + Return True + End If + If vmware_files() = True Then + Return True + End If + If Not vmware_processes() = 0 Then + Return True + End If + Return False + End Function + + Private Shared Function vmware_reg_key_value() As Boolean + ' Array of strings of blacklisted registry key values + Dim szEntries()() As String = { + New String() {"HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0", "Identifier", "VMWARE"}, + New String() {"HARDWARE\DEVICEMAP\Scsi\Scsi Port 1\Scsi Bus 0\Target Id 0\Logical Unit Id 0", "Identifier", "VMWARE"}, + New String() {"HARDWARE\DEVICEMAP\Scsi\Scsi Port 2\Scsi Bus 0\Target Id 0\Logical Unit Id 0", "Identifier", "VMWARE"}, + New String() {"SYSTEM\ControlSet001\Control\SystemInformation", "SystemManufacturer", "VMWARE"}, + New String() {"SYSTEM\ControlSet001\Control\SystemInformation", "SystemProductName", "VMWARE"} + } + + Dim dwLength As UShort = szEntries.Length + For i As Integer = 0 To dwLength - 1 + If Not Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szEntries(i)(0)) Is Nothing Then + Dim regKey As String = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szEntries(i)(0)).GetValue(szEntries(i)(1)).ToString + If regKey = szEntries(i)(2) Then + _LogResult = "Malicious Registry Value: " & regKey.ToString & vbNewLine + Return True + End If + End If + Next i + Return False + End Function + + Private Shared Function vmware_reg_keys() As Boolean + ' Array of strings of blacklisted registry keys + Dim szKeys() As String = {"SOFTWARE\VMware", "Inc.\VMware Tools"} + Dim dwlength As UShort = szKeys.Length + + ' Check one by one + For i As Integer = 0 To dwlength - 1 + If Not Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szKeys(i)) Is Nothing Then + _LogResult = "Malicious Registry Value: " & "HKEY_LOCAL_MACHINE\" & szKeys(i).ToString & vbNewLine + Return True + End If + Next i + Return False + End Function + + + Private Shared Function vmware_files() As Boolean + Dim szPaths() As String = {"vmnet.sys", _ + "vmmouse.sys", _ + "vmusb.sys", _ + "vm3dmp.sys", _ + "vmci.sys", _ + "vmhgfs.sys", _ + "vmmemctl.sys", _ + "vmx86.sys", _ + "vmrawdsk.sys", _ + "vmusbmouse.sys", _ + "vmkdb.sys", _ + "vmnetuserif.sys", _ + "vmnetadapter.sys"} + + Dim winPath As String = Environment.GetEnvironmentVariable("windir") & "\System32\Drivers\" + + For Each DriverFile As String In szPaths + If My.Computer.FileSystem.FileExists(winPath & DriverFile) Then + _LogResult = "Virtual Machine Detected. | " & "Detected Driver: " & winPath & DriverFile & vbNewLine + Return True + End If + Next + Return False + End Function + + Private Shared Function vmware_processes() As Integer + Dim szProcesses() As String = {"vmtoolsd.exe", "vmwaretray.exe", "vmwareuser.exe", "VGAuthService.exe", "vmacthlp.exe"} + Dim ProcessesFound As Integer = 0 + + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + +#End Region + +#Region " WineVM Check" + + Public Shared Function WineCheck() As Boolean + If wine_exports() = True Then + Return True + End If + If wine_reg_keys() = True Then + Return True + End If + Return False + End Function + + Private Shared Function wine_exports() As Boolean + Dim hKernel32 As IntPtr + + hKernel32 = GetModuleHandle("kernel32.dll") + If hKernel32 = Nothing Then + Return False + End If + + ' Check if wine_get_unix_file_name is exported by this dll + If GetProcAddress(hKernel32, "wine_get_unix_file_name") = Nothing Then + _LogResult = "Running on WineVM detected." & vbNewLine + Return False + Else + Return True + End If + End Function + + Private Shared Function wine_reg_keys() As Boolean + If Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Wine") Is Nothing Then + Return False + Else + _LogResult = "Malicious Registry Value: " & "HKEY_CURRENT_USER\SOFTWARE\Wine" & vbNewLine + Return True + End If + End Function + +#End Region + +#Region " xen " + + Public Shared Function XenCheck() As Boolean + If Not Xen_processes() = 0 Then + Return True + End If + Return False + End Function + + + Private Shared Function Xen_processes() As Integer + Dim szProcesses() As String = {"xenservice.exe"} + Dim ProcessesFound As Integer = 0 + + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + +#End Region + +#Region " VirtualPC " + + Public Shared Function VirtualPCCheck() As Boolean + If VirtualPC_reg_keys() = True Then + Return True + End If + If Not VirtualPC_processes() = 0 Then + Return True + End If + Return False + End Function + + Private Shared Function VirtualPC_reg_keys() As Boolean + If Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Virtual Machine\\Guest\\Parameters") Is Nothing Then + Return False + Else + _LogResult = "Malicious Registry Value: " & "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" & vbNewLine + Return True + End If + End Function + + Private Shared Function VirtualPC_processes() As Integer + Dim szProcesses() As String = {"VMSrvc.exe", "VMUSrvc.exe"} + Dim ProcessesFound As Integer = 0 + + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + +#End Region + +#Region " VirtualBox " + + Public Shared Function VBoxCheck() As Boolean + If vbox_reg_key_value() = True Then + Return True + End If + If vbox_reg_keys() = True Then + Return True + End If + If vbox_files() = True Then + Return True + End If + If Not VBox_processes() = 0 Then + Return True + End If + Return False + End Function + + Private Shared Function vbox_reg_key_value() As Boolean + ' Array of strings of blacklisted registry key values + Dim szEntries()() As String = { + New String() {"HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0", "Identifier", "VBOX"}, + New String() {"HARDWARE\Description\System", "SystemBiosVersion", "VBOX"}, + New String() {"HARDWARE\Description\System", "VideoBiosVersion", "VIRTUALBOX"}, + New String() {"HARDWARE\Description\System", "SystemBiosDate", "06/23/99"} + } + Dim dwLength As UShort = szEntries.Length + For i As Integer = 0 To dwLength - 1 + If Not Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szEntries(i)(0)) Is Nothing Then + Dim regKey As String = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szEntries(i)(0)).GetValue(szEntries(i)(1)).ToString + If regKey = szEntries(i)(2) Then + _LogResult = "Malicious Registry Value: " & regKey.ToString & vbNewLine + Return True + End If + End If + Next i + Return False + End Function + + Private Shared Function vbox_reg_keys() As Boolean + ' Array of strings of blacklisted registry keys + Dim szKeys() As String = {"HARDWARE\ACPI\DSDT\VBOX__", _ + "HARDWARE\ACPI\FADT\VBOX__", _ + "HARDWARE\ACPI\RSDT\VBOX__", _ + "SOFTWARE\Oracle\VirtualBox Guest Additions", _ + "SYSTEM\ControlSet001\Services\VBoxGuest", _ + "SYSTEM\ControlSet001\Services\VBoxMouse", _ + "SYSTEM\ControlSet001\Services\VBoxService", _ + "SYSTEM\ControlSet001\Services\VBoxSF", _ + "SYSTEM\ControlSet001\Services\VBoxVideo"} + + Dim dwlength As UShort = szKeys.Length + For i As Integer = 0 To dwlength - 1 + If Not Microsoft.Win32.Registry.LocalMachine.OpenSubKey(szKeys(i)) Is Nothing Then + _LogResult = "Malicious Registry Value: " & "HKEY_LOCAL_MACHINE\" & szKeys(i).ToString & vbNewLine + Return True + End If + Next i + Return False + End Function + + Private Shared Function vbox_files() As Boolean + Dim szPaths() As String = {"System32\drivers\VBoxMouse.sys", _ + "System32\drivers\VBoxGuest.sys", _ + "System32\drivers\VBoxSF.sys", _ + "System32\drivers\VBoxVideo.sys", _ + "System32\vboxdisp.dll", _ + "System32\vboxhook.dll", _ + "System32\vboxmrxnp.dll", _ + "System32\vboxogl.dll", _ + "System32\vboxoglarrayspu.dll", _ + "System32\vboxoglcrutil.dll", _ + "System32\vboxoglerrorspu.dll", _ + "System32\vboxoglfeedbackspu.dll", _ + "System32\vboxoglpackspu.dll", _ + "System32\vboxoglpassthroughspu.dll", _ + "System32\vboxservice.exe", _ + "System32\vboxtray.exe", _ + "System32\VBoxControl.exe"} + + Dim winPath As String = Environment.GetEnvironmentVariable("windir") & "\" + + For Each DriverFile As String In szPaths + If My.Computer.FileSystem.FileExists(winPath & DriverFile) Then + _LogResult = "VBox Detected. | " & "Detected Driver: " & winPath & DriverFile & vbNewLine + Return True + End If + Next + Return False + End Function + + Private Shared Function VBox_processes() As Integer + Dim szProcesses() As String = {"vboxservice.exe", "vboxtray.exe"} + Dim ProcessesFound As Integer = 0 + + For Each ProcessName As String In szProcesses + If ProcessName.ToLower.EndsWith(".exe") Then ProcessName = ProcessName.Substring(0, ProcessName.Length - 4) + For Each process As Process In process.GetProcessesByName(ProcessName) + _LogResult = "Malicious Process Detected: " & ProcessName & ".exe" & vbNewLine + ProcessesFound += 1 + Next + Next + Return ProcessesFound + End Function + +#End Region + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtectionLib/DestroyerCore/AntiVirtualMachine/OldAntiVM.vb b/DestroyerProtectionLib/DestroyerCore/AntiVirtualMachine/OldAntiVM.vb new file mode 100644 index 0000000..7368553 --- /dev/null +++ b/DestroyerProtectionLib/DestroyerCore/AntiVirtualMachine/OldAntiVM.vb @@ -0,0 +1,696 @@ +Imports System.Runtime.InteropServices +Imports System.Management + +' *********************************************************************** +' Author : Destroyer +' Last Modified On : 09-05-2019 +' Discord : Destroyer#8328 +' *********************************************************************** +' +' Copyright (c) S4Lsalsoft. All rights reserved. +' +' *** + +Namespace Destroyer.AntiVirtualMachine + Public Class OldAntiVM + +#Region "PInvokes" + + + Public Shared Function LoadLibrary( ByVal moduleName As String) As IntPtr + End Function + +#End Region + +#Region " Declarations " + + Private Shared DetectVM As ResultType = ResultType.Indeterminate + Private Shared DesCriptVM As String = String.Empty + +#End Region + +#Region "Propiertes" + + Public Shared Function IsVirtualMachinePresent() As Boolean + Return DetectVM + End Function + + Public Shared Function DescriptcionVM() As String + Return DesCriptVM + End Function + +#End Region + +#Region " Types " + + Public Enum ResultType + Secure = 0 + Danger = 1 + Indeterminate = 2 + End Enum + +#End Region + +#Region " Public Methods " + + Public Shared Sub VM_Start() + + Dim ScanAsyncEngine As New Task(StarScan, TaskCreationOptions.LongRunning) + + ScanAsyncEngine.Start() + + End Sub + + Private Shared StarScan As New Action( + Sub() + StartProcessScan() + End Sub) + + Private Shared Sub StartProcessScan() + + If LoadLibrary("SbieDll.dll") = True Then + DesCriptVM = "Sandboxie Detected" + DetectVM = ResultType.Danger + End If + + If Detect_Virtual_Machine() = True Then + DesCriptVM = "VM Detected" + DetectVM = ResultType.Danger + End If + + If Not AntiVM() = "False" Then + DesCriptVM = AntiVM() + DetectVM = ResultType.Danger + End If + + DetectVM = ResultType.Secure + End Sub + +#End Region + +#Region "Funcs" + + Private Shared Function Detect_Virtual_Machine() As Boolean + Dim ModelName As String = Nothing + Dim SearchQuery = New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE BytesPerSector > 0") + + For Each ManagementSystem In SearchQuery.Get + + ModelName = ManagementSystem("Model").ToString.Split(" ").First.ToLower + + If ModelName = "virtual" Or _ + ModelName = "vmware" Or _ + ModelName = "vbox" Or _ + ModelName = "qemu" _ + Then + Return True + End If + + Next + + Return False + End Function + + Private Shared Function AntiVM() As String + Dim oItem + With GetObject("winmgmts:\\.\root\cimv2") + For Each oItem In .ExecQuery("Select * from Win32_ComputerSystem") + Debug.Print(oItem.Model, CBool(InStr(1, oItem.Model, "Virtual", vbTextCompare))) + If CBool(InStr(1, oItem.Model, "Virtual", vbTextCompare)) = True Then + Return "Win32_ComputerSystem" + End If + + Next + + For Each oItem In .ExecQuery("Select * from Win32_VideoController") + If CBool(InStr(1, oItem.Caption, "VMWare", vbTextCompare)) = True Then + Return "Win32_VideoController" + End If + Next + + For Each Nic In .ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration") + + If Not IsDBNull(Nic.MACAddress) And Not IsDBNull(Nic.Description) Then + Dim MacAddress = LCase(CStr(Nic.MACAddress)) + Dim Description = LCase(CStr(Nic.Description)) + If InStr(1, MacAddress, "08:00:27:") = 1 And InStr(1, Description, "virtualbox") = 0 Then + Return "NetworkAdapterConfiguration" + End If + End If + + Next + + + For Each SysDrv In .ExecQuery("SELECT * FROM Win32_SystemDriver") + Dim DescSysDrv = SysDrv.Description + Dim DispSysDrv = SysDrv.DisplayName + Dim NameSysDrv = SysDrv.Name + Dim PathSysDrv = SysDrv.PathName + If Not IsDBNull(DescSysDrv) Then + If DescSysDrv = "VirtualBox Guest Driver" Or DescSysDrv = "VirtualBox Guest Mouse Service" Or DescSysDrv = "VirtualBox Shared Folders" Or DescSysDrv = "VBoxVideo" Then + 'test + Return "Win32_SystemDriver ==> SysDrv.Description ==> " & DescSysDrv + End If + End If + + If Not IsDBNull(DispSysDrv) Then + If DispSysDrv = "VirtualBox Guest Driver" Or DispSysDrv = "VirtualBox Guest Mouse Service" Or DispSysDrv = "VirtualBox Shared Folders" Or DispSysDrv = "VBoxVideo" Then + 'test + Return "Win32_SystemDriver ==> SysDrv.DisplayName ==> " & DispSysDrv + End If + End If + + If Not IsDBNull(NameSysDrv) Then + If NameSysDrv = "VBoxGuest" Or NameSysDrv = "VBoxMouse" Or NameSysDrv = "VBoxSF" Or NameSysDrv = "VBoxVideo" Then + 'test + Return "Win32_SystemDriver ==> SysDrv.Name ==> " & NameSysDrv + End If + End If + + If Not IsDBNull(PathSysDrv) Then + Dim PathSysDrv_l = LCase(PathSysDrv) + If InStr(1, PathSysDrv_l, "vboxguest.sys") > 0 Or InStr(1, PathSysDrv_l, "vboxmouse.sys") > 0 Or InStr(1, PathSysDrv_l, "vboxsf.sys") > 0 Or InStr(1, PathSysDrv_l, "vboxvideo.sys") > 0 Then + 'test + Return "Win32_SystemDriver ==> SysDrv.PathName ==> " & PathSysDrv + End If + End If + Next + + For Each EvtLogX In .ExecQuery("SELECT * FROM Win32_NTEventlogFile") + If Not IsDBNull(EvtLogX) Then + Dim FileNameEvtX = CStr(EvtLogX.FileName) + Dim FileNameEvtX_l = LCase(FileNameEvtX) + If FileNameEvtX_l = "sysevent" Or FileNameEvtX_l = "system" Then + Dim SourcesEvtX = EvtLogX.Sources + For Each SourceEvtX In SourcesEvtX + Dim SourceEvtX_l = LCase(CStr(SourceEvtX)) + If SourceEvtX_l = "vboxvideo" Then + 'test + Return "Win32_NTEventlogFile ==> EvtLogX.Sources ==> " & SourceEvtX + End If + Next + End If + End If + Next + + + For Each Bios In .ExecQuery("SELECT * FROM Win32_BIOS") + If Not IsDBNull(Bios) Then + If Not IsDBNull(Bios.Manufacturer) Then + Dim ManufacturerBios = LCase(CStr(Bios.Manufacturer)) + If InStr(1, ManufacturerBios, "innotek gmbh") > 0 Then + 'test + Return "Win32_BIOS ==> Bios.Manufacturer ==> " & Bios.Manufacturer + End If + End If + If Not IsDBNull(Bios.SMBIOSBIOSVersion) Then + Dim SMBIOSBIOSVersionBios = LCase(CStr(Bios.SMBIOSBIOSVersion)) + If InStr(1, SMBIOSBIOSVersionBios, "virtualbox") > 0 Then + + Return "Win32_BIOS ==> Bios.SMBIOSBIOSVersion ==> " & Bios.SMBIOSBIOSVersion + End If + End If + If Not IsDBNull(Bios.Version) Then + Dim VersionBios = LCase(CStr(Bios.Version)) + If InStr(1, VersionBios, "vbox - 1") > 0 Then + 'test + Return "Win32_BIOS ==> Bios.Version ==> " & Bios.Version + End If + End If + End If + Next + + For Each DiskDrive In .ExecQuery("SELECT * FROM Win32_DiskDrive") + If Not IsDBNull(DiskDrive) Then + If Not IsDBNull(DiskDrive.Model) Then + Dim ModelDskDrv = LCase(DiskDrive.Model) + If ModelDskDrv = "vbox harddisk" Then + 'test + Return "Win32_DiskDrive ==> DiskDrive.Model ==> " & DiskDrive.Model + End If + End If + If Not IsDBNull(DiskDrive.PNPDeviceID) Then + Dim PNPDeviceIDDskDrv = LCase(DiskDrive.PNPDeviceID) + If InStr(1, PNPDeviceIDDskDrv, "diskvbox") > 0 Then + 'test + Return "Win32_DiskDrive ==> DiskDrive.PNPDeviceID ==> " & DiskDrive.PNPDeviceID + End If + End If + End If + Next + + For Each Startup In .ExecQuery("SELECT * FROM Win32_StartupCommand") + If Not IsDBNull(Startup) Then + If Not IsDBNull(Startup.Caption) Then + Dim CaptionStartup = LCase(CStr(Startup.Caption)) + If CaptionStartup = "vboxtray" Then + 'test + Return "Win32_StartupCommand ==> Startup.Caption ==> " & Startup.Caption + End If + End If + If Not IsDBNull(Startup.Command) Then + Dim CommandStartup = LCase(CStr(Startup.Command)) + If InStr(1, CommandStartup, "vboxtray.exe") > 0 Then + 'test + Return "Win32_StartupCommand ==> Startup.Command ==> " & Startup.Command + End If + End If + If Not IsDBNull(Startup.Description) Then + Dim DescStartup = LCase(CStr(Startup.Description)) + If DescStartup = "vboxtray" Then + + Return "Win32_StartupCommand ==> Startup.Description ==> " & Startup.Description + End If + End If + End If + Next + + For Each ComputerSystem In .ExecQuery("SELECT * FROM Win32_ComputerSystem") + If Not IsDBNull(ComputerSystem) Then + If Not IsDBNull(ComputerSystem.Manufacturer) Then + Dim ManufacturerComputerSystem = LCase(CStr(ComputerSystem.Manufacturer)) + If ManufacturerComputerSystem = "innotek gmbh" Then + 'test + Return "Win32_ComputerSystem ==> ComputerSystem.Manufacturer ==> " & ComputerSystem.Manufacturer + End If + End If + If Not IsDBNull(ComputerSystem.Model) Then + Dim ModelComputerSystem = LCase(CStr(ComputerSystem.Model)) + If ModelComputerSystem = "virtualbox" Then + + Return "Win32_ComputerSystem ==> ComputerSystem.Model ==> " & ComputerSystem.Model + End If + End If + If Not IsDBNull(ComputerSystem.OEMStringArray) Then + Dim OEMStringArrayComputerSystem = ComputerSystem.OEMStringArray + For Each OEM In OEMStringArrayComputerSystem + Dim OEM_l = LCase(OEM) + If InStr(1, OEM_l, "vboxver_") > 0 Or InStr(1, OEM_l, "vboxrev_") > 0 Then + 'test + Return "Win32_ComputerSystem ==> ComputerSystem.OEMStringArray ==> " & OEM + End If + Next + End If + End If + Next + + + For Each Service In .ExecQuery("SELECT * FROM Win32_Service") + If Not IsDBNull(Service) Then + If Not IsDBNull(Service.Caption) Then + Dim CaptionService = LCase(CStr(Service.Caption)) + If CaptionService = "virtualbox guest additions service" Then + 'test + Return "Win32_Service ==> Service.Caption ==> " & Service.Caption + End If + End If + If Not IsDBNull(Service.DisplayName) Then + Dim DisplayNameService = LCase(CStr(Service.DisplayName)) + If DisplayNameService = "virtualbox guest additions service" Then + 'test + Return "Win32_Service ==> Service.DisplayName ==> " & Service.DisplayName + End If + End If + If Not IsDBNull(Service.Name) Then + Dim NameService = LCase(CStr(Service.Name)) + If NameService = "vboxservice" Then + 'test + Return "Win32_Service ==> Service.Name ==> " & Service.Name + End If + End If + If Not IsDBNull(Service.PathName) Then + Dim PathNameService = LCase(CStr(Service.PathName)) + If InStr(1, PathNameService, "vboxservice.exe") > 0 Then + 'test + Return "Win32_Service ==> Service.PathName ==> " & Service.PathName + End If + End If + End If + Next + + + For Each LogicalDisk In .ExecQuery("SELECT * FROM Win32_LogicalDisk") + If Not IsDBNull(LogicalDisk) Then + If Not IsDBNull(LogicalDisk.DriveType) Then + If LogicalDisk.DriveType = 3 Then + If Not IsDBNull(LogicalDisk.VolumeSerialNumber) Then + Dim VolumeSerialNumberLogicalDisk = LCase(LogicalDisk.VolumeSerialNumber) + If VolumeSerialNumberLogicalDisk = "fceae0a3" Then + 'test + Return "Win32_LogicalDisk ==> LogicalDisk.VolumeSerialNumber ==> " & LogicalDisk.VolumeSerialNumber + End If + End If + ElseIf LogicalDisk.DriveType = 5 Then + If Not IsDBNull(LogicalDisk.VolumeName) Then + Dim VolumeNameLogicalDisk = LCase(LogicalDisk.VolumeName) + 'Volume name should be "VBOXADDITIONS_4." + If InStr(1, VolumeNameLogicalDisk, "vboxadditions") > 0 Then + + Return "Win32_LogicalDisk ==> LogicalDisk.VolumeName ==> " & LogicalDisk.VolumeName + End If + End If + End If + End If + End If + Next + + '////////////////////////////////////////////////////////////////////////// + + + For Each LocalProgramGroup In .ExecQuery("SELECT * FROM Win32_LogicalProgramGroup") + If Not IsDBNull(LocalProgramGroup) Then + Dim NameLocalProgramGroup = LCase(LocalProgramGroup.Name) + If InStr(1, NameLocalProgramGroup, "oracle vm virtualbox guest additions") > 0 Then + 'test + Return "Win32_LogicalProgramGroup ==> LocalProgramGroup.Name ==> " & LocalProgramGroup.Name + End If + End If + Next + + + + 'Win32_NetworkAdapter aka NIC + For Each NIC_x In .ExecQuery("SELECT * FROM Win32_NetworkAdapter") + If Not IsDBNull(NIC_x.MACAddress) And Not IsDBNull(NIC_x.Description) Then + Dim MacAddress_x = LCase(CStr(NIC_x.MACAddress)) + Dim Description_x = LCase(CStr(NIC_x.Description)) + 'We want to detect the VirtualBox guest, not the host + If InStr(1, MacAddress_x, "08:00:27:") = 1 And InStr(1, Description_x, "virtualbox") = 0 Then + 'test + Return "Wow: Win32_NetworkAdapter ==> NIC.MacAddress: " & NIC_x.MACAddress + End If + End If + Next + + + 'Win32_Process aka process + For Each Process In .ExecQuery("SELECT * FROM Win32_Process") + If Not IsDBNull(Process) Then + If Not IsDBNull(Process.Description) Then + Dim DescProcess = LCase(Process.Description) + If DescProcess = "vboxservice.exe" Or DescProcess = "vboxtray.exe" Then + 'test + Return "Win32_Process ==> Process.Description ==> " & Process.Description + End If + End If + If Not IsDBNull(Process.Name) Then + Dim NameProcess = LCase(Process.Name) + If NameProcess = "vboxservice.exe" Or NameProcess = "vboxtray.exe" Then + ''test "Win32_Process ==> Process.Name ==> " & Process.Name + Return True + End If + End If + If Not IsDBNull(Process.CommandLine) Then + Dim CmdProcess = LCase(Process.CommandLine) + If InStr(1, CmdProcess, "vboxservice.exe") > 0 Or InStr(1, CmdProcess, "vboxtray.exe") > 0 Then + 'test + Return "Win32_Service ==> Process.CommandLine ==> " & Process.CommandLine + End If + End If + If Not IsDBNull(Process.ExecutablePath) Then + Dim ExePathProcess = LCase(Process.ExecutablePath) + If InStr(1, ExePathProcess, "vboxservice.exe") > 0 Or InStr(1, ExePathProcess, "vboxtray.exe") > 0 Then + ''test + Return "Win32_Service ==> Process.ExecutablePath ==> " & Process.ExecutablePath + End If + End If + End If + Next + + 'Win32_BaseBoard aka BaseBoard + + For Each BaseBoard In .ExecQuery("SELECT * FROM Win32_BaseBoard") + If Not IsDBNull(BaseBoard) Then + If Not IsDBNull(BaseBoard.Manufacturer) Then + Dim ManufacturerBaseBoard = LCase(BaseBoard.Manufacturer) + If ManufacturerBaseBoard = "oracle corporation" Then + ''test + Return "Win32_BaseBoard ==> BaseBoard.Manufacturer ==> " & BaseBoard.Manufacturer + End If + End If + If Not IsDBNull(BaseBoard.Product) Then + Dim ProductBaseBoard = LCase(BaseBoard.Product) + If ProductBaseBoard = "virtualbox" Then + ''test + Return "Win32_BaseBoard ==> BaseBoard.Product ==> " & BaseBoard.Product + End If + End If + End If + Next + + 'Win32_SystemEnclosure aka SystemEnclosure + + For Each SystemEnclosure In .ExecQuery("SELECT * FROM Win32_SystemEnclosure") + If Not IsDBNull(SystemEnclosure) Then + If Not IsDBNull(SystemEnclosure.Manufacturer) Then + Dim ManufacturerSystemEnclosure = LCase(SystemEnclosure.Manufacturer) + If ManufacturerSystemEnclosure = "oracle corporation" Then + 'test + Return "Win32_SystemEnclosure ==> SystemEnclosure.Manufacturer ==> " & SystemEnclosure.Manufacturer + End If + End If + End If + Next + + 'Win32_CDROMDrive aka cdrom + For Each CDRom In .ExecQuery("SELECT * FROM Win32_CDROMDrive") + If Not IsDBNull(CDRom) Then + If Not IsDBNull(CDRom.Name) Then + Dim NameCDRom = LCase(CDRom.Name) + If NameCDRom = "vbox cd-rom" Then + 'test + Return "Win32_CDROMDrive ==> CDRom.Name ==> " & CDRom.Name + End If + End If + If Not IsDBNull(CDRom.VolumeName) Then + Dim VolumeNameCDRom = LCase(CDRom.VolumeName) + 'Volume name should be "VBOXADDITIONS_4." + If InStr(1, VolumeNameCDRom, "vboxadditions") > 0 Then + 'test + Return "Win32_CDROMDrive ==> CDRom.VolumeName ==> " & CDRom.VolumeName + End If + End If + If Not IsDBNull(CDRom.DeviceID) Then + Dim DeviceIDCDRom = LCase(CDRom.DeviceID) + If InStr(1, DeviceIDCDRom, "cdromvbox") > 0 Then + 'test + Return "Win32_CDROMDrive ==> CDRom.DeviceID ==> " & CDRom.DeviceID + End If + End If + If Not IsDBNull(CDRom.PNPDeviceID) Then + Dim PNPDeviceIDCDRom = LCase(CDRom.PNPDeviceID) + If InStr(1, PNPDeviceIDCDRom, "cdromvbox") > 0 Then + + Return "Win32_CDROMDrive ==> CDRom.PNPDeviceID ==> " & CDRom.PNPDeviceID + End If + End If + End If + Next + + + 'WIN32_NetworkClient aka netclient + For Each NetClient In .ExecQuery("SELECT * FROM WIN32_NetworkClient") + If Not IsDBNull(NetClient) Then + If Not IsDBNull(NetClient.Description) Then + Dim DescNetClient = LCase(NetClient.Description) + If DescNetClient = "vboxsf" Then + 'test + Return "WIN32_NetworkClient ==> NetClient.Description ==> " & NetClient.Description + End If + End If + If Not IsDBNull(NetClient.Manufacturer) Then + Dim ManufacturerNetClient = LCase(NetClient.Manufacturer) + If ManufacturerNetClient = "oracle corporation" Then + 'test + Return "WIN32_NetworkClient ==> NetClient.Manufacturer ==> " & NetClient.Manufacturer + End If + End If + If Not IsDBNull(NetClient.Name) Then + Dim NameNetClient = LCase(NetClient.Name) + If NameNetClient = "virtualbox shared folders" Then + 'test + Return "WIN32_NetworkClient ==> NetClient.Name ==> " & NetClient.Name + End If + End If + End If + Next + + 'Win32_ComputerSystemProduct aka csproduct + + For Each CSProduct In .ExecQuery("SELECT * FROM Win32_ComputerSystemProduct") + If Not IsDBNull(CSProduct) Then + If Not IsDBNull(CSProduct.Name) Then + Dim NameCSProduct = LCase(CSProduct.Name) + If NameCSProduct = "virtualbox" Then + 'test + Return "Win32_ComputerSystemProduct ==> CSProduct.Name ==> " & CSProduct.Name + End If + End If + If Not IsDBNull(CSProduct.Vendor) Then + Dim VendorCSProduct = LCase(CSProduct.Vendor) + If VendorCSProduct = "innotek gmbh" Then + 'test + Return "Win32_ComputerSystemProduct ==> CSProduct.Vendor ==> " & CSProduct.Vendor + End If + End If + End If + Next + + 'Win32_VideoController + + For Each VideoController In .ExecQuery("SELECT * FROM Win32_VideoController") + If Not IsDBNull(VideoController) Then + If Not IsDBNull(VideoController.Name) Then + Dim NameVideoController = LCase(VideoController.Name) + If NameVideoController = "virtualbox graphics adapter" Then + 'test + Return "Win32_VideoController ==> VideoController.Name ==> " & VideoController.Name + End If + End If + If Not IsDBNull(VideoController.Description) Then + Dim DescVideoController = LCase(VideoController.Description) + If DescVideoController = "virtualbox graphics adapter" Then + 'test + Return "Win32_VideoController ==> VideoController.Description ==> " & VideoController.Description + End If + End If + If Not IsDBNull(VideoController.Caption) Then + Dim CaptionVideoController = LCase(VideoController.Caption) + If CaptionVideoController = "virtualbox graphics adapter" Then + 'test + Return "Win32_VideoController ==> VideoController.Caption ==> " & VideoController.Caption + End If + End If + If Not IsDBNull(VideoController.VideoProcessor) Then + Dim VideoProcessorVideoController = LCase(VideoController.VideoProcessor) + If VideoProcessorVideoController = "vbox" Then + + Return "Win32_VideoController ==> VideoController.VideoProcessor ==> " & VideoController.VideoProcessor + End If + End If + If Not IsDBNull(VideoController.InstalledDisplayDrivers) Then + Dim InstalledDisplayDriversVideoController = LCase(VideoController.InstalledDisplayDrivers) + If InstalledDisplayDriversVideoController = "vboxdisp.sys" Then + 'test + Return "Win32_VideoController ==> VideoController.InstalledDisplayDrivers ==> " & VideoController.InstalledDisplayDrivers + End If + End If + If Not IsDBNull(VideoController.InfSection) Then + Dim InfSectionVideoController = LCase(VideoController.InfSection) + If InfSectionVideoController = "vboxvideo" Then + 'test + Return "Win32_VideoController ==> VideoController.InfSection ==> " & VideoController.InfSection + End If + End If + If Not IsDBNull(VideoController.AdapterCompatibility) Then + Dim AdapterCompatibilityVideoController = LCase(VideoController.AdapterCompatibility) + If AdapterCompatibilityVideoController = "oracle corporation" Then + 'test + Return "Win32_VideoController ==> VideoController.AdapterCompatibility ==> " & VideoController.AdapterCompatibility + End If + End If + End If + Next + + + 'Win32_PnPEntity + + For Each PnPEntity In .ExecQuery("SELECT * FROM Win32_PnPEntity") + If Not IsDBNull(PnPEntity) Then + If Not IsDBNull(PnPEntity.Name) Then + Dim NamePnPEntity = LCase(PnPEntity.Name) + If NamePnPEntity = "virtualbox device" Or NamePnPEntity = "vbox harddisk" Or NamePnPEntity = "vbox cd-rom" Or NamePnPEntity = "virtualbox graphics adapter" Then + 'test + Return "Win32_PnPEntity ==> PnPEntity.Name ==> " & PnPEntity.Name + End If + End If + If Not IsDBNull(PnPEntity.Caption) Then + Dim CaptionPnPEntity = LCase(PnPEntity.Caption) + If CaptionPnPEntity = "virtualbox device" Or CaptionPnPEntity = "vbox harddisk" Or CaptionPnPEntity = "vbox cd-rom" Or CaptionPnPEntity = "virtualbox graphics adapter" Then + 'test + Return "Win32_PnPEntity ==> PnPEntity.Caption ==> " & PnPEntity.Caption + End If + End If + If Not IsDBNull(PnPEntity.Description) Then + Dim DescPnPEntity = LCase(PnPEntity.Description) + If DescPnPEntity = "virtualbox device" Or DescPnPEntity = "virtualbox graphics adapter" Then + + Return "Win32_PnPEntity ==> PnPEntity.Description ==> " & PnPEntity.Description + End If + End If + If Not IsDBNull(PnPEntity.Service) Then + Dim SrvPnPEntity = LCase(PnPEntity.Service) + If SrvPnPEntity = "vboxguest" Or SrvPnPEntity = "vboxvideo" Then + + Return "Win32_PnPEntity ==> PnPEntity.Service ==> " & PnPEntity.Service + End If + End If + If Not IsDBNull(PnPEntity.DeviceID) Then + Dim DeviceIDPnPEntity = LCase(PnPEntity.DeviceID) + If InStr(1, DeviceIDPnPEntity, "diskvbox_") > 0 Or InStr(1, DeviceIDPnPEntity, "cdromvbox_") > 0 Then + 'test + Return "Win32_PnPEntity ==> PnPEntity.DeviceID ==> " & PnPEntity.DeviceID + End If + End If + If Not IsDBNull(PnPEntity.PNPDeviceID) Then + Dim PNPDeviceIDPnPEntity = LCase(PnPEntity.PNPDeviceID) + If InStr(1, PNPDeviceIDPnPEntity, "diskvbox_") > 0 Or InStr(1, PNPDeviceIDPnPEntity, "cdromvbox_") > 0 Then + 'test + Return "Win32_PnPEntity ==> PnPEntity.PNPDeviceID ==> " & PnPEntity.PNPDeviceID + End If + End If + End If + Next + + 'Win32_NetworkConnection aka NetUse + + For Each NetUse In .ExecQuery("SELECT * FROM Win32_NetworkConnection") + If Not IsDBNull(NetUse) Then + If Not IsDBNull(NetUse.Name) Then + Dim NameNetUse = LCase(NetUse.Name) + If InStr(1, NameNetUse, "vboxsvr") > 0 Then + 'test + Return "Win32_NetworkConnection ==> NetUse.Name ==> " & NetUse.Name + End If + End If + If Not IsDBNull(NetUse.Description) Then + Dim DescNetUse = LCase(NetUse.Description) + If InStr(1, DescNetUse, "virtualbox shared folders") > 0 Then + 'test + Return "Win32_NetworkConnection ==> NetUse.Description ==> " & NetUse.Description + End If + End If + If Not IsDBNull(NetUse.ProviderName) Then + Dim PrvNameNetUse = LCase(NetUse.ProviderName) + If PrvNameNetUse = "virtualbox shared folders" Then + 'test + Return "Win32_NetworkConnection ==> NetUse.ProviderName ==> " & NetUse.ProviderName + End If + End If + + If Not IsDBNull(NetUse.RemoteName) Then + Dim RemoteNameNetUse = LCase(NetUse.RemoteName) + If InStr(1, RemoteNameNetUse, "vboxsvr") > 0 Then + 'test + Return "Win32_NetworkConnection ==> NetUse.RemoteName ==> " & NetUse.RemoteName + End If + End If + If Not IsDBNull(NetUse.RemotePath) Then + Dim RemotePathNetUse = LCase(NetUse.RemotePath) + If InStr(1, RemotePathNetUse, "vboxsvr") > 0 Then + 'test + Return "Win32_NetworkConnection ==> NetUse.RemotePath ==> " & NetUse.RemotePath + End If + End If + End If + Next + + End With + Return "False" + End Function + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtectionLib/DestroyerCore/DestroyerProtect.vb b/DestroyerProtectionLib/DestroyerCore/DestroyerProtect.vb new file mode 100644 index 0000000..993f314 --- /dev/null +++ b/DestroyerProtectionLib/DestroyerCore/DestroyerProtect.vb @@ -0,0 +1,240 @@ +Imports System.ComponentModel +Imports DestroyerProtectionLib.Destroyer.AntiDebug +Imports DestroyerProtectionLib.Destroyer.AntiVirtualMachine +Imports DestroyerProtectionLib.Destroyer.AntiAnalysis +Imports DestroyerProtectionLib.Destroyer.AntiDump +Imports System.Windows.Forms + +Namespace Destroyer.Protect + Public Class DestroyerProtect + +#Region " Properties " + + Private Shared _Process_scanner As ResultType = ResultType.Indeterminate + Public Shared ReadOnly Property Process_scanner As ResultType + Get + Return _Process_scanner + End Get + End Property + + Private Shared _Debugers_scanner As ResultType = ResultType.Indeterminate + Public Shared ReadOnly Property Debugers_scanner As ResultType + Get + Return _Debugers_scanner + End Get + End Property + + Private Shared _VM_scanner As ResultType = ResultType.Indeterminate + Public Shared ReadOnly Property VM_scanner As ResultType + Get + Return _VM_scanner + End Get + End Property + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + + Private Shared _DetectDescription As String = String.Empty + Public Shared ReadOnly Property DetectDescription As String + Get + Return _DetectDescription + End Get + End Property + +#End Region + +#Region " Types " + + Public Enum ResultType + Secure = 0 + Danger = 1 + Indeterminate = 2 + IError = 3 + End Enum + + Public Enum VMScanType + By_Directory_Known = 0 + By_Generalized_Name = 1 + None = 2 + End Enum + +#End Region + +#Region " Methods " + + Private Shared Pscan As MainAnalysis.SearchType + Private Shared Dscan As MainDebug.DebugDetectionTypes + Private Shared VMscan As VMScanType + Private Shared tmrFormMonitor As System.Windows.Forms.Timer = New System.Windows.Forms.Timer() + + Public Shared Sub Start(ByVal ProcessScan As MainAnalysis.SearchType, ByVal DebugScan As MainDebug.DebugDetectionTypes, _ + ByVal VMScanType As VMScanType, Optional EnableAntiDump As Boolean = False, Optional MainForm As Form = Nothing) + Execution_Start() + _Process_scanner = ResultType.Indeterminate + _Debugers_scanner = ResultType.Indeterminate + _VM_scanner = ResultType.Indeterminate + Pscan = ProcessScan + Dscan = DebugScan + VMscan = VMScanType + If EnableAntiDump = True Then + MainDump.AntiDumpEnabled(MainForm) + _LogResult += MainDump.LogResult & vbNewLine + End If + AddHandler tmrFormMonitor.Tick, New System.EventHandler(AddressOf tmrFormMonitor_Tick) + tmrFormMonitor.Interval = 100 + tmrFormMonitor.Enabled = True + Dim t = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf StartAnalisys)) + t.Start() + End Sub + + Private Shared Sub tmrFormMonitor_Tick(ByVal sender As Object, ByVal e As EventArgs) + If VMscan = VMScanType.By_Generalized_Name Then + Dim VMDetection As OldAntiVM.ResultType = OldAntiVM.IsVirtualMachinePresent + Dim VMDescription As String = OldAntiVM.DescriptcionVM + + If VMDetection = OldAntiVM.ResultType.Danger Then + _VM_scanner = ResultType.Danger + _DetectDescription += "Virtual Machine Detected : " & VMDescription & vbNewLine + Execution_End() + tmrFormMonitor.Enabled = False + ElseIf VMDetection = OldAntiVM.ResultType.Secure Then + _VM_scanner = ResultType.Secure + Execution_End() + tmrFormMonitor.Enabled = False + End If + End If + End Sub + + Private Shared Sub StartAnalisys() + + If Not Pscan = MainAnalysis.SearchType.None Then + If MainAnalysis.Malicious_Processes_Found(Pscan) = True Then + _Process_scanner = ResultType.Danger + _DetectDescription += MainAnalysis.LogResult & vbNewLine + Else + _Process_scanner = ResultType.Secure + End If + End If + + If Not Dscan = MainDebug.DebugDetectionTypes.None Then + + If MainDebug.Debugger_Check(Dscan) = True Then + _Debugers_scanner = ResultType.Danger + _DetectDescription += MainDebug.LogResult & vbNewLine + Else + _Debugers_scanner = ResultType.Secure + End If + + End If + + If Not VMscan = VMScanType.None Then + If VMscan = VMScanType.By_Directory_Known Then + If MainVM.VirtualMachine_Check() = True Then + _VM_scanner = ResultType.Danger + _DetectDescription += MainVM.LogResult & vbNewLine + Else + _VM_scanner = ResultType.Secure + End If + Execution_End() + ElseIf VMscan = VMScanType.By_Generalized_Name Then + OldAntiVM.VM_Start() + End If + End If + + End Sub + + Private Shared PscanMonitor As MainAnalysis.SearchType + Private Shared DscanMonitor As MainDebug.DebugDetectionTypes + + Public Shared Sub MonitorAsync(ByVal ProcessMonitoreScan As MainAnalysis.SearchType, ByVal DebugMonitoreScan As MainDebug.DebugDetectionTypes, Optional VmScanAsyncro As VMScanType = VMScanType.None) + _Process_scanner = ResultType.Indeterminate + _Debugers_scanner = ResultType.Indeterminate + PscanMonitor = ProcessMonitoreScan + DscanMonitor = DebugMonitoreScan + If Not VmScanAsyncro = VMScanType.None Then + VMscan = VmScanAsyncro + AddHandler tmrFormMonitor.Tick, New System.EventHandler(AddressOf tmrFormMonitor_Tick) + tmrFormMonitor.Interval = 100 + tmrFormMonitor.Enabled = True + End If + Dim EngineThread As New Task(ProcessAsyncMonitoring, TaskCreationOptions.LongRunning) + EngineThread.Start() + Execution_Start() + End Sub + + Private Shared ProcessAsyncMonitoring As New Action( + Sub() + Do While True + + If Not PscanMonitor = MainAnalysis.SearchType.None Then + If MainAnalysis.Malicious_Processes_Found(PscanMonitor) = True Then + _DetectDescription += MainAnalysis.LogResult & vbNewLine + _Process_scanner = ResultType.Danger + Execution_End() + End If + End If + + If Not DscanMonitor = MainDebug.DebugDetectionTypes.None Then + If MainDebug.Debugger_Check(DscanMonitor) = True Then + _DetectDescription += MainDebug.LogResult & vbNewLine + _Debugers_scanner = ResultType.Danger + Execution_End() + End If + End If + + If Not VMscan = VMScanType.None Then + If VMscan = VMScanType.By_Directory_Known Then + If MainVM.VirtualMachine_Check() = True Then + _DetectDescription += MainVM.LogResult & vbNewLine + _VM_scanner = ResultType.Danger + Else + _VM_scanner = ResultType.Secure + End If + Execution_End() + ElseIf VMscan = VMScanType.By_Generalized_Name Then + OldAntiVM.VM_Start() + End If + End If + + Loop + End Sub) + +#End Region + +#Region " Execution Time " + + ' [ Code Execution Time ] + ' + ' Examples : + ' Execution_Start() : Threading.Thread.Sleep(500) : Execution_End() + + Private Shared Execution_Watcher As New Stopwatch + + Private Shared Sub Execution_Start() + If Execution_Watcher.IsRunning Then Execution_Watcher.Restart() + Execution_Watcher.Start() + End Sub + + Private Shared Sub Execution_End() + If Execution_Watcher.IsRunning Then + _LogResult += vbNewLine + _LogResult += " +Elapsed Time: " & Execution_Watcher.Elapsed.Hours & "h" & _ + ":" & Execution_Watcher.Elapsed.Minutes & "m" & _ + ":" & Execution_Watcher.Elapsed.Seconds & "s" & _ + ":" & Execution_Watcher.Elapsed.Milliseconds & "ms" & vbNewLine & vbNewLine + Execution_Watcher.Reset() + Else + + + End If + End Sub + +#End Region + + End Class +End Namespace + diff --git a/DestroyerProtectionLib/DestroyerCore/DirAnalysis/MainDirScan.vb b/DestroyerProtectionLib/DestroyerCore/DirAnalysis/MainDirScan.vb new file mode 100644 index 0000000..e963206 --- /dev/null +++ b/DestroyerProtectionLib/DestroyerCore/DirAnalysis/MainDirScan.vb @@ -0,0 +1,65 @@ +Imports System.IO + +Namespace Destroyer + + Public Class MainDirScan + +#Region " Properties " + + Private Shared _LogResult As String = String.Empty + Public Shared ReadOnly Property LogResult As String + Get + Return _LogResult + End Get + End Property + +#End Region + +#Region " Declare's " + + Dim MaliciusFolderName() As String = {"de4dot", _ + "dnSpy"} + + Public ReadOnly Property ResultDirScan As Boolean + Get + Return MaliciousDir() + End Get + End Property + +#End Region + +#Region " Methods " + + Public Function MaliciousDir() As Boolean + Dim DirRoaming As List(Of String) = GetFolders(GetAppDataPath()) + + For Each FolderPth As String In DirRoaming + Dim FolderN As String = LCase(System.IO.Path.GetFileName(FolderPth)) + For Each FolderMname As String In MaliciusFolderName + If CheckString(FolderN, LCase(FolderMname)) = True Then + _LogResult = "Malicious path detected: " & FolderPth & vbNewLine + Return True + End If + Next + Next + + Return False + End Function + + Private Function CheckString(ByVal Foldername As String, ByVal FolderIdent As String) + Return Foldername.Contains(FolderIdent) + End Function + + Private Function GetFolders(ByVal DirP As String) As List(Of String) + Return FileDirSearcher.GetDirPaths(DirP, SearchOption.TopDirectoryOnly).ToList + End Function + + Private Function GetAppDataPath() As String + Return Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + End Function + +#End Region + + End Class + +End Namespace diff --git a/DestroyerProtectionLib/DestroyerCore/FileDirSearcher.vb b/DestroyerProtectionLib/DestroyerCore/FileDirSearcher.vb new file mode 100644 index 0000000..5c3b43e --- /dev/null +++ b/DestroyerProtectionLib/DestroyerCore/FileDirSearcher.vb @@ -0,0 +1,979 @@ +' *********************************************************************** +' Author : Elektro +' Modified : 14-February-2015 +' *********************************************************************** +' +' Copyright (c) Elektro Studios. All rights reserved. +' +' *********************************************************************** + +#Region " Usage Examples " + +'Dim files As List(Of FileInfo) = FileDirSearcher.GetFiles("C:\Windows\System32", SearchOption.AllDirectories).ToList +'Dim files As List(Of String) = FileDirSearcher.GetFilePaths("C:\Windows\System32", SearchOption.AllDirectories).ToList + +'Dim dirs As List(Of DirectoryInfo) = FileDirSearcher.GetDirs("C:\Windows\System32", SearchOption.AllDirectories).ToList +'Dim dirs As List(Of String) = FileDirSearcher.GetDirPaths("C:\Windows\System32", SearchOption.AllDirectories).ToList + +'Dim files As IEnumerable(Of FileInfo) = FileDirSearcher.GetFiles(dirPath:="C:\Windows\System32", +' searchOption:=SearchOption.TopDirectoryOnly, +' fileNamePatterns:={"*"}, +' fileExtPatterns:={"*.dll", "*.exe"}, +' ignoreCase:=True, +' throwOnError:=True) + +'Dim dirs As IEnumerable(Of DirectoryInfo) = FileDirSearcher.GetDirs(dirPath:="C:\Windows\System32", +' searchOption:=SearchOption.TopDirectoryOnly, +' dirPathPatterns:={"*"}, +' dirNamePatterns:={"*Microsoft*"}, +' ignoreCase:=True, +' throwOnError:=True) + +#End Region + +#Region " Option Statements " + +Option Explicit On +Option Strict On +Option Infer Off + +#End Region + +#Region " Imports " + +Imports System.IO +Imports System.Collections.Concurrent +Imports System.Threading.Tasks + +#End Region + +#Region " File Dir Searcher " + +''' +''' Searchs for files and directories. +''' +Public NotInheritable Class FileDirSearcher + +#Region " Public Methods " + + ''' + ''' Gets the files those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The root directory path to search for files. + ''' The searching mode. + ''' The file name pattern(s) to match. + ''' The file extension pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to file or directory. + ''' An instance containing the files information. + ''' dirPath or searchOption + Public Shared Function GetFiles(ByVal dirPath As String, + ByVal searchOption As SearchOption, + Optional ByVal fileNamePatterns As IEnumerable(Of String) = Nothing, + Optional ByVal fileExtPatterns As IEnumerable(Of String) = Nothing, + Optional ByVal ignoreCase As Boolean = True, + Optional ByVal throwOnError As Boolean = False) As IEnumerable(Of FileInfo) + + ' Analyze and fix path problems. + ' eg. 'C:' -> 'C:\' + AnalyzePath(dirPath) + + If Not Directory.Exists(dirPath) Then + Throw New ArgumentException(String.Format("Directory doesn't exists: '{0}'", dirPath), "dirPath") + + ElseIf (searchOption <> searchOption.TopDirectoryOnly) AndAlso (searchOption <> searchOption.AllDirectories) Then + Throw New ArgumentException(String.Format("Value of '{0}' is not valid enumeration value.", CStr(searchOption)), "searchOption") + + Else ' Get and return the files. + Dim queue As New ConcurrentQueue(Of FileInfo) + CollectFiles(queue, dirPath, searchOption, fileNamePatterns, fileExtPatterns, ignoreCase, throwOnError) + Return queue.AsEnumerable + + End If + + End Function + + ''' + ''' Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The root directory path to search for files. + ''' The searching mode. + ''' The file name pattern(s) to match. + ''' The file extension pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to file or directory. + ''' An instance containing the filepaths. + ''' dirPath or searchOption + Public Shared Function GetFilePaths(ByVal dirPath As String, + ByVal searchOption As SearchOption, + Optional ByVal fileNamePatterns As IEnumerable(Of String) = Nothing, + Optional ByVal fileExtPatterns As IEnumerable(Of String) = Nothing, + Optional ByVal ignoreCase As Boolean = True, + Optional ByVal throwOnError As Boolean = False) As IEnumerable(Of String) + + ' Analyze and fix path problems. + ' eg. 'C:' -> 'C:\' + AnalyzePath(dirPath) + + If Not Directory.Exists(dirPath) Then + Throw New ArgumentException(String.Format("Directory doesn't exists: '{0}'", dirPath), "dirPath") + + ElseIf (searchOption <> searchOption.TopDirectoryOnly) AndAlso (searchOption <> searchOption.AllDirectories) Then + Throw New ArgumentException(String.Format("Value of '{0}' is not valid enumeration value.", CStr(searchOption)), "searchOption") + + Else ' Get and return the filepaths. + Dim queue As New ConcurrentQueue(Of String) + CollectFilePaths(queue, dirPath, searchOption, fileNamePatterns, fileExtPatterns, ignoreCase, throwOnError) + Return queue.AsEnumerable + + End If + + End Function + + ''' + ''' Gets the directories those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The root directory path to search for directories. + ''' The searching mode. + ''' The directory path pattern(s) to match. + ''' The directory name pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to directory. + ''' An instance containing the dirrectories information. + ''' dirPath or searchOption + Public Shared Function GetDirs(ByVal dirPath As String, + ByVal searchOption As SearchOption, + Optional ByVal dirPathPatterns As IEnumerable(Of String) = Nothing, + Optional ByVal dirNamePatterns As IEnumerable(Of String) = Nothing, + Optional ByVal ignoreCase As Boolean = True, + Optional ByVal throwOnError As Boolean = False) As IEnumerable(Of DirectoryInfo) + + ' Analyze and fix path problems. + ' eg. 'C:' -> 'C:\' + AnalyzePath(dirPath) + + If Not Directory.Exists(dirPath) Then + Throw New ArgumentException(String.Format("Directory doesn't exists: '{0}'", dirPath), "dirPath") + + ElseIf (searchOption <> searchOption.TopDirectoryOnly) AndAlso (searchOption <> searchOption.AllDirectories) Then + Throw New ArgumentException(String.Format("Value of '{0}' is not valid enumeration value.", CStr(searchOption)), "searchOption") + + Else ' Get and return the files. + Dim queue As New ConcurrentQueue(Of DirectoryInfo) + CollectDirs(queue, dirPath, searchOption, dirPathPatterns, dirNamePatterns, ignoreCase, throwOnError) + Return queue.AsEnumerable + + End If + + End Function + + ''' + ''' Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The root directory path to search for directories. + ''' The searching mode. + ''' The directory path pattern(s) to match. + ''' The directory name pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to directory. + ''' An instance containing the directory paths. + ''' dirPath or searchOption + Public Shared Function GetDirPaths(ByVal dirPath As String, + ByVal searchOption As SearchOption, + Optional ByVal dirPathPatterns As IEnumerable(Of String) = Nothing, + Optional ByVal dirNamePatterns As IEnumerable(Of String) = Nothing, + Optional ByVal ignoreCase As Boolean = True, + Optional ByVal throwOnError As Boolean = False) As IEnumerable(Of String) + + ' Analyze and fix path problems. + ' eg. 'C:' -> 'C:\' + AnalyzePath(dirPath) + + If Not Directory.Exists(dirPath) Then + Throw New ArgumentException(String.Format("Directory doesn't exists: '{0}'", dirPath), "dirPath") + + ElseIf (searchOption <> searchOption.TopDirectoryOnly) AndAlso (searchOption <> searchOption.AllDirectories) Then + Throw New ArgumentException(String.Format("Value of '{0}' is not valid enumeration value.", CStr(searchOption)), "searchOption") + + Else ' Get and return the filepaths. + Dim queue As New ConcurrentQueue(Of String) + CollectDirPaths(queue, dirPath, searchOption, dirPathPatterns, dirNamePatterns, ignoreCase, throwOnError) + Return queue.AsEnumerable + + End If + + End Function + +#End Region + +#Region " Private Methods " + + ''' + ''' Analyzes a directory path and perform specific changes on it. + ''' + ''' The directory path. + ''' dirPath;Value is null, empty, or white-spaced. + Private Shared Sub AnalyzePath(ByRef dirPath As String) + + If String.IsNullOrEmpty(dirPath) OrElse String.IsNullOrWhiteSpace(dirPath) Then + Throw New ArgumentNullException("dirPath", "Value is null, empty, or white-spaced.") + + Else + ' Trim unwanted characters. + dirPath = dirPath.TrimStart({" "c}).TrimEnd({" "c}) + + If Path.IsPathRooted(dirPath) Then + ' The root paths contained on the returned FileInfo objects will start with the same string-case as this root path. + ' So just for a little visual improvement, I'll treat this root path as a Drive-Letter and I convert it to UpperCase. + dirPath = Char.ToUpper(dirPath.First) & dirPath.Substring(1) + End If + + If Not dirPath.EndsWith("\"c) Then + ' Possibly its a drive letter without backslash ('C:') or else just a normal path without backslash ('C\Dir'). + ' In any case, fix the ending backslash. + dirPath = dirPath.Insert(dirPath.Length, "\"c) + End If + + End If + + End Sub + + ''' + ''' Collects the files those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The instance to enqueue new files. + ''' The root directory path to search for files. + ''' The searching mode. + ''' The file name pattern(s) to match. + ''' The file extension pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to file or directory. + Private Shared Sub CollectFiles(ByVal queue As ConcurrentQueue(Of FileInfo), + ByVal dirPath As String, + ByVal searchOption As SearchOption, + ByVal fileNamePatterns As IEnumerable(Of String), + ByVal fileExtPatterns As IEnumerable(Of String), + ByVal ignoreCase As Boolean, + ByVal throwOnError As Boolean) + + ' Initialize a DirectoryInfo. + Dim dirInfo As DirectoryInfo = Nothing + + ' Initialize a FileInfo collection. + Dim fileInfoCol As IEnumerable(Of FileInfo) = Nothing + + Try ' Set up a new DirectoryInfo instance using the passed directory path. + dirInfo = New DirectoryInfo(dirPath) + + Catch ex As ArgumentNullException + If throwOnError Then + Throw + End If + + Catch ex As ArgumentException + If throwOnError Then + Throw + End If + + Catch ex As Security.SecurityException + If throwOnError Then + Throw + End If + + Catch ex As PathTooLongException + If throwOnError Then + Throw + End If + + End Try + + Try ' Get the top files of the current directory. + + If fileExtPatterns IsNot Nothing Then + ' Decrease time execution by searching for files that has extension. + fileInfoCol = dirInfo.GetFiles("*.*", searchOption.TopDirectoryOnly) + Else + ' Search for all files. + fileInfoCol = dirInfo.GetFiles("*", searchOption.TopDirectoryOnly) + End If + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + ' If the fileInfoCol collection is not empty then... + If fileInfoCol IsNot Nothing Then + + ' Iterate the files. + For Each fInfo As FileInfo In fileInfoCol + + ' Flag to determine whether a filename pattern is matched. + Dim flagNamePattern As Boolean = False + + ' Flag to determine whether a file extension pattern is matched. + Dim flagExtPattern As Boolean = False + + ' If filename patterns collection is not empty then... + If fileNamePatterns IsNot Nothing Then + + ' Iterate the filename pattern(s). + For Each fileNamePattern As String In fileNamePatterns + + ' Match the filename pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If fileNamePattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagNamePattern = True ' Activate the filename flag. + Exit For + + ElseIf ignoreCase Then ' Compare filename with ignoring case rules. + If fInfo.Name.ToLower Like fileNamePattern.ToLower Then + flagNamePattern = True ' Activate the filename flag. + Exit For + End If + + Else ' Compare filename without ignoring case rules. + If fInfo.Name Like fileNamePattern Then + flagNamePattern = True ' Activate the filename flag. + Exit For + End If + + End If ' ignoreCase + + Next fileNamePattern + + Else ' filename patterns collection is empty. + flagNamePattern = True ' Activate the filename flag. + + End If ' fileNamePatterns IsNot Nothing + + ' If file extension patterns collection is not empty then... + If fileExtPatterns IsNot Nothing Then + + ' Iterate the file extension pattern(s). + For Each fileExtPattern As String In fileExtPatterns + + ' Match the file extension pattern on the current file extension. + + ' Supress consecuent conditionals if pattern its an asterisk. + If fileExtPattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + + ElseIf ignoreCase Then ' Compare filename with ignoring case rules. + If fInfo.Extension.ToLower Like fileExtPattern.ToLower Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + End If + + Else ' Compare filename without ignoring case rules. + If fInfo.Extension Like fileExtPattern Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + End If + + End If + + Next fileExtPattern + + Else ' file extension patterns collection is empty. + flagExtPattern = True ' Activate the file extension flag. + + End If ' fileExtPatterns IsNot Nothing + + ' If fileName and also fileExtension patterns are matched then... + If flagNamePattern AndAlso flagExtPattern Then + queue.Enqueue(fInfo) ' Enqueue this FileInfo object. + End If + + Next fInfo + + End If ' fileInfoCol IsNot Nothing + + ' If searchOption is recursive then... + If searchOption = searchOption.AllDirectories Then + + Try + ' Try next iterations. + Task.WaitAll(dirInfo.GetDirectories. + Select(Function(dir As DirectoryInfo) + Return Task.Factory.StartNew(Sub() + CollectFiles(queue, + dir.FullName, searchOption.AllDirectories, + fileNamePatterns, fileExtPatterns, + ignoreCase, throwOnError) + End Sub) + End Function).ToArray) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + End If ' searchOption = searchOption.AllDirectories + + End Sub + + ''' + ''' Collects the filepaths those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The instance to enqueue new filepaths. + ''' The root directory path to search for files. + ''' The searching mode. + ''' The file name pattern(s) to match. + ''' The file extension pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to file or directory. + Private Shared Sub CollectFilePaths(ByVal queue As ConcurrentQueue(Of String), + ByVal dirPath As String, + ByVal searchOption As SearchOption, + ByVal fileNamePatterns As IEnumerable(Of String), + ByVal fileExtPatterns As IEnumerable(Of String), + ByVal ignoreCase As Boolean, + ByVal throwOnError As Boolean) + + ' Initialize a filepath collection. + Dim filePathCol As IEnumerable(Of String) = Nothing + + Try ' Get the top files of the current directory. + + If fileExtPatterns IsNot Nothing Then + ' Decrease time execution by searching for files that has extension. + filePathCol = Directory.GetFiles(dirPath, "*.*", searchOption.TopDirectoryOnly) + Else + ' Search for all files. + filePathCol = Directory.GetFiles(dirPath, "*", searchOption.TopDirectoryOnly) + End If + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + ' If the filepath collection is not empty then... + If filePathCol IsNot Nothing Then + + ' Iterate the filepaths. + For Each filePath As String In filePathCol + + ' Flag to determine whether a filename pattern is matched. + Dim flagNamePattern As Boolean = False + + ' Flag to determine whether a file extension pattern is matched. + Dim flagExtPattern As Boolean = False + + ' If filename patterns collection is not empty then... + If fileNamePatterns IsNot Nothing Then + + ' Iterate the filename pattern(s). + For Each fileNamePattern As String In fileNamePatterns + + ' Match the filename pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If fileNamePattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagNamePattern = True ' Activate the filename flag. + Exit For + + ElseIf ignoreCase Then ' Compare filename with ignoring case rules. + If Path.GetFileNameWithoutExtension(filePath).ToLower Like fileNamePattern.ToLower Then + flagNamePattern = True ' Activate the filename flag. + Exit For + End If + + Else ' Compare filename without ignoring case rules. + If Path.GetFileNameWithoutExtension(filePath) Like fileNamePattern Then + flagNamePattern = True ' Activate the filename flag. + Exit For + End If + + End If ' ignoreCase + + Next fileNamePattern + + Else ' filename patterns collection is empty. + flagNamePattern = True ' Activate the filename flag. + + End If ' fileNamePatterns IsNot Nothing + + ' If file extension patterns collection is not empty then... + If fileExtPatterns IsNot Nothing Then + + ' Iterate the file extension pattern(s). + For Each fileExtPattern As String In fileExtPatterns + + ' Match the file extension pattern on the current file extension. + + ' Supress consecuent conditionals if pattern its an asterisk. + If fileExtPattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + + ElseIf ignoreCase Then ' Compare filename with ignoring case rules. + If Path.GetExtension(filePath).ToLower Like fileExtPattern.ToLower Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + End If + + Else ' Compare filename without ignoring case rules. + If Path.GetExtension(filePath) Like fileExtPattern Then + flagExtPattern = True ' Activate the file extension flag. + Exit For + End If + + End If + + Next fileExtPattern + + Else ' file extension patterns collection is empty. + flagExtPattern = True ' Activate the file extension flag. + + End If ' fileExtPatterns IsNot Nothing + + ' If fileName and also fileExtension patterns are matched then... + If flagNamePattern AndAlso flagExtPattern Then + queue.Enqueue(filePath) ' Enqueue this filepath. + End If + + Next filePath + + End If ' filePathCol IsNot Nothing + + ' If searchOption is recursive then... + If searchOption = searchOption.AllDirectories Then + + Try + ' Try next iterations. + Task.WaitAll(New DirectoryInfo(dirPath).GetDirectories. + Select(Function(dir As DirectoryInfo) + Return Task.Factory.StartNew(Sub() + CollectFilePaths(queue, + dir.FullName, searchOption.AllDirectories, + fileNamePatterns, fileExtPatterns, + ignoreCase, throwOnError) + End Sub) + End Function).ToArray) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + End If ' searchOption = searchOption.AllDirectories + + End Sub + + ''' + ''' Collects the directories those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The instance to enqueue new directories. + ''' The root directory path to search for directories. + ''' The searching mode. + ''' The directory path pattern(s) to match. + ''' The directory name pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to directory. + Private Shared Sub CollectDirs(ByVal queue As ConcurrentQueue(Of DirectoryInfo), + ByVal dirPath As String, + ByVal searchOption As SearchOption, + ByVal dirPathPatterns As IEnumerable(Of String), + ByVal dirNamePatterns As IEnumerable(Of String), + ByVal ignoreCase As Boolean, + ByVal throwOnError As Boolean) + + ' Initialize a DirectoryInfo. + Dim dirInfo As DirectoryInfo = Nothing + + ' Initialize a DirectoryInfo collection. + Dim dirInfoCol As IEnumerable(Of DirectoryInfo) = Nothing + + Try ' Set up a new DirectoryInfo instance using the passed directory path. + dirInfo = New DirectoryInfo(dirPath) + + Catch ex As ArgumentNullException + If throwOnError Then + Throw + End If + + Catch ex As ArgumentException + If throwOnError Then + Throw + End If + + Catch ex As Security.SecurityException + If throwOnError Then + Throw + End If + + Catch ex As PathTooLongException + If throwOnError Then + Throw + End If + + End Try + + Try ' Get the top directories of the current directory. + dirInfoCol = dirInfo.GetDirectories("*", searchOption.TopDirectoryOnly) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + ' If the fileInfoCol collection is not empty then... + If dirInfoCol IsNot Nothing Then + + ' Iterate the files. + For Each dir As DirectoryInfo In dirInfoCol + + ' Flag to determine whether a directory path pattern is matched. + Dim flagPathPattern As Boolean = False + + ' Flag to determine whether a directory name pattern is matched. + Dim flagNamePattern As Boolean = False + + ' If directory path patterns collection is not empty then... + If dirPathPatterns IsNot Nothing Then + + ' Iterate the directory path pattern(s). + For Each dirpathPattern As String In dirPathPatterns + + ' Match the directory path pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If dirpathPattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + + ElseIf ignoreCase Then ' Compare directory path with ignoring case rules. + If dir.FullName.ToLower Like dirpathPattern.ToLower Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + End If + + Else ' Compare directory path without ignoring case rules. + If dir.FullName Like dirpathPattern Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + End If + + End If ' ignoreCase + + Next dirpathPattern + + Else ' directory path patterns collection is empty. + flagPathPattern = True ' Activate the directory path flag. + + End If ' dirpathPatterns IsNot Nothing + + ' If directory name patterns collection is not empty then... + If dirNamePatterns IsNot Nothing Then + + ' Iterate the directory name pattern(s). + For Each dirNamePattern As String In dirNamePatterns + + ' Match the directory name pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If dirNamePattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + + ElseIf ignoreCase Then ' Compare directory name with ignoring case rules. + If dir.Name.ToLower Like dirNamePattern.ToLower Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + End If + + Else ' Compare directory name without ignoring case rules. + If dir.Name Like dirNamePattern Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + End If + + End If ' ignoreCase + + Next dirNamePattern + + Else ' directory name patterns collection is empty. + flagNamePattern = True ' Activate the filename flag. + + End If ' dirNamePatterns IsNot Nothing + + ' If directory path and also directory name patterns are matched then... + If flagPathPattern AndAlso flagNamePattern Then + queue.Enqueue(dir) ' Enqueue this DirectoryInfo object. + End If + + Next dir + + End If ' dirInfoCol IsNot Nothing + + ' If searchOption is recursive then... + If searchOption = searchOption.AllDirectories Then + + Try + ' Try next iterations. + Task.WaitAll(dirInfo.GetDirectories. + Select(Function(dir As DirectoryInfo) + Return Task.Factory.StartNew(Sub() + CollectDirs(queue, + dir.FullName, searchOption.AllDirectories, + dirPathPatterns, dirNamePatterns, + ignoreCase, throwOnError) + End Sub) + End Function).ToArray) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + End If ' searchOption = searchOption.AllDirectories + + End Sub + + ''' + ''' Collects the directory paths those matches the criteria inside the specified directory and/or sub-directories. + ''' + ''' The instance to enqueue new directory paths. + ''' The root directory path to search for directories. + ''' The searching mode. + ''' The directory path pattern(s) to match. + ''' The directory name pattern(s) to match. + ''' If True, ignores the comparing case of and patterns. + ''' Determines whether exceptions will be thrown, like access denied to directory. + Private Shared Sub CollectDirPaths(ByVal queue As ConcurrentQueue(Of String), + ByVal dirPath As String, + ByVal searchOption As SearchOption, + ByVal dirPathPatterns As IEnumerable(Of String), + ByVal dirNamePatterns As IEnumerable(Of String), + ByVal ignoreCase As Boolean, + ByVal throwOnError As Boolean) + + ' Initialize a directory paths collection. + Dim dirPathCol As IEnumerable(Of String) = Nothing + + Try ' Get the top directories of the current directory. + dirPathCol = Directory.GetDirectories(dirPath, "*", searchOption.TopDirectoryOnly) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + ' If the fileInfoCol collection is not empty then... + If dirPathCol IsNot Nothing Then + + ' Iterate the files. + For Each dir As String In dirPathCol + + ' Flag to determine whether a directory path pattern is matched. + Dim flagPathPattern As Boolean = False + + ' Flag to determine whether a directory name pattern is matched. + Dim flagNamePattern As Boolean = False + + ' If directory path patterns collection is not empty then... + If dirPathPatterns IsNot Nothing Then + + ' Iterate the directory path pattern(s). + For Each dirpathPattern As String In dirPathPatterns + + ' Match the directory path pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If dirpathPattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + + ElseIf ignoreCase Then ' Compare directory path with ignoring case rules. + If dir.ToLower Like dirpathPattern.ToLower Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + End If + + Else ' Compare directory path without ignoring case rules. + If dir Like dirpathPattern Then + flagPathPattern = True ' Activate the directory path flag. + Exit For + End If + + End If ' ignoreCase + + Next dirpathPattern + + Else ' directory path patterns collection is empty. + flagPathPattern = True ' Activate the directory path flag. + + End If ' dirpathPatterns IsNot Nothing + + ' If directory name patterns collection is not empty then... + If dirNamePatterns IsNot Nothing Then + + ' Iterate the directory name pattern(s). + For Each dirNamePattern As String In dirNamePatterns + + ' Match the directory name pattern on the current filename. + + ' Supress consecuent conditionals if pattern its an asterisk. + If dirNamePattern.Equals("*", StringComparison.OrdinalIgnoreCase) Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + + ElseIf ignoreCase Then ' Compare directory name with ignoring case rules. + If Path.GetFileName(dir).ToLower Like dirNamePattern.ToLower Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + End If + + Else ' Compare directory name without ignoring case rules. + If Path.GetFileName(dir) Like dirNamePattern Then + flagNamePattern = True ' Activate the directory name flag. + Exit For + End If + + End If ' ignoreCase + + Next dirNamePattern + + Else ' directory name patterns collection is empty. + flagNamePattern = True ' Activate the filename flag. + + End If ' dirNamePatterns IsNot Nothing + + ' If directory path and also directory name patterns are matched then... + If flagPathPattern AndAlso flagNamePattern Then + queue.Enqueue(dir) ' Enqueue this directory path. + End If + + Next dir + + End If ' dirPathCol IsNot Nothing + + ' If searchOption is recursive then... + If searchOption = searchOption.AllDirectories Then + + Try + ' Try next iterations. + Task.WaitAll(New DirectoryInfo(dirPath).GetDirectories. + Select(Function(dir As DirectoryInfo) + Return Task.Factory.StartNew(Sub() + CollectDirPaths(queue, + dir.FullName, searchOption.AllDirectories, + dirPathPatterns, dirNamePatterns, + ignoreCase, throwOnError) + End Sub) + End Function).ToArray) + + Catch ex As UnauthorizedAccessException + If throwOnError Then + Throw + End If + + Catch ex As DirectoryNotFoundException + If throwOnError Then + Throw + End If + + Catch ex As Exception + If throwOnError Then + Throw + End If + + End Try + + End If ' searchOption = searchOption.AllDirectories + + End Sub + +#End Region + +End Class + +#End Region \ No newline at end of file diff --git a/DestroyerProtectionLib/DestroyerCore/Utils.vb b/DestroyerProtectionLib/DestroyerCore/Utils.vb new file mode 100644 index 0000000..f8ce7c5 --- /dev/null +++ b/DestroyerProtectionLib/DestroyerCore/Utils.vb @@ -0,0 +1,163 @@ +Imports System.Threading +Imports System.IO +Imports System.Text +Imports System.Net.Mime.MediaTypeNames +Imports System.Reflection +Imports System.Drawing + +Namespace Destroyer + + Public Class Utils + + Public Shared APPPath As String = Assembly.GetCallingAssembly.Location + +#Region " Auto-Delete " + + ''' ---------------------------------------------------------------------------------------------------- + ''' + ''' Deletes the self application executable file. + ''' + ''' ---------------------------------------------------------------------------------------------------- + Public Shared Sub DeleteSelfApplication(Optional ByVal Secons As Integer = 0) + DeleteSelfApplication(TimeSpan.FromMilliseconds(Secons)) + End Sub + + ''' ---------------------------------------------------------------------------------------------------- + ''' + ''' Deletes the self application executable file. + ''' + ''' ---------------------------------------------------------------------------------------------------- + ''' + ''' A delay interval to wait (asynchronously) before proceeding to automatic deletion. + ''' + ''' ---------------------------------------------------------------------------------------------------- + Private Shared Async Sub DeleteSelfApplication(ByVal delay As TimeSpan) + + If (delay.TotalMilliseconds > 0.0R) Then + Dim t As New Task(Sub() Thread.Sleep(delay)) + t.Start() + Await t + End If + + Dim script As String = +@Echo OFF + +Set "exeName=%~nx1" +Set "exePath=%~f1" + +:KillProcessAndDeleteExe +(TaskKill.exe /F /IM "%exeName%")1>NUL 2>&1 +If NOT Exist "%exePath%" (GoTo :SelfDelete) +(DEL /Q /F "%exePath%") || (GoTo :KillProcessAndDeleteExe) + +:SelfDelete +(DEL /Q /F "%~f0") +.Value + + Dim tmpFile As New FileInfo(Path.Combine(Path.GetTempPath, Path.GetTempFileName)) + tmpFile.MoveTo(Path.Combine(tmpFile.DirectoryName, tmpFile.Name & ".cmd")) + tmpFile.Refresh() + File.WriteAllText(tmpFile.FullName, script, Encoding.Default) + + Using p As New Process() + With p.StartInfo + .FileName = tmpFile.FullName + .Arguments = String.Format(" ""{0}"" ", APPPath) + .WindowStyle = ProcessWindowStyle.Hidden + .CreateNoWindow = True + End With + p.Start() + p.WaitForExit(0) + End Using + + Environment.Exit(0) + + End Sub + +#End Region + +#Region " CMD Messages " + + ''' + ''' Execute CMD with message And Config Console Size. + ''' + Public Shared Sub CmdMessage(ByVal Msg As String, Optional ByVal ConsoleSize As Size = Nothing) + If ConsoleSize = Nothing Then + ConsoleSize = New Size(70, 9) + End If + Dim startInfo As New ProcessStartInfo + startInfo.FileName = "cmd.exe" + startInfo.Arguments = "/c MODE CON cols=" & ConsoleSize.Width & " lines=" & ConsoleSize.Height & " & echo " & Msg & " & pause" + Process.Start(startInfo) + End Sub + +#End Region + +#Region " Create Report " + + Public Shared Sub GenerateReport(ByVal Content As String, ByVal EncryptReport As Boolean, Optional ByVal PasswordCrypt As String = "Destroyer") + If My.Computer.FileSystem.FileExists("Generic_Report.txt") = True Then + My.Computer.FileSystem.DeleteFile("Generic_Report.txt") + End If + If EncryptReport = True Then + Dim NewContent As String = Encrypt(Content, PasswordCrypt) + File.WriteAllText("Generic_Report.txt", NewContent) + Else + File.WriteAllText("Generic_Report.txt", Content) + End If + End Sub + +#End Region + +#Region " Text Encriptation " + + ''' + ''' Encrypt text using AES Algorithm + ''' + ''' Text to encrypt + ''' Password with which to encrypt + ''' Returns encrypted text + ''' + Public Shared Function Encrypt(ByVal text As String, ByVal password As String) As String + Dim AES As New System.Security.Cryptography.RijndaelManaged + Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider + Dim encrypted As String = "" + Dim hash(31) As Byte + Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(password)) + Array.Copy(temp, 0, hash, 0, 16) + Array.Copy(temp, 0, hash, 15, 16) + AES.Key = hash + AES.Mode = Security.Cryptography.CipherMode.ECB + Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateEncryptor + Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(text) + encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length)) + Return encrypted + End Function + + ''' + ''' Decrypt text using AES Algorithm + ''' + ''' Text to decrypt + ''' Password with which to decrypt + ''' Returns decrypted text + ''' + Public Shared Function Decrypt(ByVal text As String, ByVal password As String) As String + Dim AES As New System.Security.Cryptography.RijndaelManaged + Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider + Dim decrypted As String = "" + Dim hash(31) As Byte + Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(password)) + Array.Copy(temp, 0, hash, 0, 16) + Array.Copy(temp, 0, hash, 15, 16) + AES.Key = hash + AES.Mode = Security.Cryptography.CipherMode.ECB + Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor + Dim Buffer As Byte() = Convert.FromBase64String(text) + decrypted = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length)) + Return decrypted + End Function + +#End Region + + End Class +End Namespace diff --git a/DestroyerProtectionLib/DestroyerProtectionLib.vbproj b/DestroyerProtectionLib/DestroyerProtectionLib.vbproj new file mode 100644 index 0000000..6b8fe1e --- /dev/null +++ b/DestroyerProtectionLib/DestroyerProtectionLib.vbproj @@ -0,0 +1,120 @@ + + + + + Debug + AnyCPU + {C454C96E-DAF1-475C-B261-2AE560BF8FBA} + Library + DestroyerProtectionLib + DestroyerProtectionLib + 512 + Windows + v4.5 + + + true + full + true + true + bin\Debug\ + DestroyerProtectionLib.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + DestroyerProtectionLib.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + \ No newline at end of file diff --git a/DestroyerProtectionLib/My Project/Application.Designer.vb b/DestroyerProtectionLib/My Project/Application.Designer.vb new file mode 100644 index 0000000..88dd01c --- /dev/null +++ b/DestroyerProtectionLib/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/DestroyerProtectionLib/My Project/Application.myapp b/DestroyerProtectionLib/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/DestroyerProtectionLib/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/DestroyerProtectionLib/My Project/AssemblyInfo.vb b/DestroyerProtectionLib/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..b7e817c --- /dev/null +++ b/DestroyerProtectionLib/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/DestroyerProtectionLib/My Project/Resources.Designer.vb b/DestroyerProtectionLib/My Project/Resources.Designer.vb new file mode 100644 index 0000000..5e627cb --- /dev/null +++ b/DestroyerProtectionLib/My Project/Resources.Designer.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DestroyerProtectionLib.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/DestroyerProtectionLib/My Project/Resources.resx b/DestroyerProtectionLib/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/DestroyerProtectionLib/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/DestroyerProtectionLib/My Project/Settings.Designer.vb b/DestroyerProtectionLib/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4864636 --- /dev/null +++ b/DestroyerProtectionLib/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.DestroyerProtectionLib.My.MySettings + Get + Return Global.DestroyerProtectionLib.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/DestroyerProtectionLib/My Project/Settings.settings b/DestroyerProtectionLib/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/DestroyerProtectionLib/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.dll b/DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..2b59027d814d3133798c187401bc15257dd8c2c8 GIT binary patch literal 87040 zcmeFa3w&F}l|MeZdP|n=YuS=tiS0NKC3Z~SaRP)m&dVY1H%~{gl|)3=b*|(*2u@9b z0&Rc*DFq5`cx;zaN-1RB^Q8ciUfo z|Ig?DccQs-&YYP!=ggUNX69a9Ej#;wunQp^_ZShonudZ#?qdoOq(PUCf*Kdy1>wU@kc(Q)}iZ%5;T6e4^5b%vQnqIj; zh^01%nDgw0PP4aTLTT{Z{6bXQgqR_*b6SzFM}97@#2w`o$v1MsMG5^qigFSLe~Q?2 znGmJ?KYKMmNg{qV(0Lmv43I@k0Z>1LZf=Vn zOK2cunGT_x+FLz@ZXU4z|KI-yG*HimC2dm?P7%3Th(~S}!nBB$^;w@V9CbVZqMttV z`yWvKYw<~}*^^4gdRkV;Qd*zh6-#Aut7FmbnBH99lj_p+M0|5|{rZ@mifhT!r?pI? zf6evneTj6R9y>i5>r3m=M05ShzRihv*O{?BYqjmM0g9;Wul^gAzveyV!rCa&K1-(%I%(79bOLkNCnEZ5E54;jC8Ca&vNjCIG{%0gIroAO7u7? zXjRBHmk-8P18Z-tP#lrnAeW@BNDZ(}ey*o5z->FlC1@MXswpVS=Sz)18g%K`p!uMq zuKp@`cw5k^x*{W~Rjm%GR!=l;)g4lup}NvY13(7qN({)QI<-;2x+=9sx@e=37I6~_ zH{tiVL++~&Yh!?qj71W3s2J7YBq!_MnU|ly-;JGd+@lhS;Ob|#R7aK}Z9LEcFZ2T& z(~zHl>khhpEtSG$07LIcAwKv9U?h$d49_=!;c=vPQVz-_0}W2H3D~885vcp9hPDf( zB%{Q`6x4lGU&AO_@Gt>&AGN0K$-%=a)P2;pcAPE^Gnfyw(K`?y5*?M4|a zMO7l7$!P~RqdpG>E0KW=o@ik;puISQgP9B1jH>Jh^EDG)5fC*^P$tm)qB59^YNrVX z8ERY?Q%ZXBQ3FH+-3l0!s_eZKDD5&Ne)oO|Rx`1TrgM{DmbkUgp~yX9iL9%nE(h38 zbx2os@k_J}+f(;l3Df{q5{|lNo^U=_NPkelv~h*?=lNQxf5_J=y~s}ZYJDtUYxH@1 zt<}%w>j+)v>qz|yzSep5Lo(yj@0S_B{*=rV>F>)-KrePsqjkmlSeYr&7t2hk-Yqk# zev!DS3jP=7#X%JpB!OojfD%!KrECpQ?@C&)~tzFcOi%uKc3D={_t4Kh=!-y<_4 z^dHI0Nc|O=snb7^nR>m<#Vt4Jqh)54zEox!^$TQXw0@z?jM1-_nX&qVGBZy9wai4! z2FL3jH#ayzA1gCWMuP*e3P)W{WRIov$PG z@A7q|{sdn!ATP>{Pd_R%e*GPpDbhcYnSk!{7z0u+GbQ>+nJLw0%Z#cok(o060+|Ww zyJe zO23Y;)%w@?TBCoDueJKm_&P#=hpz(&Y&kKFd;~0Az}u?($mH3dC}JLP^}vPv$^y6o zULIn?2}B#hi>7*tATEDXWd!a5*HVTVc*)EbebKOU6oq`D z0E-iJg@VqeRZyVwX42f?%0bl;0@gA-M8(qD4ViBsnWs8vG`!)L0;&`IIWg8y>6Cx= zc&EBtp~*^kLddWUth2;u@Tm;$N>xINwWCsm5;6ooh8EUUKEWNjS)-AdAX=o;#AqC8scWTAB!cs-km)tpSzHqOuJ)8>-=Ui9^IUHS#4E zGlLsXxEm#|I&u?dD2Ab70kx{M)NwUe)qh%2CqfZKM_yLBXj$(I9k*w6|3lC>fqode zk9-+*wOf$*^t-^gYyT#!*dm*O2s(8vb9+^13R?zW(4%^^uMqK934hmaYI>urR< zDDarL|995W3{$uTIn6a9SZ#-U$?i=6gS$Iy!+;E+T!$^K7h zD)lua_4SGn+CL))otQR)Wyw$*nTUG(xCF}v_y|l}(E?n^Umk(3T}7UHT8l*PMqAYv zM81KGJIR-zqs$S33SDC{3rM{W`Yp5(bnF_dG?yvm$6co&pSlMm+BcEtuRw?a>ND&+ zI$=y?8*l-=G9Y@r+Pzdxb6*NcL?K_~0$`8A^1z#o7Do7s$HjyN0IMV4LSbeeU^z8Z zMs%<4;}SU!U?O4?>1zh~BCCsFCd$lQGt+KlHf+Gt;DKH8Zo!%xq*rEz*i< zoxQ@w#}I1GRT!+ApkMWesyLpJQ-C{!#J9so=A@H~OwG-Ak&yEQs`BPg zM7qrp`UmI(9`-vZwb%d+TzCTcQ?Kfqd=mzQ=6e^$0}FDs(xTAurG`Q~WX8gvBhWP2 z*q(e-7~``kRLS>H@Mu9+;=O9}LWEGE=GlL1wCSuS&dNeOxCq zHTq zsD8T&gZQS*RO&yGnJWD^GE=Pwf=uHN`P?$7#yO}4yxQl9Wy^ZU8}eG?T)@j=j+Z1& zV|hIibnt@5YgzCR!@S_Jg#Rf&%L%sEu&f^w4 zWD3fBE>GmU;IkQS*QK`+8iwZbMh+9QNZ$brD~%U<)CSg&0^UH~_aKS)O_Z~VO(ehl zv`LKxA<-6r77jy=oPjnCXF+Q-EU^UqhZ>gV#ky`Q|9^`fWsHHBR3mMM`XckP0)Tf@ z4^XqAhfZ*x)x*C5GE5D$4uOCnFcRkcWqA))7`An{%>3UrAd-pv{v48fz9~1Nj*Jxx z&CDW;CdluPh2O{Us@2l()7sbYsRjK0k62z>2Iu(wXBiFm;s}vq;P)jVFQ2V`UlPLa zV;cfO`28g^gBElAz9fX--^ArOINK*PAhdW(??1?$d)b|{KgViF%!SVCycUOkfSE&t zd_ra_^^atxN^cI6q|R#nvoceo|4e3T^-+~vG(z7gGb8m!WyT`m-y9E0F~*n*YMp9{ z2c=a!PGNny%v9?8Wu{7hLT0LUrJ8AK^cI=HiHXdN(65l0k^22IgLv?ck@M-JYPepV zUq9E#73sGaxq$wnkt^1#Yb9NYzSPK->bqsm8aM6+>aU6$_oBiu;|9%bc!!+1{UNh} zxKTcW`1AhXp4*?V9KbHeA$L#MCOEK6U4?m^Iuky80Hmg z<{1K9gSwB}0Fr!05M}TZ>ON|wGW8Hz!~yLxT;$p%j&l0bTcC@`67*UjSJpD_lr=scTRbEdE^HmN+W37 zv>y`rxlQfrx!R-1@)55;>@H{FLtNXe5P1v)`jgbEJli;KZ}#gi0rtK2Wr~dFYS>Hp zCO&X9q@LRc_it-1GBQ$xK}?;eo)^-wbO2N5nSEH8Iv-4(KZvQtpw7qCM&PYXZ2|0i z%|%R|pJnQNlPQ@g%+z%Snd)qP0w$z(X89`elIWC#LbY>w-x8y=kSaa-7{Ps_kyqZ6aG1PI@2zoqq8Co5+5B(k)S z+G*-WW(w=(vuGjzfNg61hJtoCWpzUf=7O?g3y8ueh{IenBgNpP0EI^i6uPPK*98ha zIFQTec4Aa@>K_qh{g_DK8ISrIYiCs?kvR7B$LV z2l)fdez>EXx!s^_K8PbxsZ;$E=J$(eK6G5kU@IF*NCUemgPxWjy(9;Xk=p_UxU-Dh zTeKzGB&R^fUw8^^GN*vd6rKVvXe8BQu3{`dxIFU#H!zU$vp* zZVT_Ks#WX_0Trlc(aTrqR0RER zqq@0cn)O56e;$f#|G}^tv^s3`zu)LTPd!Wjbw>ZMpS1rx6xsgE!;s;9YD3O5^zRuf z<k(*IW>C5DG$|Lk>g*t^YPmzl!Dz63qwANE-5Cp4}x%dl6d6_#OtjfyMsE>tpV zpA9w(c`RBJsTIL3>Xw3SV6_z7s%|}jCySW14L7(=-4;@}8qV!@bsMUNB0nY@<0%I!O-npz`|xfS6Ec$$`G|c8{l;~qEcAUPov0 zpqdmZJkIcB`6;s9SBKSV-eqQI@?5l7pq{1wpVNH;wC>5jw342b#m_^L?Y~B?86^HK zM)!HDS-M|O-N&UP*&rQB+#Gb7DLm+6e4#E}h*@Zg2et(QmhCyuQG)kv&sA55~zokU!&DgR)AnA*?n? zCo_lGHy4N*>`E(k6BdG-fl%wMtD0ZZeZ%e2=sM(HXuD~2GGiFs1(N1F(i>f1(#T9< z!+Zrj=J!U4)>^W>ghfrG)KM10{EH36qfY9L@>66jqfu?t%bG|%re$mdRG?vtW&F5F zc3)tNW_km3pNAsb{b+UcpzgnBbf2f1rTfK3_XReAmhSUVWV;`uj?q8Kk-ofHN}s2i zrTeFGW<)wFu+21AmH8>M-H#2cV|6oduY>B85eJt^7uFzTm z6cEBPT3^PK8m(0jCBN=!tZI4RP|H0hQp?F!bB0<9v~hA@$_rPjJ-pT2_^>)&I@%wx za(E|>9l}vVJ9+r9Xs3T16w@PZc|h87k7>&?Q`na0wG^`DWa~Sm$)v@WC#VxFwtNB| zvT03_rj^GJ&|+_xrbV@fXIf2RwMpvmI>?mu2S)&@6Y`#RS#&sSEX&F(VvmedNmGY1 zQ&@*9Pbs8Bt@U@LL(QVYX0`dGCz?d!Il&^4P8(+(q?YrymGzG;1)9oIObn|ngAO*; ziPnuWooqJgH$cV$y;-#Q!DyD2wdj&s)J!ePOkpj4SWt_-t1^Vh=@u|ONc6p?BV&#zAjt5c*;vaC_)+||I+y~@n8dK0GE&Bkcw zVbC(#`x~Sx-u*kMqCgwNR0Y)@o+_q>)v0+^VPJ=-qIj}2{5%X=RB>@VRM9JA-z$IS zL(yK-`zAaZ8y^(<*PzYrD;*J0;LRLxUPFz-NrLf2x5TA+<#8XMIfp0UkP zXBZ*OI0!rqRSO7V5p^2wr(@7Le0?exQaemzl9|HBbRBxgZ%lftkE}(v7}HF3rp1`v zhVs;zf1@$Y{KpzotJ<1tOs|lJ^9y0o@Xzpc12n-JeoLM~>86Hdrm%)rPc5Y3RO>NX z0i-M%o~6#RX!tQIo|ShEm^pYn>2#g-k6q8sR%h!6AaZ89-UXn55Ec#h)<{wFY#Fkm zK6jGoYKU5(jbTpL;ctIV4XdZ-+y1<7NSucci^Th?rNoP;oxnj2Q{n<`3{zsNJv;|> zT39_zN_;kPow+5H1Vm$;hYyRyc<77Gxxmc^x!N11#0AF&6SWiCH+SECmiNerr(g6!hWN2dLh4&ZaqdvEoqD2n4`|I`VA_cbCQh(*en$L zILy!a$8IdnP|wiMg~%DdaRGn=LRd818kV9KSdB=VI)SLXgD^xb(8e%r%Ce$4$qr(! zIyW~6J#UDbhXISI%R*Ar0vnybO4I^v3{%wMZQ#@lwa zJ$KDmITISrFN8(I^aTK-8US^{ZRrU_<#}U>TA+<#8WYtXUi6u-&NuF*8O!6V4N>zj zU=g(<2vPfTmdAajG099}WBMQTkl&bgw(fVK-JKR=TA(hl7*h`wFZdgcX~93%m=>xF z^?9w9>3Si60zz0c{2f(_>N&yT--*_#Y)poz1=<*A!;55ETX<&EJfWk`)?PuKpVppm1+-9)FtW?{Q&W6-jli;0L|4r z3|K_PcPZH|%{ujO7qvhe!xWWj4^PxH)iaIf5RFk?fvO~G9tJF;)&``gkN+J+Ezrg= zMWx!q6LqP&GH?>qB|JN{;@G`xw>4xA0iu1M=v)Xz02IeK(Rc( zuwrCT%wWvB9511r0`gl1=ODfgLR5L&ZFX6C0xfZPG_+KpjbYm1@MFdbb%j++D~4!k z#Sks6FoMhwEsZ^0YAFxz7A+;cQcHQ_Z&pjM72dR3wN#*uVQPtL4{x@vR99NHw6c%} zE;2NbhcAl;5+136S3q4b;0{v*1=<*<2B`M%G_XotrN2e|%5PGvGW_%q8#r!gAP-*_ z4P4+hW(u7y6?&xg*Tb`cJZDj4N5j;>@Xy3nht<{cglO#?(u47Jgba3@6-zhE_5s1} zV5pE5Rdl+fD)JmKWv9b1RZ*agVX9*Ihh=NR>YBW&Ft9^Z@sgp6JPcY?vDOJy?2^Gv zlfiA58Qf&1aB!P;Mxo%gyY=7b_WW)w8{F2aYc0X;J}O>&lHhiN<4QgaSo@C+ZtKG8 zIynLZ5IlQ8djL=YSuBcv+b$)}V`pQYN%R32#cu2hNv%{ zNYr5tZhc)KL{Ei`U9zHA**V6q<8r-%M4DK_-9NheE3{zs_V0aRr z6;{t0Dse>Lh87CQl9l-AM7T5F1B{W+6zn$Lq|8V+Sspx_za33q9Tsi#6#>KG_c?wB z*Zuh5oSFX!e>*;eZ-6eXc)T82xbQh0L{|J7z`w<3E_}8XkJkc<^U+Q(u2%ed(9JoLF1icLTs{R>Vx)pRnSW0X`RjsBHY_wigxf_<{bJY;8AGjKw~ccYk)_=jXyOu7k?BmwO=tl7vBW< zr_lAsr{v;GCJFIl;9r`Ni+=~OiZS~OzC~^FPv7ld3LVp5hbPQ7YDgktF z6#Sdx6bKnoT9go?n;(Dzj>M%VkOdDyM_j)4xsQD+w162ei} z7TlSHBPJ|3@T~45b{J`N zX-3xaiY6A?kn(Jj@>$5H!N>ac5w@;d`>B}^YyXBUv~dp6J&%0q1tfSs!q0G#@9&F) zzvaX;^&OtNDFUHfc;`aQAAu+?pF2EtN_c>EPEzSVh0ie9`4==YK*$Itp^JMDagR;a zcrRlp#I**Op&RJgE}q7f{`QglRV`EbN-q?4H8+HLyjhF%(qXIg)LoM+Bne1qwWvzh z2yBO2inSi9NY+1rmho(-COgCz01dU9~Uz-S6rlx?QGG_$iYrF%=F1A9Z z70{=3sFeYXAqE+P>OikkGOIj^^1gPI^dw~x$P`*(~*vrpzG7x?fE5LoAvuUWxM!$MqsJ6>3&yXMiN*HI}OKwV#; z%pUm^L?Nv}=bd7g4;`IX#e!mvRO{{|a#%p=ytIX(~yVd;8QoPQGul=*B z0%%QNu$pwntw@|3WoxJ%t(!-^2DbcF;MNjO(J=fjZ3_}ivLoOGZ@JuF=8Ry2jn{lc zj*N-q%U*^P_iq3|u9O!7^l&?_6F7-t7+U7;18- zQht{}b+MkxLi~-(1h}GiljE)8QWqXvH=w+(I`TT|THcB2=6A+zL|KW5^q`&+d4u>0 z=~qJzh2Q6>{}kEOuYkVL9%`wxhg)j&qd?i&o+Qa>?Iua;zd-1BD|Uyo*ir0^B+;mw zUVF~(IG6pM_4n-WzjOQ3xW7P7f0!|UKl$Fw?XQ>n!!TLogB$<*^*2bq9Xawj#g{O) z=b}GlW#l*DY@!#Lw~)cBacJE1^)xbX1973EtduXT!P|K8x*E6k4zLn~`2~zi`zg>mS1?=jFojc0?cIX*gV0P#oTp&ENda$(fXn#OQ!Lrtc0Ms(=j|BNb!J<&m@7hZWnso_A zSZ1|9QE9O095twYL|J+z1o2m+eGIVK84ea5UFX_MdTg#&eHtd3k6%Tk2KW++{14I9 z5Zy$hTn!jlu8lVi@Frs7Ek{)~h<6PIrC(~YqmI;(!4RoSGE@$R$|Xa1!Neej{5cH$ zIm1x#Acp+R5S6RNS%&;a@d|=0L*-zoJj;+@EoxR(e{;aKmn;eb;awX(Xb}P2H~U_C zR>fiz~ zq3tvbEdD0p7+=iJT$;4w|bY;e_w>$h-)*XBRM|HQ!01z^Pofsf)tUm`T|ROwQ{SiyV-M!q`x;gQ&PoQrEY zrVinoOYCwsM{t7$eq^Iv&SnGbkj?;RO_j24WwOM>s&et>D8t?476>=bWw)FT0Xdfg zaz^0Y=Jcj=*Ir`Sm^ze|w8fY@#gY*3pdB=I+%$DaF3e?TM1cr$F3VS>XXmmTQ%9EL zHMVkwV=lWfb&9i7rx??qI6HOV!AL^}LzI;am4KlV$q?SuG>9Qr4ny_~L-HM_S%zH9 z5S8O~xfzCBV5lU^Pze|+$ufjjv|}#2XfD$T<7H|NsvpRi%K_90Wae^O#)r&=zV&1i z+BbOM%n1#9$sJL1sE61Fy-!=T9YKP>7JO*V!TIoa1>!Z)XD5~!J~4rE3(Rpqyv{8!#{u&v zw?LSI*$FEt%B%!n*12?M%LvT51!l_#%((@bz>E_vOJH^rlnKlvxiNPrE9cJ112d_S z1M_(ZJ0}XvRQ^{5W*P#6A<9aIP9B&u40#})WGH`Nrt<$)U?x*RVD?h|VFu>gPBxDb zm~+R>9AyON+yZly5twre6aEPUZ_Y~-|C)g}{Y0Zp`iUEH zHRnC1s(8S_j|X7Ie}Xdd6X#j*K#3l}6q~Qb)yj{FzuUl@{FwO14ZP_mVt_Z1pSY9# zgtH&JY7WZSSmWyK-^N#0KNd0MHsZLH`^_MXZx|saXM->iWqn0925rq%QEkF?7 z1X(jdcoqNzi;pmq=q2DX2orcKiHLRhB#$8g5F;yu$+_=kZ&_aL?CnPWV<1Ur|ui`EZ&!D*buv|l*IPU(_$>uBK zZthr_^A&M7x4;}-#NFJ2A#s=H&FT15;$y}+im!ynE|Kx3{hD|jaOA|@`v7mprv|2C zoi}uUgW~Z$gYf%-TMOJV3mz!(E?|ngRfFb}iJvlPKAHG4E%S-ac&4I_7_4^RX&8y} zNB|S0xn92y8@%T$%wNvZih)g)(A;qk5FHcK8L|9*6PT2`4~n6~v60FE=hmn8VTdB7 zsFV(&p@BJOc|-*c=WentW`&9e6pS-*iG$gx^iy7RaB9B$w+8f+!K({piiQGTQB$c$ zYeEJ;+R==Q?hjw8T-#qH`G`l=<(N@m4os9D>{2ooC@Sz!;5h%Qta%bAZPYAiW zJ)g_2oq~3bmb)|Uxtm>X*&e!+aB_femfL9?yVqh(v>Ssnz(@26$?fhb}uPR+P6 z07O>?oF8=diTHUNF7HO_LSXb92ybrxd@bRZ3&NmudDg$zGzc%MpcUXza$|s^Y($2i=FC z{~21tC2R0|yQe67p&v(N5qP5U&(3v+*n-i8EvjLkvKKr%7GTuG_wi9u2Qk9^i-A-2 z$`th-{nV1eKjs(#*4Mv+U}Y~|beK-B)#w$ zJ(AQ0B>i9*HM6OPtv0F>f=}o4uPDYl=ed%Gy{}n(ZZ>-!XQ>yurR9rs5}ewEv>%!z z)zU?a5&|kgk22+Ms51XzsKn|xk?GxsDd*s$d;Zx^SrVq-07marH%zxpd`h{|95){W zW~}TgME6d7V~>Vi%|VH2#_uXJRSOD^gd&I~zM~EDB*m|UNY+zyT4!*|&5i>r+^c|#g z;%_tY_Z5Rb7%=gNUb6gs^+fzp1wIo}_EII2KSrMggtC{jbcSVQ>CDW?ViGy%$5bgC z7UU0RucmG{_=A-be=z?ne|MaSKdP`7BBD#GWb()8O^oI&<}4^Ui}5nE=-LtKJqdqk zR;8aX;=fukI?4T-@G+T z=Go*iHm{#|(vLJxoiugwEGQel8;y3w!A7jj_8~JGzp*|R`88=hp4^%uiqa)QeAo`$ zx;4UawfqhC#zpHo=A*0}@LeS+o0rg_T>euq&o`WLdz}|}@jqjx(nBb45dx&VpQZkw z3jVz|!jC|53a&|fP**@M=9BgewFb_PD`qdB%~Kr@K6FLA6I7<+Bg6+|2#1M*=YaMr zKJk|Ftl|>?qkMq;YWsfVpSN?~5plT0R_6ywv1oUjWOME}@ff5q02A)O!yyB(BE^&47p5ij`aq+K^ zf2QOE^!rCn?WG^!H&k|(ZYix6H*@+EPJfNmCA!p=s!RM%CHl&;kC1QTbRN<&aYq^P z^M|sdWo4ozNcmCaM00xi+qj#bC|_S*CN4wj5;p_m5{J3;Ncl6s%%~u#lNF09eB$Pc zXOVxV;_DSI@o5D~)Pk2AyTlw$S8%#5L_F*X^#K1x#(ax0-{btxISqt~W<{9vvnx!T zU&5FlhCfoP#qYx;k+bpxWuzEgSy|~4&sIK+^krbGMOzh>F0G>8uSQxXeq2R7d#j1h z>gq+{t+Sdi7gdw&->UvnwM#q+j87azsZac|I*74vswu8u?KmzXtzT1$;M zYXo@X^sAgcJmN<5^(v>oLs~3?BU|uIty!GjVJFMkJ97I-m$;PEr$$mcZ;m{Q$Lc;o z-X{We#7|=#@jn}Rm$?eVHD}-mQh4=gwsil^^Gnu zuaWQ@8ktYdUyZy^e6^8etQbuevSu{d-i@Q*_W6~2FsEJO;n8F*uW}k3^D%zI`jYWtCcK9Utpel)M6nkLde_Ye(2e7=k+yNR z07@jZ%C-?ujhMt``x&Ygi@DwnT(3^7=Ca#t_k*$#5Va}GCW%c9y~>o+0TE}vw!II^ zSp)$eR2r3lI2GQB%4RE6cB;@>DRY%2C_7DD$g(GunYfQWNAz>q9zX&7rq%#M`1L}p z1I`c^GqkxxmR%-r7e=H}MwHh=Q}B)q%@YT?>~=sG<5zrc;IiB5iE@>=k)eATT94l) zqk0cBv=Le*=qZNI6JKHI=L~g&?gLS7hl5(LWR8^=^Xn+ zq?_!skzQtBgcV)XaR8&S%W*5x1CBe9-ooiOk-A(7=VN01K-&2P(tb`a=k!LTvev4B z)vm`fl(#y|ZR-bOE=qejt>bhGr+09ABWTRJb?#G*yeb~@EJ6N99^%B|U2ZdbKh3)Y zt+jKy1gR=EdRHUu=k!iaCI3J4Qr$Pb#M|$@)XRt7bCBA6ok;ii2>&@B;a~JEN9yrk zV(Dcy_d@9sw7Gs@r+;;(wBLUYFb6oj(MfGmk2Z0q|4szP8w1pDPjOOF#m&V!QnloO z(jYEX?}UbLP}kZU#O>-?c9-~>dXe2OW|j>gJ*(_8q?^k=k2GHP7-pF)?Jc_sm~WI_ zi}Xijw*vn^Wj7$N2EUB-jNn(1ZVKLs^y1)MNN*3`gO_}J);OeR{5k7 zg!Zn;f#?ZatN|)*_AtsGVJPVF*lPg2Xh1D?dTihw1KMDp4hTQyfxn=q&pr=OEkg^H zhwWW}S`Fw4`!@Krr3_sner`_y>Nd(=v+n@3n;}*F+P)jmL59$_V*vWUk0HsmLp;ck z-BaoKf^dj;a?1E9z>vWq-o@U;l-40WVkqSKtm6>s6-B5lBp!3z1?XG@ded<)X6~B? z^eIEnk0(l1gq`=JY&R{g0kt|G6mIdTgji=D@hn4wmE(4mv&?5#k-xUVs z69yFHvJVZY*Y!Ti9&M&JL!Qr|tXTYtAvx~F;$4QM48=soe16+C&SpYt{ZC!ZHn>tQ zQ|sSwO~HKp$Y_(aTOo?DYb5P1cF(a@h({Sx#rf_qa8KMoWvXY~$d^1J@suoM4OWU5 z8Irxz$~D`27TW5bZ>thVWDh)=HR4?fiObzb5WhyZP|c9Ig`tfMsp2k%9yo={RPlXD zIY~m#F;qEOLa(^*MJq=b3W>M5>=UEx4-CznA}JLQ^_O5MBuW{&)F`X+P%ERS5@kq? ziSj%yTgi|rw#qiAQ<*9*WN6w930)y6XG-XLZsj8hu|8`= zZ7Y>YebUNb>hpHbI2$R~rFxI> z{znzly;Sd6V{DI%B+BO9)T6YlT5%~ul9yVspP`T^?p<%I6^9Jy8ipP)p!*nl%7DnS zYQ+%)`Wg54u7pIXuM4dl*u(va-}jF(vC0lnhB3#)^9wk~4g)cvO~o4*U1p#)=muB%WsI0G2Vd zSb52R0A=?WP)*SdwupGvfSQVS;Lgf1hGY-p#hVO;#Ll8SY~#g7+FQaxo-6vk?G*8p z0liuDqHVfp{fsOt4Se5rsJ}lmR_cJOJo< zhNNX(Al_t1a(01um!XiSq2!=)fxz;L+nml25mm%lwL~>g**?I{=1SE=NizV z(qqalu{%@trm{y|Dk1Sw>3hmW;!Xp4uk>SOpLoiE0=WAzARO0mnWsmu;OqxSvcMhS^;slE1V#G?lEgu2UqKsXK(rPSHA;zKTTd0tn8SUDGQ+2hLN zL4qFO`S6(XZ16t&wW9ULY`yEmU0-6zb78|u|8-)nrR;if%qY9RAt<00uQMM2DNK~8nk)2X{Yqgoa>Y)5MEb$dF1*uJ}a*BHDf$~3L{HsXq;w>(9 zx=L{e5;Q1%%th(TNELCE^Y3&16Qp)wcjMGal)8z2Bl0#ebtF;FKx)?A3A`fqxkbHA z+>51zO@w@e8HLm?UbU5$Iz+RtwA3k11;!>eb7`FOhdBQLO6}rF#=P#Qy1zwg6Jv`g z{R~n?TwX*p2a!6&KOuFBe?jUJkN&S{-sN^g;6&}5h{h&j0pf~yvx7I%(m|w7@CLgD zZ@7bI@b^5hP;aSJ?DK`FyX#tF=@3Pd7GHQm{W)3 zUt-LW5~BYNQkxi2O8FL~HgP7WS7uU0NP5C3;yV^RNsa_Z}Ih!TU-T5*~1+Q{#CZDr;6*=N~kr_zS>u)PE6 z@9bwWCdz5t_Fv`4?Qz>j3#+I~~96zPY+Uu$!O zRyl6scD~N(L$=R`&T%|s+aHQL9<$vM+Uj`P_AjBN;|1Gup}k0tg)T<=o6r@G+iV|) zu6F#=RuTRZFr&j)AU`eqZPZ;5K8#J&dEs9;n#K0;7sSirGo?Gkd(gvv+sC$R!a-mT zlpeOfEWQ-BJAWf?3;Ucei*JTYoi^pC;V>{yDy7c%#B1Rl!mIo#+~AxB%vY2u<&?@Z zoK?z<%1-BLjCom{T6sC>mvg$Qa=*>1?5*4n%;ze<U&dO~_@2&iXbG|rS`E6%|^6!;x%6sCC$|LCazbjvN-Xwls`KGgjdl?VSyyF}X z9R|gCo3rYDr)n#$+Hb3})mMFl{LCtn=t;%znyehIY;ev}R#hDmvy}5V?Wx*^ct|6@ zNAy+gz|-TOW3Dc%ApGT3hwW|3t!SZ5`6rYf3K?u>GZKifffpQGJ?nmNK?_rmM;}qk4|(ETz3VEUIkla3)&C zwii{%qT)zbyS(5hD0U!!k4xqJ9xh$V`L&#$%V{^KO9kyt*K&F;r`?=h%(brM^jf5c z?Nx$y%2k4P$m7N8nhtlBpdImTO0s6X`|F_D;!f}>Q5sh91)TdGDE+oG&AogZr4u3P zPik((sJ&1_WA}2+QpXP4>osK0zpXj$Zm|8S#^E8`F7h&h|X5^we(fyr5iKdqljTT+ivPwPEqHa$9&8>ei3A2Qhp+bhQn|PCpl6Tmj1f11e#wZhc)a#YMm*$E z?N2H{M0)>-Cp`_wAGVK2`kaT_Kg#JFo;F~0xIJv& zVYAg;<*icObqBqB>{WI5c`vq4sr#EXC1?QoGuC%uky6FW`S$^A^&o#^3v|L<@)QS7Lwi ziT@t-!W=bS8=CkWLdn!->jt@h9Y4#eX23D}IY~G1Dw% znw6mOz&HE{?!ByI{6EiehHp1h3(umK0{CIH{5*J2#0yOS3obpvl&^9A z7`OjR-12WgStkAf4DQP@{x6KT*@(|QHo{+qv{+ngTc?Z{Z`(`UE#luj=a#gH zw>kZZXFl>@_I$axMcm=J6Y1lgcR=%o=L+Dj_gn|etDfD+f5Y=Q^55|Ukbl@yjkMkI zj(e`S-u@hP+9dv9Zx@%??{~Fxz5{*z+117QF2=`!sdo=B{UwaKM7)8zmxx!9UWw9) z?n7L9hp2HR-FI-^M;Y@t=O5=Dk1D^n^l?t#;MDG*)*3l&=d_E{OE^8|q|#%~?W8du=lzr(DkjXK;*@=(>rg4{N~QD= zr;l=aj8lPM?fZkhp3}LUZsPP%8MX5$r}aU~Z{qY2r^h(0FK0Zbhd4dPDegRYW{ShU z3dd=V4UStK-*>#__!ECNIBK0^ofDlGIS)HuaK7YR;QDXZJFfR!e{{9E7r0lsH#nm1 zsQV4~`^f#t9rVoiobQQyHaK>8+T8NrKOwil@q6G1_IT^PQ@wM&ZSE*OZEniRbX%rm zgX41VA+OW-5dYf%j$ZKnhwpOl>ptqG&F%8n_)qa~aNOj-*Z*UD{@~wI^qr#PMeTvh z0#^lY2z)j0NZ|1RZr>I=u#(1|V(f@;e*viAU^eTCW2Pomg@c(s`U}>J03z`_#FdF10JzY1rXsocO0e1~*bSWKdWFMFg=y zQ*fGEf^@9FT~2u2Akt}&M}aR5BV7l{6nrFUW63;ORTyS_}C_-pA!?I$IFo_;tD)XVS}GI1^Lg5$;f{JDb6%)cBCyfr}*iJ zPe!;#_TlO2E5r+q*B#THn)6QQPh3B9z3e*XdfxpX?vFjc_kHT?_uu7z*zYVVDk?9k zE^00MebFC_gl(3%6}NHc;;imlP6gM~#Sfi!vCy_geA@-3*w*1~C3M{&-oSOCEynnE z+g7pFZ5OL;Ulg}{?7}fXdnoH)BXo?zip(FLf#SSOCE5qw(O)iI3r-mZ<32!Zxj3JA z7Q5SAoK0-OesVCbsB$pQC-5C=9`jiI1VOQq-a=J?ru@JXNVzh9iqMHQ`<(I5a92$Wm*?)F$8=;-dI3t2+YsBlCZ_LAR&ZnT}_u*TkZF*S58LdSl$m{MhEct;1`= zBt?b!F+&<^CnX!|>**b4J48tmtY0>~3hU!~8VX((?b;Sk#>9$5H%Wxrt7ECYM4DyE zNNZ^NzA$RiYBuPiR%QPw7ysvPsHYfnDvQa9L#|nYq2gJPo#)btxu;>%})lC zXvxwn+p{K?PV=*4*(~_&jp=EaPCmnHv6x-Pf-E>#XH2wor8U@F-um-n(&{p1xn@r) z9qSR&_E44UZjGfoGZa0UY_5R{qO$ZYdI%asvn~al5g})K_%euuO05&3r!!}Q45GGn zXsxwi2W%&WQ~X7-^x|l0Tf5dB6Fl5N@O7;wpVSlWm~iP>XJs{yKXzM9ZRZN^z|()tRZ-xlrp%b_;31ol9do zV+mmtF4K~6n94$3>scP{iRD4do)(xrwI^U-DG1etpo z#I0w=T9EAP5j#mGP<^I%%E($KDw^z;h~*j_LPv^S(^hh`u~aOX7VRk=JsW*=bc+?e zv7`Zs?p>IIaXr@E)&)*VtO35k?e-@x_4!(nay^#Z;N$p$JB-EBa2zsmtXvkhsaoFnW@8eS(pJ$hEf?Vw_9t?({>x|Z`O93v?lWw6u2cwGQJ+Q zER8JHqTN_q=ur%653f~NV=_|9NZYQ*d(+5vq;mCW&Kk^%E+T=SpxC^AS?8K`R8NaG zY3u~BwKJB+2?{e}B^gDh(Q2m|sEsJSCf3!b$He?-62>n&lHFK5=&)qCT47pvX9_Vl zX+#90=?t!uCtgfXWiVUeR)!!u!LYR%3kYK3&=e5z@st{hT}cgy`JAp_#+SA69`Kd! z(aBZ~$0(#?a&-Xbu!d?&+cqtoS2}F_3wB~kx9NBwJhw4;L^v1tEv)VErATg?mTU3U z9ykKx!R(d!G6Cb-mfDl-8swm3%m*vTppuyNJygIobj_^8pg~4%%9yO4E6#oT^Q@`WK)+Rt}nGvOF)y1B0G`slU8apIGH#Igy2bM#C};T zNzqPbJGv>77}{vp5(zK>!BZ{VF_!vE;ffKt;j?4~tnK3ZN`kQznIBC@S4Pv@Xyu1B zs@Z)9ML4hx=ZC6B;~gt_G1-yaq8ZV6MK5n3sA+am-DsE^OYvgUC?z*QQlf;`6e&T7 z1-sK3IF12?W288o-ll82RwSi9jb^Du=2>c%yGIdNh0m8AW|{(=)0L!?E%4UjLSkc^ zDUnrOSl3|wQ#hkFkC9!~7vp7*K`5o%K}Zm>stG0AHxSHMHgEL3awYdWKbF7@UlU7g zu`UDQc`#stX7HL`41RYk5#3|*IA4##r^DVUxV86mFM~IWZpE%BwUro6X^9vYNjpo& zR>vq1P*Iv>S&;0~_w=R>>`E+oc4>NdJK@YSK?^+5YZM{=a}Be97>2PWFmubINid)b z-6#QU5--A6L&(%*p?``$gEVUi}?}0svcXgk@$Q@zoy7*+U&Q-p^d@49F*ek8+!Y&mHiY@WoSX>$K@|1{X zMo(y)FAy19%eYlxag9PskYP-MJ)MJ_&tT9&Pp72|BkW}KhXLv_W05h?qhT;hwXSHQ zvzxs_=hA4;=I*GpCE9`T*3jT{HMTWyA}zG_g zWd`=m!@XXM!_Say&FhO(loF#e88iaBl140uJF>eTiWHJfLKy~c8vgpI9w&m%$)hKm z;^nK_i{d;j%GDmq3@PP-6MSL|$pF8JG+(`R{^rs>z2vmBtUw|i9s*G6B0~08Nt+(5UiO5f@S1P$RVF(Ok0MIX$zcJ&KRe9$e-n)Ow%yKMR&$}GaElT zKtKS>7G!2YPcQbdN!qbt55AzA_TKXluv0X+S@J;z+NJULH?sBQ+1hHg&4aN%Y9mHvFlqLi*MZ~mk-f2cY$Rz)=^39 z%cv5GZ62oPJ>1G3!0<{->Htn+_a1Ja7?wCLUa%W0J36VO_(5fi6&r9!5W_Bet;L9V zZv(koIPhy*^=R+5Jz{nIf@F6zh7(H)=!he-bgdpurnb;Fc-j2v5@m=CR`_Ta>soAz zj3MHFu*}f9X_-PwY+KXb(LuvRWGO+XS#61}8u;4QgM|sJfRLh1*RjxP*LrES)6)|} z5ft}un|E=icF5?NVj18x@3xO zRwT1%)G$_08)@B)Gk=6UUa+HNZLFu)n$Nfm)ZYwB76Yq(xjkXN$cL}hEOVHn%j(z` zJqD{MrWW=k5*ZP)0f;u>a2>|F07pDHiCmN315={OFc_ATV7VsoVgrIX8h~4%rTxyh zt|fU@#t1Y?H)m+SM}}vBa-#(}tKaqnHgAKA4eju@7)$>(=~yp@N9)_VEo&QXval9LwTT3%I?e321-S7ao$Cbr{E+%oL(kwpH ztu=17(6Q>)q@YO#??StwYz<=q(wfRRkR$`3qf|Hv14GA5JNal+>OZr$Shi;oRMKng z{qjaLV|~V(2(8x=NP2K{E}k1jdwLP4)@n<&T`)$h%TpWRKiPPe#*$lU6Wg~r#b4d0 z`Cyn#EH!Tr+m#i?l?;N6(b1hPX*lwTn$N^>gd*Psu#~ssG(&JsX>K!;D5W!MKG>yG zbS^b~r8#Ka84i832h8TdvOG|R>?_fXF*Y*vu$gAFWZqym6GvAc((TrIP8J$1u1S1p>%-a((RB{+GrXL(xlEj1K=CkpwM4gECrVs=v zzZhpaa?!dho}|MH#_~ZF7R*GE6H?I(bYz)fP?;qTa>&F+Orx_#j6tj`9!<#8MjC3F z;}~jg39)~jVm%m{Y6YfQf$3IYh837;1zN4ZEZ(TG@$p@V1(wrB+QMZ^$Q^<)c`%tR zvK&cfk@DOx3#YAzmD$moPN$L<222P$AK7oN4l?_B$d<{^>>hT_F_>`lw{EiffyIR8?z;5#By>v*2AdQC- z2D@>rgmBOcubpj=>aNugb(34O$aTqRA5KGbI>eW^W3y!$IhSiNblj=V7Rkscr+PdE z$FelOJ!ZyF28`HA^9?pC_rRED($X+<%*NxGplda`U7}?kws$;#c zH4D)B$U^u*x{pddnR!+l+##IAmKYAcyJE&O2t<_GTEllws28j+_Ee*NwLf9j`c+IwL+U%owonk zHq2UBYIOH?n`f@cit z@w-|p@J*Qo$h9N49M>*9d4ixqZ*VQCM=p+cG-204uv(9&8S4Rc;fZg2uQY?{#gqPh zph3H179ph?I%;;|UFEBh?*%n(Nuu{OdQa0sfcB^mpLP4hTy$1*k3{Z62fM{&lntd@3A!}clXP1QDr#}II1?--@NXrU(aB=gMDR3C6cpPtHBI%^<3Y=X;O-RB0TmLLV^Gh^=NRC|qxU)Be4SVd znkmSS1;&RuTL3SI!q?(Ty~WXsl-6v=l!Mx-2Pccb@mf~;Y}QQzZCH7x_n}63D5Q(BN#%nN7C*o)y_@Bf&!lRzv7K{d&Cz;$RJn%XR zUnU^AMVO2+fiG2cVpkSlMaG(DlkCIT zr?MqAgG;)yW#KJsJu&d9p;oq+Uc;IO;VbCg_|}5dWG%hfR@68ojEWsuOofS=fyah3 zy^Zfci#^~!32xHR3)#SCz&LQrmA+;JD2Rs?WCYOK~eShx3-#q*zm1U~Qey1L-W&e#I`pH1~5Y>jH2~I@O>9 za)wFNA%Bs`)@-oSklWK?WjT5pLvD{A;_E{hd78WyTCp21mYy=017K;)2k{kN2yVOa zkGzz{${V(UKisuNNdZf!pb~0Nvr4bhXvASZ8GVdf$GVb|;0_pi!b5GKA-`tnal|sf zTTwpWu%evO5^1-YR)Z4GwPN!4F|`h4f}^+r&bYyP2+&HI<=m zXwS4uel^>&Ng+m9bukf=S^2UByHRHibh#(Pf$*+?9?0@UNv_WkRnmgVhDZ(_SJGJu z-}LT)ZrbqH@%fO5G)ZxWJjZ5~6QxiG&sz~3I$uSA0;}|E2%05XTjn;r<}4Ng>kK14 zDWID(QFs?XCYqTdKz-nGA+~toHD|l1SqurthU!t4Yek|Y*X~5!V9T!0v278sT7{Uk zmPe$X=eg7pNt6a3WM|Z00S#3Z8cWe6rJ&hGx~Yd>$!dwly&G*x|1L^$X@yFjFpZI* zc^#us4OlHg__G!uD)QO6s340Ze?Y5|j9rDL9ON%_^q;|3EdxJ`U<>4@lHfN}65I^R zC~F~$Tfv@?@EIIhrrvrDkCeez$q16iMINmrWsS8%r7`NxqWMS>+2m~4H9tc$btyjWn6J{ZiC@xYuJ`ExH}&w& ztFelt6{xgxiYA?dD5-2QTBK+#<@G}4MW$bQ|u@E zqLGxV8uER#{V>-=WWA>3w9?SopYtf6z5o!(tb-!!nWV)^s~XyV3uws}@kW=$nA)q+ z@dmywfZAv`wH~T#$8{O7D}h@BBf`TamK?D|ozkLzQVxEeF&zm@+Yj7e1j|Gx2aE91 zyyVnMphO04D~+fiYU?!QkP%o9o=jflYP0x$5$zA}>cEY+>Ky!Ex81giO+Tp%BAQ#Op5!?ygCBZE%e8&L9|mbH)tD^p;QS=!7zhiI^1Q0?rDQ)^i(B#qVXeL)0V&};lAXe zG=pPma#p+09~~oPN=8sSlCwg5Z$}*q-*r?&$}OcN2e&2LVnen(ikh^oBRiw;Z*Umc zg&HzkVgWiP*BU8sknf^a%?$vwea?Eoxo@|+uUkLtXR!Uf#sOvoq%Y;u^MAvxK9q0BWU56ge{Rx z4biAJwD!4>kn~Q$m6q!NPkYxM8^>|pXZIevd}zg6iWU{$DVv92*{*0(4@jkUsyZlQ6b(=# zaFC)6>Y_DjqcPGHwUacc)!%PscW3u*??F+NUHgvQ+1+`3^UXKkeDlpWvops~BM0$U zpQ9M#PEd}6XBA(m9*U}pqtW6^-@SHZNGe97LPU#@Q~*iR9x}nWBxht?u#~>67LqyQ z-?mQ-K``zYVtta*L4uLk$7RD;+IGB&V}Jih_cMf;teAbWLaCgPLB*$7GAa&}$SpAj zupR}&>;aAx(LPRvB-q1f46HJd>&H0z7KoTNa5v<f?*o1^q6-rWhK>wMR0Gf`2bq zwSJndz-F##?oQ5UZ#6UT1Z62O*vKnccnGvQhsLby+ygGO)NmB4=n9tI*}U2i7hBUl z9hi&Gj-WG#VepQ{{gls*!^J9A>%{7g} zu5=Emb&Z9o*EgT{I8?DP-5he&B@I*GT%GG#-=;uLr42Uh?CQkj#1AdRVcb=<;TA#B zbC4<#$T!xG%@H#dD!;?s*eE6yQl%OY_ZgjXU89tglT;AcX*ZuAJ3cj1tjO<0zU*bqi8afoNlC1zD!5UBUK?{&RGI{lNHZ>pf;2moqZkds8ZGv zpa<LgmBhq7#tGe5e&{aAY)BZ zGB8FphC=q>3H}{hk(%~l^oYf{o#!UNNw(!EyCS~jMhylw)2KaX2z@&HSbTX27wewj za%iF~8lMB)ewB~X27O)LWPGzN-P z(>MeqS1D@|2T%AEp4Osn&K?nq-AGNGU}Xibs`*vo<_VVfm`qJukWy}y?TTE%p&8q! zDvusAi^Y^{5!`QVI^~_s=C37ZoIicL{o*aCLk_KceaSbd_=98LGObF|0Mfn9a=;GI z;S6esHTngqS?Ix?!jZ#|`#~{E!w@rAuc=WfO@w9xN&*3Ea+0Qq^U5%vavON1AMR=# zjR!_ZF)E))+DDM2S$oRl+Bg{UbaSTWPsKZ$U3G~nz#6Tl&@>i!^0Yf zL98ht7HlId$62(>qiTaXj@UV$5(o7k!J=b3 zc%Qu=WbO5VOk*1%_eV@eVOSBIp)}!8V*>vxp2wHUpzE}xvW9jxtgkTap81rbl6NDe zf%J^d3e@f`IH(^17bwFo=Z5YFb(L{Kqe^0~d)I;qxNbldTKiKs@&G>wYgQOv5-Y7DBwSTlisqvMIC zyU-8plJb!JN)sUGOReJ@i=&s{RGXeQ;=WO zgo={qurdlJY9);VZ8hHV>ZR4V#AEeI8L71y9Zx{diRB(^<#8zSm>Nbr7W0Zi)bYfT zXwAn{)k+hO)kL4ybRDQ1Yv`XiIG9qTv8Jj^R}WrO66NUC&oiN|6n26~X^kXzDU#8X;mWJ~=;)d2)CkZ0wEm)=&g2>^goxZ{2rRb7fqDCS#%D zCx^$e406?}Xm7rfT2YhJ!J3Ub(LShWPYE%~@oZpI_s}kB3AmCrS+9<2<*v&`YH)>8 zuqwP7)4p&tsZ%xIr`H=TQ}39>$ez=o(Y9DGjmBXIw3#i?o~e}{sTk+W3D%}1qoNY^ zBWWXuNuhX{&OPqmL=U_)-j{Eey$o7rEVsCnsGVCfEFE7I0vicI)tcJh?)cT;~t%$dYBM3Q-wxWDP%g((~Ua5wnaj6b#O5^a? zxdsbL;x$wavwnVxiUBMgSHL3IoIFw14K*Sif%e5&IL=(E#V~QbqkdeSd;NG#Q3*_QgX$Yn=L+mFlSE#N^~|GDyz7W6>B zIwl14^=4A(vMI<>h)qb-`>#eWP1rNmB=^X{HzjIiC6}>9ESjjR`BNZ41HlY+vn`IT zB6$oKmq!A0Y;HssPp4~d3$)32SYm60wUgY!Z!loV{=!1!8qGoD*SwtF2TCaWGkaHZ zHd{64zt}&D^~s!|^rb1-b7*1VI&$i#dWIrS;re-Ktn0^1r0`6XruEY|pHD+udT}9g zjn6S@Y(+trOYvNwvq`Rccp-49mtzF8TSmb#(^A(`9K$avqca7%?~}70;oR$lA1kz> zm!4XPV$2P_NWrj<`XtQ%R7^Q_=^IyL!$M7>q=utm)sNQ)p;?`iPAzWaRGw~FN(G*R z53%BOHM=B!5-3VvS_l$0n|%c3rgh<6C_2AdQY-moAwF{!#i_Q>P(m?;oFAVxs)nI4 zsSZn&Au*k)I!%3eHCt_LHgB#_8%iL|(L~2DdX7e0vf>*2Trr5l*EA6LS}tx!hZPWC zM^$Qr@QrD2bIqR=2x^=fX9RXfY(d`%0{!_OHwbIZ|TpfOSd zKMwjQ>+RKbqv6GAn*>|OjprR&78W4y0Cptr_4`mlEgKsz%lE&ETchRz9kI)JYt4#Wh0wR*~{WtvK@FtG-dYK^TiEd9X2`?EEl;`+5Bl ziw7v&T|vk8Boq&D$tSciDtuW|>g38M99=sT#NkXppD>ouN<#|`zXaqLnxPsn7R{Hq zGM5=p;{*=;B6N;I*qiZ<<@8|fQ(vL;YiF*+qwS7#K|a<^aBsp{#<(`C_NR34S;Syz zsgDP=REh|#X#7ZoyvjxP!Pn-Ps~6%AzxJKK{p-R1+WM#Oz5CkOJ=rN?fBT_>`znDNo>lFkz&Ha67GRkK1dwoqVzV7n?6R|0TzlCH~8jw2d@$Y&tnQ zOVXZU<^j}Bd&2F(gJUiiR+nKc$7xtrzhM|%%Z1r35Zo;YXqkbRm3T3;4iIrt*@BZ1 zhMDv5X5(}<)8=V$j+3$hD{H5+IS*Li@GgUnNr#7L;WD#0N!~V*2+3EbFE9S2KuXi; zB_kzmW&n^T;H^v(U^+twXPh%pFK{q>dwXq>hTGfKYi8RB*8LRxm-Pb6+=f)vU4i>1 zB*wXL+1xNZZtN5pBj@E-=7tfMXWW@a-d)uuQob+Z41iEb;0ZJ1nR&;tJ)_56#}cj- z=28KgY&6_KC%2goj&w}ZFs@S}PDMbFV5Gty*cx3M)0KcEs^n4l6Kh+>ek zMsAFSa&o&tZNo7gx0+EwBL~IFx_faQAkXZjbAZY54nEmS=Kwk*A& z+B5QbFvwUsn=3s@=P5G_5BEem>y|Fic?NHTe0UZQr*O^UDk8n%mcEGehBIIY_t)rPmz1x~10(8H4~H(ni7^2QmC` z)mDmap6GE)??RGT^6nNptrTjGtjD3p=UBKnLw zV_B&@YVUkok6Ug70JqrNWt!x*<&xu;BTocCt{K^O8QuXgC&Pt%KGkmIfea!5bUU1O zKs~QGH4OsJWcm$AMAU#g%lA{P0e9A&^*IS;?uPgSJ~-an>O%HF$(?mCnyWqQ>mM+ZaH;ZLaKDqk@U&&X-T&s9GqAeIUE89FB(`E zjg7F?Hq_9`I}KsML+&vt{1nlH*#tP<#ARC`c2BN6M$kPOz>zfx$3j16d1+woIEM_e z*551?K(Hgbf1nyR0Xs8!Wb(vx-}vOAscmP@Ol>)F9DA1r{;t|gHhQRAchX62J`uV} z3)zddlVz+_H#*a9v^}kYjrRjZ+Mr92nx?;y9Jp@|AJ##CWLJ10$7thu`ujjDIhM8 z&&o5>ot5q>a9Exld|MuDM!?-x8w9}xvki<{KIN8Y-ST-RE`L!mAa7=_{1o4E+^=p##7aF$r@EOC@vR8~xA3Urq(%UbDPvv*mK)lmVT&}~Ya6}j?D8E{SM z8Q_AvQxqB$B@ioOv6V%qQa-QBT}S~a^n)&8<@0WjQ;$EbtG4+RaeIgAtD$Poc|A5v@Q*F1{I%2{3s*r(;uhv6+ey2gte{eoISvxW66%i9aM0EIKXr&PpCS0QK?55 zdnAZGB4dwaJamsKw9*vnH$}%ufk^1V+2GOo%|fb>0{0c9RtZSdFa4f!5P6|c@I?RV zK=}eG%fEyI1?r%+gVhS|NW1C+M^ISwA1?2mpj9C#Lk3tO2;Br4{WDtt`iu+Yn2lS0 z(=GptTYlRuzvGsF=9b?@dvphp4H(^jRoyhoP85_21PZ90+~(Ej`yP=fhS8ns#C|G2 zElW!ERh4waFX_lIA0GD+8%aiNq#8C8XvEe4pVC+6h7hIKV}{QxDViQ}HvP;1}oG0%;F-x6r zA_(+PY_Zk`y(e@+4xBK+g3Ns^gMY%^f4~rTRUUXTer9Ik_++0t$pi5HJwVZ~V`to> zr$di%?67%4o;~4jgqz{IOyh+i9^$gI57mhq z4e{B5BZmi8ubbGo>d38!23D;-JaBl`hSkR=R&6{qFwnn#-q$r&%E zm4F7F8<4>OYmpna}13Al*bb_{J&nq|6&dQmuvXHTEqWGHT>VI;r|QxUp#7vw@5_) z_w)mXSQ&}`@^M34B+>leeWwla0Ez4WUVYFI4e@*={qw1{@ZE=b>3iXF2NxX24CC|;ymRr*Ry_0fm+7Cr&x%zSeH7An@DV>| z87Y?Z8-{BDDox(OCu3@EdQygeR;Jp6P<{?IEhi5`lemoWVw#MJ62n{_d`?ge>7S6X zfrZw=-&&Zm`;mT|=!L(U-{v#~CxvOyjvK%|Y*#^pw}+*#Q_{Z6N#V!`u=t?0BZNak z`$-t$!$~5*8^@-o+X0!=0l^M6M1Q|nigW?K%D!2-wF=`^TR!6$MosjL-%oujgd6|B zis1t=Y)fUo5ZE*|H^=Rv+dS7d+m=gQ;C?*W{O zdyo&XmA@-!YC%%jR^#%(R$=Kd3W=vK+=hmR#Ls^EpW?mu-it(NJ+>&&qQFO)0+2Zi zUcA)2e^|p&^GDz{0}-IY%^JT}_(y|2wKo)S=^b#GDNV@ZJ|(NrZd<3b#2LA29{B5=*$V+d8MDb?>41*)v*`ABD` zeR9{1I~TQo0_Ti~MWfq>?+yllSZyW5!P6Iy;np^_?Evha&Ubkk-c5`*kB66v$J;(M|HU7qe*4k) zzj?!@um9u!-u6G==@74^TmK78fj@iO`1Y@69x^BXTzK1?{{P8e{P3aezax&l+;ocV z6%4Fj-{|;;_vx=^!|q5B?_5vad-xHjQ3mk$Dz)w|*Z23c$8? zxplpF8MeM_dR5Z=!;(MjotGE#3d&il{0o^kVYl*EeBPpeTN2>7hk z{#xxX$^!vkT&sIDZ$4kEe1m*i`6u&#K%a%af7s|>iO6NVhDA4apcqm%`A7uIfk1M&)w;9hz zI;phy&PjM)mt39473`+y>QZl9zn(%EEv2?xy`DyxdgI!4wS1jcRIXgl`Y}DZZr$=@ j;vfe|Eq|VPzJ+b2Z%hGvl+lS;n>I9#+KTbfqrm?G#FM@A literal 0 HcmV?d00001 diff --git a/DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.pdb b/DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fa4b885d81b25a2f6ea4d41ba92b015c03635c8b GIT binary patch literal 108032 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.xml b/DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.xml new file mode 100644 index 0000000..553ecd5 --- /dev/null +++ b/DestroyerProtectionLib/bin/Release/DestroyerProtectionLib.xml @@ -0,0 +1,164 @@ + + + + +DestroyerProtectionLib + + + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + A delay interval to wait (asynchronously) before proceeding to automatic deletion. + + ---------------------------------------------------------------------------------------------------- + + + + Execute CMD with message And Config Console Size. + + + + Encrypt text using AES Algorithm + + Text to encrypt + Password with which to encrypt + Returns encrypted text + + + + Decrypt text using AES Algorithm + + Text to decrypt + Password with which to decrypt + Returns decrypted text + + + + Gets the files those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the files information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the filepaths. + dirPath or searchOption + + + Gets the directories those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the dirrectories information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the directory paths. + dirPath or searchOption + + + Analyzes a directory path and perform specific changes on it. + + The directory path. + dirPath;Value is null, empty, or white-spaced. + + + Collects the files those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new files. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new filepaths. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the directories those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directories. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Collects the directory paths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directory paths. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Searchs for files and directories. + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/DestroyerProtectionLib/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/DestroyerProtectionLib/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..52e7c1b1a70676ded624131dcde5dfe7fdffbaf3 GIT binary patch literal 6536 zcmeHMZBrXJ5VpZ67($C_N)l+&OW&J%ZtMUhWQGp}v;usmLim9)EB?dhIfQt4DG^$#@s#dd!Ph_}gICADlA zdzvw4rZktqa`A;-z)#*<4TT96TMk%g6cu@EE36Cd{=(Wd zdB}q0dSR}y&{%8~i{3(k&e0K6`SJsrUWZ(GsBb+mOv%;rURF z)?w_yrLnRU9_;riGHX;dnTeNG!@6eX4G7U+@n#?uE3pOzSF8uxfPEL%bp$`ZeNsnU zXX-9zB05a1AfTVvzyr^u3Lh(QQ_5v-9Ve|EZkDkWm-$M z0@iZ_dxDVbE@56J3=H>Kcga;r9WQAzM1~1TrG|kHrPFBwU!Z@ERNLAxAA$}}%{3TC z_D?Keio5m(xM07yvvbQ7i1TeKLbgS@+J6yGts2FHX5R9(E0y5&izjFPe?K^ji*&(V z__4S&H_r+$mv-~F*>Oir?S~(BlXdGI7ne>CLbM-I6hBS<5PrvFD&Yrc5TN~tp+SHq z_2S$`aGM@&Fa&RY(l9F`Ty7eF=>y>WAh5F^=NLMKy(QeYYZO9UZ% zjYuPWyvEHTp2U_zOo?`quYo)|UA?h3c}Bj0(W%p)d0?uixij({Soji74!G7iVp;^QImDv~&&dx!l07<-2a#_R njfOIHsRtk}hbR}@y(k1QKClh{HMq(C>)!!`n=CHq?vDQpn^K23 literal 0 HcmV?d00001 diff --git a/DestroyerProtectionLib/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/DestroyerProtectionLib/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..70feb330b68c949a7ab62fa6e88f1b2f9711aab2 GIT binary patch literal 6852 zcmeHMUsKyg5VwO-FoYJOC1i#Nf^o|fGK}p&JBWd^v^EzcoqKlz zT!xo^k$!?sKVrKp8}T=^57G<|mdER3?{0s$dn@U8ODdg8rT)Q-e(Ab*2Zgi7Z7Gy! zYIB3DfVnjtI9!-Z!t;c`QeH0PH$W;b{Dsm>vq+ypekpKuAYs9WKuhKp^6Npv<@V3e zsf&H^7aGOs=4^AWSt>cRMK;X_3G&qkklqB`bqH_8*C0iEQ?hm&q*-Nh#cu~%J;2G2 znCpr|a2AyUuirFhqqCYIY)xQ8-jjG}mRT_C4;}HrTYkbx^c?{xv45GEzZsVbZQ8Z1j zgU1A8GD)}^XpQ_&nRrMD8^#pES?C=usD)>be0UVW-Ro^mzLzmb)X!yB6#I)gX3+*% z5h;}rhV(N;@RL9&GtEpA=+)U-E5v-9lvg1pCCU>-*i6DJGX4~e?<8ToEE#5eD~wSd zK^jSbtTCUpfSw#7&NIY;Bycvl?}$TXR)q9a2=zHaZ6yKqi|2*_Um(D4QUI&m|BX;G z^cv`Mmp*ri^^_hr^$%a7J6QAZ)ZmWdzr)bZLAMBpJ%4ASx4_lvMZYvb<;M?JQIg2} zxHmuMgWA^i&`|a{KJ`wo9Fbru$QoawSc~<(rK>g%#{rZw+=fwCH z`{N+^1++7ITxEwu?Wm-AVtj|HUooihQT_(^Bg&s6CQnBj!$cA9<{96k$#=2lLxtJQ jL3*2`^8sCV!z7>#p=;o;{0e#-fP literal 0 HcmV?d00001 diff --git a/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.Resources.resources b/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.dll b/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..2b59027d814d3133798c187401bc15257dd8c2c8 GIT binary patch literal 87040 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.pdb b/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fa4b885d81b25a2f6ea4d41ba92b015c03635c8b GIT binary patch literal 108032 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.vbproj.FileListAbsolute.txt b/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..a798f54 --- /dev/null +++ b/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.vbproj.FileListAbsolute.txt @@ -0,0 +1,8 @@ +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionLib\obj\Release\DestroyerProtectionLib.Resources.resources +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionLib\obj\Release\DestroyerProtectionLib.vbproj.GenerateResource.Cache +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionLib\bin\Release\DestroyerProtectionLib.dll +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionLib\bin\Release\DestroyerProtectionLib.pdb +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionLib\bin\Release\DestroyerProtectionLib.xml +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionLib\obj\Release\DestroyerProtectionLib.dll +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionLib\obj\Release\DestroyerProtectionLib.xml +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionLib\obj\Release\DestroyerProtectionLib.pdb diff --git a/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.vbproj.GenerateResource.Cache b/DestroyerProtectionLib/obj/Release/DestroyerProtectionLib.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..0d54e87fa8291f6fe8b6029e8d21accd68dd5dfb GIT binary patch literal 919 zcma)4QA^xF5Kd}xUUDbIha#nYIK+p7N4Tp<`*IX|Vii5mdWa8&vdKshL4ON(NimcJ?tF4(0Yh zYzd#)-Zztc1N;j44lE#-kf#c8iNJvcJljiSeGm^IBKU z;!};wEHzz=0*_PA7A_MYJTyY?3f8~;|DD=nGhYY`He!mgk#JTU!Hy5u6RXN$N8o6qTC^AJ28v`tFYL&g{1 z(f1RDYxe_F@q}$=~Gw~z8#U@ + + + +DestroyerProtectionLib + + + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + A delay interval to wait (asynchronously) before proceeding to automatic deletion. + + ---------------------------------------------------------------------------------------------------- + + + + Execute CMD with message And Config Console Size. + + + + Encrypt text using AES Algorithm + + Text to encrypt + Password with which to encrypt + Returns encrypted text + + + + Decrypt text using AES Algorithm + + Text to decrypt + Password with which to decrypt + Returns decrypted text + + + + Gets the files those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the files information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the filepaths. + dirPath or searchOption + + + Gets the directories those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the dirrectories information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the directory paths. + dirPath or searchOption + + + Analyzes a directory path and perform specific changes on it. + + The directory path. + dirPath;Value is null, empty, or white-spaced. + + + Collects the files those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new files. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new filepaths. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the directories those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directories. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Collects the directory paths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directory paths. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Searchs for files and directories. + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/DestroyerProtectionLib/obj/Release/TempPE/My Project.Resources.Designer.vb.dll b/DestroyerProtectionLib/obj/Release/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..3dfe1e3846e87d0d701a8892473a39f342d4e82f GIT binary patch literal 7680 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 + + + + + \ No newline at end of file diff --git a/DestroyerProtectionTest/DestroyerProtectionTest.csproj b/DestroyerProtectionTest/DestroyerProtectionTest.csproj new file mode 100644 index 0000000..b2fb24d --- /dev/null +++ b/DestroyerProtectionTest/DestroyerProtectionTest.csproj @@ -0,0 +1,95 @@ + + + + + Debug + AnyCPU + {95C3DCB6-30B3-4D9E-857F-E6C60262055A} + WinExe + Properties + DestroyerProtectionTest + DestroyerProtectionTest + v4.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + app.manifest + + + + ..\DestroyerProtectionLib\bin\Release\DestroyerProtectionLib.dll + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + \ No newline at end of file diff --git a/DestroyerProtectionTest/Form1.Designer.cs b/DestroyerProtectionTest/Form1.Designer.cs new file mode 100644 index 0000000..c104be6 --- /dev/null +++ b/DestroyerProtectionTest/Form1.Designer.cs @@ -0,0 +1,135 @@ +namespace DestroyerProtectionTest +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.CheckTimer1 = new System.Windows.Forms.Timer(this.components); + this.Button2 = new System.Windows.Forms.Button(); + this.TextBox1 = new System.Windows.Forms.TextBox(); + this.Button1 = new System.Windows.Forms.Button(); + this.MonitorTimer1 = new System.Windows.Forms.Timer(this.components); + this.Label1 = new System.Windows.Forms.Label(); + this.TextBox2 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // CheckTimer1 + // + this.CheckTimer1.Tick += new System.EventHandler(this.CheckTimer1_Tick); + // + // Button2 + // + this.Button2.Location = new System.Drawing.Point(237, 8); + this.Button2.Name = "Button2"; + this.Button2.Size = new System.Drawing.Size(87, 51); + this.Button2.TabIndex = 7; + this.Button2.Text = "Monitor Mode"; + this.Button2.UseVisualStyleBackColor = true; + this.Button2.Click += new System.EventHandler(this.Button2_Click); + // + // TextBox1 + // + this.TextBox1.BackColor = System.Drawing.Color.Black; + this.TextBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TextBox1.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TextBox1.ForeColor = System.Drawing.Color.White; + this.TextBox1.Location = new System.Drawing.Point(9, 70); + this.TextBox1.Multiline = true; + this.TextBox1.Name = "TextBox1"; + this.TextBox1.Size = new System.Drawing.Size(315, 154); + this.TextBox1.TabIndex = 6; + // + // Button1 + // + this.Button1.Location = new System.Drawing.Point(9, 8); + this.Button1.Name = "Button1"; + this.Button1.Size = new System.Drawing.Size(87, 51); + this.Button1.TabIndex = 5; + this.Button1.Text = "Check Mode"; + this.Button1.UseVisualStyleBackColor = true; + this.Button1.Click += new System.EventHandler(this.Button1_Click); + // + // MonitorTimer1 + // + this.MonitorTimer1.Tick += new System.EventHandler(this.MonitorTimer1_Tick); + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(9, 231); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(60, 13); + this.Label1.TabIndex = 9; + this.Label1.Text = "Description"; + // + // TextBox2 + // + this.TextBox2.BackColor = System.Drawing.Color.Black; + this.TextBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TextBox2.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TextBox2.ForeColor = System.Drawing.Color.Red; + this.TextBox2.Location = new System.Drawing.Point(9, 247); + this.TextBox2.Multiline = true; + this.TextBox2.Name = "TextBox2"; + this.TextBox2.Size = new System.Drawing.Size(315, 154); + this.TextBox2.TabIndex = 8; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(333, 408); + this.Controls.Add(this.Button2); + this.Controls.Add(this.TextBox1); + this.Controls.Add(this.Button1); + this.Controls.Add(this.Label1); + this.Controls.Add(this.TextBox2); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "Form1"; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.Form1_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + internal System.Windows.Forms.Timer CheckTimer1; + internal System.Windows.Forms.Button Button2; + internal System.Windows.Forms.TextBox TextBox1; + internal System.Windows.Forms.Button Button1; + internal System.Windows.Forms.Timer MonitorTimer1; + internal System.Windows.Forms.Label Label1; + internal System.Windows.Forms.TextBox TextBox2; + } +} + diff --git a/DestroyerProtectionTest/Form1.cs b/DestroyerProtectionTest/Form1.cs new file mode 100644 index 0000000..5efb3d9 --- /dev/null +++ b/DestroyerProtectionTest/Form1.cs @@ -0,0 +1,173 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Security; +using System.Net; +using Microsoft.VisualBasic; +using System.Runtime.InteropServices; +using DestroyerProtectionLib; + + +namespace DestroyerProtectionTest +{ + + // [assembly: Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] + // 'Optional + + + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + + } + + + public struct ResultScan + { + public static string ProcessResult = string.Empty; + public static string DebuggersResult = string.Empty; + public static string VMResult = string.Empty; + public static bool Finish = false; + } + + private void Button1_Click(object sender, EventArgs e) + { + ResultScan.ProcessResult = string.Empty; + ResultScan.DebuggersResult = string.Empty; + ResultScan.VMResult = string.Empty; + ResultScan.Finish = false; + TextBox1.Text = string.Empty; + DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.Start(DestroyerProtectionLib.Destroyer.AntiAnalysis.MainAnalysis.SearchType.FromNameandTitle, DestroyerProtectionLib.Destroyer.AntiDebug.MainDebug.DebugDetectionTypes.AllScanEgines, DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.VMScanType.By_Directory_Known); + CheckTimer1.Enabled = true; + } + + private void CheckTimer1_Tick(object sender, EventArgs e) + { + DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType Finispscan = DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.Process_scanner; + DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType FinisDbugscan = DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.Debugers_scanner; + DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType FinisVMscan = DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.VM_scanner; + DestroyerProtectionLib.Destroyer.MainDirScan Mdirs = new DestroyerProtectionLib.Destroyer.MainDirScan(); + bool MdirBool = Mdirs.MaliciousDir(); + + if (Finispscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Danger) + ResultScan.ProcessResult = "[DANGER] Malicious Process has been Detected"; + else if (Finispscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Secure) + ResultScan.ProcessResult = "[SECURE] Malicious Process Not Detected"; + + if (FinisDbugscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Danger) + ResultScan.DebuggersResult = "[DANGER] Debuggers Detected"; + else if (FinisDbugscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Secure) + ResultScan.DebuggersResult = "[SECURE] Debuggers not Detected"; + + if (FinisVMscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Danger) + ResultScan.VMResult = "[DANGER] Virutal Machines Have Been Detected"; + else if (FinisVMscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Secure) + ResultScan.VMResult = "[SECURE] No Virtual Machines Found"; + + if (!(ResultScan.ProcessResult == string.Empty) & !(ResultScan.DebuggersResult == string.Empty) & !(ResultScan.VMResult == string.Empty)) + { + if (MdirBool == true) + TextBox1.Text += "Detected DnSpy or De4dot in your system." + Environment.NewLine; + TextBox1.Text += ResultScan.ProcessResult + Environment.NewLine + ResultScan.DebuggersResult + Environment.NewLine + ResultScan.VMResult + Environment.NewLine; + TextBox1.Text += DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.LogResult + Environment.NewLine; + TextBox2.Text += DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.DetectDescription + Environment.NewLine; + ResultScan.Finish = true; + DestroyerProtectionLib.Destroyer.AntiDump.MainDump.AntiDumpEnabled(this); + CheckTimer1.Enabled = false; + } + } + + private void Button2_Click(object sender, EventArgs e) + { + ResultScan.ProcessResult = string.Empty; + ResultScan.DebuggersResult = string.Empty; + ResultScan.VMResult = string.Empty; + ResultScan.Finish = false; + TextBox1.Text = string.Empty; + DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.MonitorAsync(DestroyerProtectionLib.Destroyer.AntiAnalysis.MainAnalysis.SearchType.FromNameandTitle, DestroyerProtectionLib.Destroyer.AntiDebug.MainDebug.DebugDetectionTypes.AllScanEgines, DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.VMScanType.By_Directory_Known); + MonitorTimer1.Enabled = true; + } + + private void MonitorTimer1_Tick(object sender, EventArgs e) + { + DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType Finispscan = DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.Process_scanner; + DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType FinisDbugscan = DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.Debugers_scanner; + DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType VMscanner = DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.VM_scanner; + DestroyerProtectionLib.Destroyer.MainDirScan Mdirs = new DestroyerProtectionLib.Destroyer.MainDirScan(); + + if (Finispscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Danger) + ResultScan.ProcessResult = "[DANGER] Malicious Process has been Detected"; + else if (Finispscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Secure) + ResultScan.ProcessResult = "[SECURE] Malicious Process Not Detected"; + + if (FinisDbugscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Danger) + ResultScan.DebuggersResult = "[DANGER] Debuggers Detected"; + else if (FinisDbugscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Secure) + ResultScan.DebuggersResult = "[SECURE] Debuggers not Detected"; + + if (VMscanner == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Danger) + ResultScan.VMResult = "[DANGER] Virutal Machines Have Been Detected"; + else if (Finispscan == DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.ResultType.Secure) + ResultScan.VMResult = "[SECURE] No Virtual Machines Found"; + + if (!(ResultScan.ProcessResult == string.Empty)) + { + // DeleteSelfApplication() ' Auto Delete Function + TextBox1.Text += ResultScan.ProcessResult + Environment.NewLine; + TextBox1.Text += DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.LogResult + Environment.NewLine; + TextBox2.Text += DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.DetectDescription + Environment.NewLine; + ResultScan.Finish = true; + MonitorTimer1.Enabled = false; + } + + if (!(ResultScan.DebuggersResult == string.Empty)) + { + // DeleteSelfApplication() ' Auto Delete Function + TextBox1.Text += ResultScan.DebuggersResult + Environment.NewLine; + TextBox1.Text += DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.LogResult + Environment.NewLine; + TextBox2.Text += DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.DetectDescription + Environment.NewLine; + ResultScan.Finish = true; + MonitorTimer1.Enabled = false; + } + + if (Mdirs.MaliciousDir() == true) + { + // DeleteSelfApplication() ' Auto Delete Function + TextBox1.Text += "Detect DnSpy and De4dot." + Environment.NewLine; + TextBox2.Text += DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.DetectDescription + Environment.NewLine; + ResultScan.Finish = true; + MonitorTimer1.Enabled = false; + } + + if (!(ResultScan.VMResult == string.Empty)) + { + // DeleteSelfApplication() ' Auto Delete Function + TextBox1.Text += ResultScan.VMResult + Environment.NewLine; + TextBox2.Text += DestroyerProtectionLib.Destroyer.Protect.DestroyerProtect.DetectDescription + Environment.NewLine; + ResultScan.Finish = true; + MonitorTimer1.Enabled = false; + } + } + + + + + } +} diff --git a/DestroyerProtectionTest/Form1.resx b/DestroyerProtectionTest/Form1.resx new file mode 100644 index 0000000..a8a0045 --- /dev/null +++ b/DestroyerProtectionTest/Form1.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 23, 15 + + + 145, 15 + + \ No newline at end of file diff --git a/DestroyerProtectionTest/Program.cs b/DestroyerProtectionTest/Program.cs new file mode 100644 index 0000000..9d85646 --- /dev/null +++ b/DestroyerProtectionTest/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace DestroyerProtectionTest +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/DestroyerProtectionTest/Properties/AssemblyInfo.cs b/DestroyerProtectionTest/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..47efeae --- /dev/null +++ b/DestroyerProtectionTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DestroyerProtectionTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DestroyerProtectionTest")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0f12d3df-f95f-4c53-8318-8af0c259ff73")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DestroyerProtectionTest/Properties/Resources.Designer.cs b/DestroyerProtectionTest/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e617f67 --- /dev/null +++ b/DestroyerProtectionTest/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DestroyerProtectionTest.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DestroyerProtectionTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/DestroyerProtectionTest/Properties/Resources.resx b/DestroyerProtectionTest/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/DestroyerProtectionTest/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/DestroyerProtectionTest/Properties/Settings.Designer.cs b/DestroyerProtectionTest/Properties/Settings.Designer.cs new file mode 100644 index 0000000..88c422c --- /dev/null +++ b/DestroyerProtectionTest/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DestroyerProtectionTest.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/DestroyerProtectionTest/Properties/Settings.settings b/DestroyerProtectionTest/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/DestroyerProtectionTest/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/DestroyerProtectionTest/app.manifest b/DestroyerProtectionTest/app.manifest new file mode 100644 index 0000000..b2aba98 --- /dev/null +++ b/DestroyerProtectionTest/app.manifest @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.dll b/DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..2b59027d814d3133798c187401bc15257dd8c2c8 GIT binary patch literal 87040 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.pdb b/DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fa4b885d81b25a2f6ea4d41ba92b015c03635c8b GIT binary patch literal 108032 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.xml b/DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.xml new file mode 100644 index 0000000..553ecd5 --- /dev/null +++ b/DestroyerProtectionTest/bin/Release/DestroyerProtectionLib.xml @@ -0,0 +1,164 @@ + + + + +DestroyerProtectionLib + + + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + + ---------------------------------------------------------------------------------------------------- + + Deletes the self application executable file. + + ---------------------------------------------------------------------------------------------------- + + A delay interval to wait (asynchronously) before proceeding to automatic deletion. + + ---------------------------------------------------------------------------------------------------- + + + + Execute CMD with message And Config Console Size. + + + + Encrypt text using AES Algorithm + + Text to encrypt + Password with which to encrypt + Returns encrypted text + + + + Decrypt text using AES Algorithm + + Text to decrypt + Password with which to decrypt + Returns decrypted text + + + + Gets the files those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the files information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + An instance containing the filepaths. + dirPath or searchOption + + + Gets the directories those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the dirrectories information. + dirPath or searchOption + + + Gets the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + An instance containing the directory paths. + dirPath or searchOption + + + Analyzes a directory path and perform specific changes on it. + + The directory path. + dirPath;Value is null, empty, or white-spaced. + + + Collects the files those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new files. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the filepaths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new filepaths. + The root directory path to search for files. + The searching mode. + The file name pattern(s) to match. + The file extension pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to file or directory. + + + Collects the directories those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directories. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Collects the directory paths those matches the criteria inside the specified directory and/or sub-directories. + + The instance to enqueue new directory paths. + The root directory path to search for directories. + The searching mode. + The directory path pattern(s) to match. + The directory name pattern(s) to match. + If True, ignores the comparing case of and patterns. + Determines whether exceptions will be thrown, like access denied to directory. + + + Searchs for files and directories. + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.exe b/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.exe new file mode 100644 index 0000000000000000000000000000000000000000..e3c198a4f4c4bdbe853a8202bd87991b8c7bc1a2 GIT binary patch literal 15360 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 + + + + + \ No newline at end of file diff --git a/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.pdb b/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.pdb new file mode 100644 index 0000000000000000000000000000000000000000..f25062527d9a75876702ac928af4ecae42ecf422 GIT binary patch literal 28160 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe b/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..666c0af121f7f77dea5803b5413cd87d032bfe9b GIT binary patch literal 23168 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe.config b/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe.manifest b/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/DestroyerProtectionTest/bin/Release/DestroyerProtectionTest.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/DestroyerProtectionTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/DestroyerProtectionTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..c2a1300dcef4e981f35be2fdfcedc8a9bfc274d7 GIT binary patch literal 7032 zcmeHMZByGu5VnK4UOC1i#V#KtXC$S}48=^zHq(%D>)bne{= z<1&2cFX=Dn^e48vvMuu#+7HqUAABCKk9*l?Z?%%1T@uMeBJmG2{Ka| z(8e}bK6R?vx4AHi!gYnWURuj#x0zI2cq@e$Mjk)8Y|(eLFWHL6d@ZSy%WnB~hg-j} zPE8y!Z>64}Z!9*J8ij(rn5Xk}6d_-J0O_^Q9UJl1Jk-M=tb7LE<)eS(8EDw|A)+p2zDG5rRVsAs(C3CT*VLBSR4p3-37z`CyD=Ql6v zs_QO&z^_;F_{#YCU0Datsq`f?OI$Kb3(1+9YT25~Dx=am+@ktWO*JnKOthqEfQRr@ z(~>p0(y}wykcNY4hAx~1MdzJy4rS)j)TZ$G5tC1^A1-m#a%cwuFK_Gx+FW#Y= z253|-&OIcz=@Ag)=@fQHQ2-Z6r0;@&pD`3^6yqo+K#Y@nAQNN~#Ou>aj}E=60y}O~ z$;^HO^_%i{PnjHiMXpJ2~b+#&a&Hx6TYV?IA$SWbTm ze`nCy_$4zaj5haNn;>~l8Mfn)he3~>unb-gbTN4Z;(fI40S`j*pn?3FRi-r%GGzd3 z4?1KP@ZLp>x7unMR*-&>InYi)JDAXfR3jT?9%gtkvb_L7(*}VQ`ubu>ndtDrGNV{M zq_P$G@iTz=HBy*9VGYzj2K8p7>O&?iS%B~a5WF}LN>oz=1zh<-f*4?a9@nV?ObqWV zAkB-7gAa?~Bu@cnCk`Au#227^KMv(3N#S|W3{LPRfUr0~cDQGYwlc~>x+;Kr z22i_kK)rLF0N^VCIEV{igL}UrN($dyL&7yAT#=R*qRv->SN}c~YFstCulVn5Z2!1h zIfR+NQ{h|SYRP3-Pr;h$2TMP3#C_BkKjQ3icW-Pg{WU!G`YnUZ9jnOX8xWh3K5;Xc z5Cpovg-)srmER;L2SLVg-iRb-3s*)nm_A_3Ul||!%u_O$ zeqcIA@*twUcBB9*-$oh^Wol6yIC=(?8f!-csdJWu#5rR7|91Ek`@UnoqQdHTy`mjYJ@5*B<2v}A5ByB^eCZvPDJ zn%D<_p`I@`W*c*jLcy8MvmzTL$d?~LdL3}rA-ok|gA}bz$yzOtW`)TWzZGcp00%!} zt}70~SyT$Vy4zkp(%{pq)F}2|5`Kd>%iM(toB0lRn1-{SRI8>Mf$Nqf^Wad({j;VT zt7F^!3vFfLI%w|`s;n{D1l=804eAQ?8&sm6^QJE(l%Ts36yQh$C_)p-ogtSsovxBH?id4xkw^@nypv2O4g8?|bFkW08a#A5+%;R1 z8<{_X50cyFDlWlpVQcG#F6ieQ%ne|jak)F)?ON56`^{X|Q?`&UulG*Q%>O<(b8~Fg zp8cUPUz~yb%lYlxP4l>=Q;lOCwxeCvTdppd?7L_jUerBJaVWp#J{9o+>N{v0KGb*6 zs9v1gL~hdqD2CH1Dh`rBE|5syMS)*KB+?{?NsOQvHtwNJ7^5g&A6Ghb=v5Wj@gb97 zbs4N>zFDqyiDB+w#+=QavC0mETs}H6K0-ZzB$r-UZxwP%t2(o)m`hySDhWIAz}L!J ztd^`2vN$Q)Ad&MB(Lq9TU0n^kS)%^ls(=ej0rf$SSwkLF0VUjnF6pg610?v!pG=$C zdyxK^%o;;6d2!}v+@35jGT1&&?b)trS*jn$`c&BC6DoO%yT*Mi4P#y2Ear=a`Shpw ze}Xxy>8}Gb&ttb2=fGCeu)(3jEjfr zpQ3szQuW;+K|+X-MFc+%gc8%tB!Mp1i+w}PXK`5-V$!+&91-fVSOqOtwCNrUE%^d* zHsin{Bc7x3oj8=2B*TlY8Cviqf-ESoMs1eP@WpxQT%rp+BrB)iek&(sqS0gYBs5#Dx!4o z2eVpn_>%dGqB#P-O)Yj=*H literal 0 HcmV?d00001 diff --git a/DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.Form1.resources b/DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.Properties.Resources.resources b/DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.csproj.FileListAbsolute.txt b/DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..8d5616b --- /dev/null +++ b/DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.csproj.FileListAbsolute.txt @@ -0,0 +1,12 @@ +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\obj\Release\DestroyerProtectionTest.csprojResolveAssemblyReference.cache +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\obj\Release\DestroyerProtectionTest.Form1.resources +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\obj\Release\DestroyerProtectionTest.Properties.Resources.resources +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\obj\Release\DestroyerProtectionTest.csproj.GenerateResource.Cache +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\bin\Release\DestroyerProtectionTest.exe.config +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\bin\Release\DestroyerProtectionTest.exe +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\bin\Release\DestroyerProtectionTest.pdb +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\bin\Release\DestroyerProtectionLib.dll +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\bin\Release\DestroyerProtectionLib.pdb +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\bin\Release\DestroyerProtectionLib.xml +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\obj\Release\DestroyerProtectionTest.exe +C:\Users\S4Lsalsoft\Documents\ASD\DestroyerProtection\DestroyerProtectionTest\obj\Release\DestroyerProtectionTest.pdb diff --git a/DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.csproj.GenerateResource.Cache b/DestroyerProtectionTest/obj/Release/DestroyerProtectionTest.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..100b97704671194345994df86430ddb6f07e34db GIT binary patch literal 977 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 literal 0 HcmV?d00001 diff --git a/DestroyerProtectionTest/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/DestroyerProtectionTest/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/DestroyerProtectionTest/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/DestroyerProtectionTest/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/DestroyerProtectionTest/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/DestroyerProtectionTest/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29