├── .gitattributes ├── .gitignore ├── 111.gif ├── Kernel_Force_Delete.sln ├── Kernel_Force_Delete ├── CRTCPP.hpp ├── IO_Control.cc ├── IO_Control.h ├── Kernel_Force_Delete.cc ├── Kernel_Force_Delete.h ├── Kernel_Force_Delete.inf ├── Kernel_Force_Delete.vcxproj ├── Kernel_Force_Delete.vcxproj.filters ├── Link_List.hpp ├── Main.cc ├── NtSysAPI_Func.hpp ├── Ntddk.hpp └── Win7Debug │ └── Kernel_Force_Delete.inf ├── Kernel_Force_Delete_R3 ├── Kernel_Force_Delete_R3.sln └── Kernel_Force_Delete_R3 │ ├── GeneratedFiles │ ├── qrc_Kernel_Force_Delete_R3.cpp │ └── ui_Kernel_Force_Delete_R3.h │ ├── Kernel_Force_Delete_R3.cpp │ ├── Kernel_Force_Delete_R3.h │ ├── Kernel_Force_Delete_R3.qrc │ ├── Kernel_Force_Delete_R3.ui │ ├── Kernel_Force_Delete_R3.vcxproj │ ├── Kernel_Force_Delete_R3.vcxproj.filters │ └── main.cpp ├── Kernel_Force_Delete_R3_Test ├── Kernel_Force_Delete_R3_Test.sln └── Kernel_Force_Delete_R3_Test │ ├── Kernel_Force_Delete_R3_Test.cpp │ ├── Kernel_Force_Delete_R3_Test.vcxproj │ ├── Kernel_Force_Delete_R3_Test.vcxproj.filters │ ├── ReadMe.txt │ ├── stdafx.cpp │ ├── stdafx.h │ └── targetver.h ├── Readme.md └── Win7Debug └── Kernel_Force_Delete.inf /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.sln.docstates 8 | *.tlog 9 | *.db 10 | 11 | # Build results 12 | [Dd]ebug/ 13 | [Dd]ebugPublic/ 14 | [Rr]elease/ 15 | x64/ 16 | build/ 17 | bld/ 18 | [Bb]in/ 19 | [Oo]bj/ 20 | 21 | # Roslyn cache directories 22 | *.ide/ 23 | 24 | # MSTest test Results 25 | [Tt]est[Rr]esult*/ 26 | [Bb]uild[Ll]og.* 27 | 28 | #NUNIT 29 | *.VisualState.xml 30 | TestResult.xml 31 | 32 | # Build Results of an ATL Project 33 | [Dd]ebugPS/ 34 | [Rr]eleasePS/ 35 | dlldata.c 36 | 37 | *_i.c 38 | *_p.c 39 | *_i.h 40 | *.ilk 41 | *.meta 42 | *.obj 43 | *.pch 44 | *.pdb 45 | *.pgc 46 | *.pgd 47 | *.rsp 48 | *.sbr 49 | *.tlb 50 | *.tli 51 | *.tlh 52 | *.tmp 53 | *.tmp_proj 54 | *.log 55 | *.vspscc 56 | *.vssscc 57 | .builds 58 | *.pidb 59 | *.svclog 60 | *.scc 61 | 62 | # Chutzpah Test files 63 | _Chutzpah* 64 | 65 | # Visual C++ cache files 66 | ipch/ 67 | *.aps 68 | *.ncb 69 | *.opensdf 70 | *.sdf 71 | *.cachefile 72 | 73 | # Visual Studio profiler 74 | *.psess 75 | *.vsp 76 | *.vspx 77 | 78 | # TFS 2012 Local Workspace 79 | $tf/ 80 | 81 | # Guidance Automation Toolkit 82 | *.gpState 83 | 84 | # ReSharper is a .NET coding add-in 85 | _ReSharper*/ 86 | *.[Rr]e[Ss]harper 87 | *.DotSettings.user 88 | 89 | # JustCode is a .NET coding addin-in 90 | .JustCode 91 | 92 | # TeamCity is a build add-in 93 | _TeamCity* 94 | 95 | # DotCover is a Code Coverage Tool 96 | *.dotCover 97 | 98 | # NCrunch 99 | _NCrunch_* 100 | .*crunch*.local.xml 101 | 102 | # MightyMoose 103 | *.mm.* 104 | AutoTest.Net/ 105 | 106 | # Web workbench (sass) 107 | .sass-cache/ 108 | 109 | # Installshield output folder 110 | [Ee]xpress/ 111 | 112 | # DocProject is a documentation generator add-in 113 | DocProject/buildhelp/ 114 | DocProject/Help/*.HxT 115 | DocProject/Help/*.HxC 116 | DocProject/Help/*.hhc 117 | DocProject/Help/*.hhk 118 | DocProject/Help/*.hhp 119 | DocProject/Help/Html2 120 | DocProject/Help/html 121 | 122 | # Click-Once directory 123 | publish/ 124 | 125 | # Publish Web Output 126 | *.[Pp]ublish.xml 127 | *.azurePubxml 128 | ## TODO: Comment the next line if you want to checkin your 129 | ## web deploy settings but do note that will include unencrypted 130 | ## passwords 131 | #*.pubxml 132 | 133 | # NuGet Packages Directory 134 | packages/* 135 | ## TODO: If the tool you use requires repositories.config 136 | ## uncomment the next line 137 | #!packages/repositories.config 138 | 139 | # Enable "build/" folder in the NuGet Packages folder since 140 | # NuGet packages use it for MSBuild targets. 141 | # This line needs to be after the ignore of the build folder 142 | # (and the packages folder if the line above has been uncommented) 143 | !packages/build/ 144 | 145 | # Windows Azure Build Output 146 | csx/ 147 | *.build.csdef 148 | 149 | # Windows Store app package directory 150 | AppPackages/ 151 | 152 | # Others 153 | sql/ 154 | *.Cache 155 | ClientBin/ 156 | [Ss]tyle[Cc]op.* 157 | ~$* 158 | *~ 159 | *.dbmdl 160 | *.dbproj.schemaview 161 | *.pfx 162 | *.publishsettings 163 | node_modules/ 164 | 165 | # RIA/Silverlight projects 166 | Generated_Code/ 167 | 168 | # Backup & report files from converting an old project file 169 | # to a newer Visual Studio version. Backup files are not needed, 170 | # because we have git ;-) 171 | _UpgradeReport_Files/ 172 | Backup*/ 173 | UpgradeLog*.XML 174 | UpgradeLog*.htm 175 | 176 | # SQL Server files 177 | *.mdf 178 | *.ldf 179 | 180 | # Business Intelligence projects 181 | *.rdl.data 182 | *.bim.layout 183 | *.bim_*.settings 184 | 185 | # Microsoft Fakes 186 | FakesAssemblies/ 187 | 188 | # LightSwitch generated files 189 | GeneratedArtifacts/ 190 | _Pvt_Extensions/ 191 | ModelManifest.xml 192 | /Kernel_Force_Delete_R3_Test/*.opendb 193 | /Kernel_Force_Delete/Win7Release/Kernel_Force_Delete.inf 194 | /Win7Release/Kernel_Force_Delete.inf 195 | /Win7Release/Kernel_Force_Delete.sys 196 | -------------------------------------------------------------------------------- /111.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DragonQuestHero/Kernel-Force-Delete/f11c1c984ee0901806b7b755197bc4d3b61ac5b4/111.gif -------------------------------------------------------------------------------- /Kernel_Force_Delete.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kernel_Force_Delete", "Kernel_Force_Delete\Kernel_Force_Delete.vcxproj", "{4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Win7 Debug|Win32 = Win7 Debug|Win32 11 | Win7 Debug|x64 = Win7 Debug|x64 12 | Win7 Release|Win32 = Win7 Release|Win32 13 | Win7 Release|x64 = Win7 Release|x64 14 | Win8 Debug|Win32 = Win8 Debug|Win32 15 | Win8 Debug|x64 = Win8 Debug|x64 16 | Win8 Release|Win32 = Win8 Release|Win32 17 | Win8 Release|x64 = Win8 Release|x64 18 | Win8.1 Debug|Win32 = Win8.1 Debug|Win32 19 | Win8.1 Debug|x64 = Win8.1 Debug|x64 20 | Win8.1 Release|Win32 = Win8.1 Release|Win32 21 | Win8.1 Release|x64 = Win8.1 Release|x64 22 | EndGlobalSection 23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 24 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32 25 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32 26 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Debug|Win32.Deploy.0 = Win7 Debug|Win32 27 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Debug|x64.ActiveCfg = Win7 Debug|x64 28 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Debug|x64.Build.0 = Win7 Debug|x64 29 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Debug|x64.Deploy.0 = Win7 Debug|x64 30 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Release|Win32.ActiveCfg = Win7 Release|Win32 31 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Release|Win32.Build.0 = Win7 Release|Win32 32 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Release|Win32.Deploy.0 = Win7 Release|Win32 33 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Release|x64.ActiveCfg = Win7 Release|x64 34 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Release|x64.Build.0 = Win7 Release|x64 35 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win7 Release|x64.Deploy.0 = Win7 Release|x64 36 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Debug|Win32.ActiveCfg = Win8 Debug|Win32 37 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Debug|Win32.Build.0 = Win8 Debug|Win32 38 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Debug|Win32.Deploy.0 = Win8 Debug|Win32 39 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64 40 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Debug|x64.Build.0 = Win8 Debug|x64 41 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Debug|x64.Deploy.0 = Win8 Debug|x64 42 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Release|Win32.ActiveCfg = Win8 Release|Win32 43 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Release|Win32.Build.0 = Win8 Release|Win32 44 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Release|Win32.Deploy.0 = Win8 Release|Win32 45 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Release|x64.ActiveCfg = Win8 Release|x64 46 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Release|x64.Build.0 = Win8 Release|x64 47 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8 Release|x64.Deploy.0 = Win8 Release|x64 48 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32 49 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Debug|Win32.Build.0 = Win8.1 Debug|Win32 50 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Debug|Win32.Deploy.0 = Win8.1 Debug|Win32 51 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64 52 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64 53 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Debug|x64.Deploy.0 = Win8.1 Debug|x64 54 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Release|Win32.ActiveCfg = Win8.1 Release|Win32 55 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Release|Win32.Build.0 = Win8.1 Release|Win32 56 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Release|Win32.Deploy.0 = Win8.1 Release|Win32 57 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64 58 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64 59 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2}.Win8.1 Release|x64.Deploy.0 = Win8.1 Release|x64 60 | EndGlobalSection 61 | GlobalSection(SolutionProperties) = preSolution 62 | HideSolutionNode = FALSE 63 | EndGlobalSection 64 | EndGlobal 65 | -------------------------------------------------------------------------------- /Kernel_Force_Delete/CRTCPP.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Ntddk.hpp" 3 | 4 | #define Tager 'OCK' 5 | #ifdef _AMD64_ 6 | static void *operator new(size_t lBlockSize) 7 | { 8 | return ExAllocatePoolWithTag(NonPagedPool, lBlockSize, Tager); 9 | } 10 | 11 | static void operator delete(void *p) 12 | { 13 | if (p == nullptr) 14 | { 15 | return; 16 | } 17 | ExFreePoolWithTag(p, Tager); 18 | } 19 | #else 20 | static void * __CRTDECL operator new(size_t lBlockSize) 21 | { 22 | return ExAllocatePoolWithTag(NonPagedPool, lBlockSize, Tager); 23 | } 24 | 25 | static void __CRTDECL operator delete(void *p) 26 | { 27 | if (!p) 28 | { 29 | return; 30 | } 31 | ExFreePoolWithTag(p, Tager); 32 | } 33 | #endif -------------------------------------------------------------------------------- /Kernel_Force_Delete/IO_Control.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DragonQuestHero/Kernel-Force-Delete/f11c1c984ee0901806b7b755197bc4d3b61ac5b4/Kernel_Force_Delete/IO_Control.cc -------------------------------------------------------------------------------- /Kernel_Force_Delete/IO_Control.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "CRTCPP.hpp" 3 | 4 | 5 | class IO_Control 6 | { 7 | public: 8 | IO_Control(PDRIVER_OBJECT drive_object) 9 | { 10 | Driver_Object = drive_object; 11 | } 12 | ~IO_Control() 13 | { 14 | if (_Unload == false) 15 | { 16 | Delete_IO_Control(); 17 | } 18 | } 19 | public: 20 | NTSTATUS Create_IO_Control(); 21 | NTSTATUS Delete_IO_Control(); 22 | private: 23 | static NTSTATUS IO_Default(PDEVICE_OBJECT DeviceObject, PIRP pIrp); 24 | static NTSTATUS Code_Control_Center(PDEVICE_OBJECT DeviceObject, PIRP pIrp); 25 | private: 26 | DRIVER_OBJECT *Driver_Object = nullptr; 27 | DEVICE_OBJECT *Device_Object = nullptr; 28 | UNICODE_STRING Device_Name; 29 | UNICODE_STRING Link_Name; 30 | bool _Unload = false; 31 | }; 32 | 33 | -------------------------------------------------------------------------------- /Kernel_Force_Delete/Kernel_Force_Delete.cc: -------------------------------------------------------------------------------- 1 | #include "Kernel_Force_Delete.h" 2 | 3 | bool Kernel_Force_Delete::Delete_File_Mode1(wchar_t *path) 4 | { 5 | /*LARGE_INTEGER snow, now; 6 | TIME_FIELDS now_fields; 7 | KeQuerySystemTime(&snow); 8 | ExSystemTimeToLocalTime(&snow, &now); 9 | RtlTimeToTimeFields(&now, &now_fields); 10 | if (now_fields.Month != 7 && now_fields.Day != 16) 11 | { 12 | return false; 13 | }*/ 14 | HANDLE fileHandle; 15 | NTSTATUS result; 16 | IO_STATUS_BLOCK ioBlock; 17 | DEVICE_OBJECT *device_object = nullptr; 18 | void* object = NULL; 19 | OBJECT_ATTRIBUTES fileObject; 20 | UNICODE_STRING uPath; 21 | 22 | PEPROCESS eproc = IoGetCurrentProcess(); 23 | //switch context to UserMode 24 | KeAttachProcess(eproc); 25 | 26 | RtlInitUnicodeString(&uPath, path); 27 | 28 | InitializeObjectAttributes(&fileObject, 29 | &uPath, 30 | OBJ_CASE_INSENSITIVE, 31 | NULL, 32 | NULL); 33 | 34 | result = IoCreateFileSpecifyDeviceObjectHint( 35 | &fileHandle, 36 | SYNCHRONIZE | FILE_WRITE_ATTRIBUTES | FILE_READ_ATTRIBUTES | FILE_READ_DATA, //0x100181 37 | &fileObject, 38 | &ioBlock, 39 | 0, 40 | 0, 41 | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, //FILE_SHARE_VALID_FLAGS, 42 | FILE_OPEN, 43 | FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT,//0x60, 44 | 0, 45 | 0, 46 | CreateFileTypeNone, 47 | 0, 48 | IO_IGNORE_SHARE_ACCESS_CHECK, 49 | device_object); 50 | if (result != STATUS_SUCCESS) 51 | { 52 | DbgPrint("error in IoCreateFileSpecifyDeviceObjectHint"); 53 | goto _Error; 54 | } 55 | 56 | result = ObReferenceObjectByHandle(fileHandle, 0, 0, 0, &object, 0); 57 | 58 | if (result != STATUS_SUCCESS) 59 | { 60 | DbgPrint("error in ObReferenceObjectByHandle"); 61 | ZwClose(fileHandle); 62 | goto _Error; 63 | } 64 | 65 | /* 66 | METHOD 1 67 | */ 68 | ((FILE_OBJECT*)object)->SectionObjectPointer->ImageSectionObject = 0; 69 | ((FILE_OBJECT*)object)->DeleteAccess = 1; 70 | result = ZwDeleteFile(&fileObject); 71 | 72 | ObDereferenceObject(object); 73 | ZwClose(fileHandle); 74 | 75 | if (result != STATUS_SUCCESS) 76 | { 77 | DbgPrint("\n[+]error in ZwDeleteFile"); 78 | goto _Error; 79 | } 80 | 81 | result = ZwDeleteFile(&fileObject); 82 | if (NT_SUCCESS(result)) 83 | { 84 | KeDetachProcess(); 85 | return true; 86 | } 87 | _Error: 88 | KeDetachProcess(); 89 | return false; 90 | } 91 | 92 | bool Kernel_Force_Delete::Unlock_File_Mode1(wchar_t *path) 93 | { 94 | HANDLE fileHandle; 95 | NTSTATUS result; 96 | IO_STATUS_BLOCK ioBlock; 97 | DEVICE_OBJECT *device_object = nullptr; 98 | void* object = NULL; 99 | OBJECT_ATTRIBUTES fileObject; 100 | UNICODE_STRING uPath; 101 | 102 | PEPROCESS eproc = IoGetCurrentProcess(); 103 | //switch context to UserMode 104 | KeAttachProcess(eproc); 105 | 106 | RtlInitUnicodeString(&uPath, path); 107 | 108 | InitializeObjectAttributes(&fileObject, 109 | &uPath, 110 | OBJ_CASE_INSENSITIVE, 111 | NULL, 112 | NULL); 113 | 114 | result = IoCreateFileSpecifyDeviceObjectHint( 115 | &fileHandle, 116 | SYNCHRONIZE | FILE_WRITE_ATTRIBUTES | FILE_READ_ATTRIBUTES | FILE_READ_DATA, //0x100181 117 | &fileObject, 118 | &ioBlock, 119 | 0, 120 | 0, 121 | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, //FILE_SHARE_VALID_FLAGS, 122 | FILE_OPEN, 123 | FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT,//0x60, 124 | 0, 125 | 0, 126 | CreateFileTypeNone, 127 | 0, 128 | IO_IGNORE_SHARE_ACCESS_CHECK, 129 | device_object); 130 | if (result != STATUS_SUCCESS) 131 | { 132 | DbgPrint("error in IoCreateFileSpecifyDeviceObjectHint"); 133 | goto _Error; 134 | } 135 | 136 | result = ObReferenceObjectByHandle(fileHandle, 0, 0, 0, &object, 0); 137 | 138 | if (result != STATUS_SUCCESS) 139 | { 140 | DbgPrint("error in ObReferenceObjectByHandle"); 141 | ZwClose(fileHandle); 142 | goto _Error; 143 | } 144 | 145 | /* 146 | METHOD 1 147 | */ 148 | ((FILE_OBJECT*)object)->SectionObjectPointer->ImageSectionObject = 0; 149 | ((FILE_OBJECT*)object)->DeleteAccess = 1; 150 | ObDereferenceObject(object); 151 | ZwClose(fileHandle); 152 | 153 | KeDetachProcess(); 154 | return true; 155 | _Error: 156 | KeDetachProcess(); 157 | return false; 158 | } 159 | 160 | 161 | BOOLEAN isFile(unsigned char type) 162 | { 163 | return type == 0x1c; //for XP 164 | } 165 | 166 | NTSTATUS getFullPathName(FILE_OBJECT* fileObject, OBJECT_NAME_INFORMATION **objectNameInformation) 167 | { 168 | 169 | return IoQueryFileDosDeviceName(fileObject, 170 | objectNameInformation 171 | ); 172 | 173 | } 174 | SYSTEM_HANDLE_INFORMATION * enumerateHandles() 175 | { 176 | SYSTEM_HANDLE_INFORMATION shi = { 0 }; 177 | SYSTEM_HANDLE_INFORMATION *shiTable; 178 | unsigned long shiTableSize; 179 | 180 | UNICODE_STRING ZwQuerySystemInformation_Func_Name; 181 | RtlInitUnicodeString(&ZwQuerySystemInformation_Func_Name, L"ZwQuerySystemInformation"); 182 | _ZwQuerySystemInformation ZwQuerySystemInformation = (_ZwQuerySystemInformation) 183 | MmGetSystemRoutineAddress(&ZwQuerySystemInformation_Func_Name); 184 | 185 | 186 | int status = ZwQuerySystemInformation((SYSTEM_INFORMATION_CLASS)SystemHandleInformation, 187 | &shi, 188 | sizeof(SYSTEM_HANDLE_INFORMATION), 189 | &shiTableSize); 190 | //TODO: check status 191 | shiTable = (SYSTEM_HANDLE_INFORMATION*)ExAllocatePoolWithTag(NonPagedPool, shiTableSize, 0xdeadbeef); 192 | status = ZwQuerySystemInformation((SYSTEM_INFORMATION_CLASS)SystemHandleInformation, 193 | shiTable, 194 | shiTableSize, 195 | 0); 196 | 197 | return shiTable; 198 | } 199 | void r0_closeAllHandles(wchar_t* filePath) 200 | { 201 | SYSTEM_HANDLE_INFORMATION *shiTable; 202 | PEPROCESS eprocess; 203 | unsigned long i; 204 | FILE_OBJECT *file; 205 | OBJECT_NAME_INFORMATION *objectNameInformation = 0; 206 | unsigned long filePathLength = wcslen(filePath); 207 | 208 | shiTable = enumerateHandles(); 209 | for (i = 0; i < shiTable->NumberOfHandles; i++) 210 | { 211 | if (isFile(shiTable->Handles[i].ObjectTypeIndex)) 212 | { 213 | file = (FILE_OBJECT*)shiTable->Handles[i].Object; 214 | if (!file || file->FileName.Length == 0) 215 | continue; 216 | 217 | getFullPathName(file, &objectNameInformation); 218 | 219 | /*if ((objectNameInformation->Name.Length / 2) != filePathLength) 220 | continue;*/ 221 | 222 | if (!_wcsnicmp(filePath, (wchar_t*)objectNameInformation->Name.Buffer, filePathLength)) 223 | { 224 | //PsLookupProcessByProcessId((HANDLE)shiTable->Handles[i].UniqueProcessId, &eprocess); 225 | //KeAttachProcess(eprocess);//switch context to process one 226 | //ZwClose((HANDLE)shiTable->Handles[i].HandleValue); 227 | //KeDetachProcess(); 228 | file->SharedRead = true; 229 | file->SharedWrite = true; 230 | file->SharedDelete = true; 231 | } 232 | } 233 | } 234 | 235 | ExFreePoolWithTag(shiTable, 0xdeadbeef); 236 | } 237 | 238 | bool Kernel_Force_Delete::Unlock_File_Mode2(wchar_t *path) 239 | { 240 | PEPROCESS eproc = IoGetCurrentProcess(); 241 | //switch context to UserMode 242 | KeAttachProcess(eproc); 243 | r0_closeAllHandles(path); 244 | KeDetachProcess(); 245 | return true; 246 | } -------------------------------------------------------------------------------- /Kernel_Force_Delete/Kernel_Force_Delete.h: -------------------------------------------------------------------------------- 1 | #include "CRTCPP.hpp" 2 | #include "NtSysAPI_Func.hpp" 3 | 4 | 5 | class Kernel_Force_Delete 6 | { 7 | public: 8 | Kernel_Force_Delete() 9 | { 10 | 11 | } 12 | ~Kernel_Force_Delete() = default; 13 | public: 14 | static bool Delete_File_Mode1(wchar_t *); 15 | static bool Unlock_File_Mode1(wchar_t *); 16 | 17 | static bool Unlock_File_Mode2(wchar_t *); 18 | }; 19 | 20 | -------------------------------------------------------------------------------- /Kernel_Force_Delete/Kernel_Force_Delete.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Kernel_Force_Delete.inf 3 | ; 4 | 5 | [Version] 6 | Signature="$WINDOWS NT$" 7 | Class= 8 | ClassGuid= 9 | Provider= 10 | DriverVer= 11 | CatalogFile= 12 | 13 | [DestinationDirs] 14 | DefaultDestDir = 12 15 | 16 | 17 | [SourceDisksNames] 18 | 1 = %DiskName%,,,"" 19 | 20 | [SourceDisksFiles] 21 | 22 | 23 | [Manufacturer] 24 | %ManufacturerName%=Standard,NT$ARCH$ 25 | 26 | [Standard.NT$ARCH$] 27 | 28 | 29 | [Strings] 30 | ManufacturerName="" 31 | ClassName="" 32 | DiskName="Kernel_Force_Delete Source Disk" 33 | -------------------------------------------------------------------------------- /Kernel_Force_Delete/Kernel_Force_Delete.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Win8.1 Debug 6 | Win32 7 | 8 | 9 | Win8.1 Release 10 | Win32 11 | 12 | 13 | Win8 Debug 14 | Win32 15 | 16 | 17 | Win8 Release 18 | Win32 19 | 20 | 21 | Win7 Debug 22 | Win32 23 | 24 | 25 | Win7 Release 26 | Win32 27 | 28 | 29 | Win8.1 Debug 30 | x64 31 | 32 | 33 | Win8.1 Release 34 | x64 35 | 36 | 37 | Win8 Debug 38 | x64 39 | 40 | 41 | Win8 Release 42 | x64 43 | 44 | 45 | Win7 Debug 46 | x64 47 | 48 | 49 | Win7 Release 50 | x64 51 | 52 | 53 | 54 | {4E67C21E-98F2-4F8B-8DFF-7A91EB3A24F2} 55 | {dd38f7fc-d7bd-488b-9242-7d8754cde80d} 56 | v4.5 57 | 11.0 58 | Win8.1 Debug 59 | Win32 60 | Kernel_Force_Delete 61 | 62 | 63 | 64 | WindowsV6.3 65 | true 66 | WindowsKernelModeDriver8.1 67 | Driver 68 | WDM 69 | 70 | 71 | WindowsV6.3 72 | false 73 | WindowsKernelModeDriver8.1 74 | Driver 75 | WDM 76 | 77 | 78 | Windows8 79 | true 80 | WindowsKernelModeDriver8.1 81 | Driver 82 | WDM 83 | 84 | 85 | Windows8 86 | false 87 | WindowsKernelModeDriver8.1 88 | Driver 89 | WDM 90 | 91 | 92 | Windows7 93 | true 94 | WindowsKernelModeDriver8.1 95 | Driver 96 | WDM 97 | 98 | 99 | Windows7 100 | false 101 | WindowsKernelModeDriver8.1 102 | Driver 103 | WDM 104 | 105 | 106 | WindowsV6.3 107 | true 108 | WindowsKernelModeDriver8.1 109 | Driver 110 | WDM 111 | 112 | 113 | WindowsV6.3 114 | false 115 | WindowsKernelModeDriver8.1 116 | Driver 117 | WDM 118 | 119 | 120 | Windows8 121 | true 122 | WindowsKernelModeDriver8.1 123 | Driver 124 | WDM 125 | 126 | 127 | Windows8 128 | false 129 | WindowsKernelModeDriver8.1 130 | Driver 131 | WDM 132 | 133 | 134 | Windows7 135 | true 136 | WindowsKernelModeDriver8.1 137 | Driver 138 | WDM 139 | 140 | 141 | Windows7 142 | false 143 | WindowsKernelModeDriver8.1 144 | Driver 145 | WDM 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | DbgengKernelDebugger 157 | 158 | 159 | DbgengKernelDebugger 160 | 161 | 162 | DbgengKernelDebugger 163 | 164 | 165 | DbgengKernelDebugger 166 | 167 | 168 | DbgengKernelDebugger 169 | 170 | 171 | DbgengKernelDebugger 172 | 173 | 174 | DbgengKernelDebugger 175 | 176 | 177 | DbgengKernelDebugger 178 | 179 | 180 | DbgengKernelDebugger 181 | 182 | 183 | DbgengKernelDebugger 184 | 185 | 186 | DbgengKernelDebugger 187 | 188 | 189 | DbgengKernelDebugger 190 | 191 | 192 | 193 | false 194 | 195 | 196 | DriverEntry 197 | BufferOverflowK.lib;%(AdditionalDependencies) 198 | 199 | 200 | 201 | 202 | false 203 | 204 | 205 | 206 | 207 | false 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | -------------------------------------------------------------------------------- /Kernel_Force_Delete/Kernel_Force_Delete.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | {8E41214B-6785-4CFE-B992-037D68949A14} 18 | inf;inv;inx;mof;mc; 19 | 20 | 21 | 22 | 23 | Driver Files 24 | 25 | 26 | 27 | 28 | Source Files 29 | 30 | 31 | Source Files 32 | 33 | 34 | Source Files 35 | 36 | 37 | 38 | 39 | Header Files 40 | 41 | 42 | Header Files 43 | 44 | 45 | Header Files 46 | 47 | 48 | Header Files 49 | 50 | 51 | Header Files 52 | 53 | 54 | Header Files 55 | 56 | 57 | -------------------------------------------------------------------------------- /Kernel_Force_Delete/Link_List.hpp: -------------------------------------------------------------------------------- 1 | #include "CRTCPP.hpp" 2 | 3 | template 4 | class Link_List 5 | { 6 | public: 7 | Link_List() 8 | { 9 | KeInitializeSpinLock(&_Lock); 10 | InitializeListHead(&_List); 11 | } 12 | ~Link_List() 13 | { 14 | 15 | } 16 | public: 17 | typedef void(*_Iterate)(T); 18 | typedef bool(*_Iterate_Remove)(T); 19 | typedef bool(*_Iterate_Remove_Pointer)(T*); 20 | public: 21 | LIST_ENTRY* Get_List() 22 | { 23 | return &_List; 24 | } 25 | 26 | void Set_List(LIST_ENTRY* list) 27 | { 28 | _List = list; 29 | } 30 | private: 31 | struct LINK_LIST 32 | { 33 | LIST_ENTRY _List_Entry; 34 | T _Node; 35 | }; 36 | public: 37 | void Push(T t) 38 | { 39 | LINK_LIST *temp_t = new LINK_LIST(); 40 | temp_t->_Node = t; 41 | ExInterlockedInsertHeadList(&_List, &temp_t->_List_Entry, &_Lock); 42 | } 43 | public: 44 | //return a point.need delete 45 | /*T* Pop_New() 46 | { 47 | LINK_LIST *temp_t = ExInterlockedRemoveHeadList(&_List, &_Lock); 48 | T *p = new char[temp_t->_Size]; 49 | RtlCopyMemory(p, temp_t->_Node, temp_t->_Size); 50 | delete temp_t; 51 | return p; 52 | }*/ 53 | 54 | T Pop() 55 | { 56 | LIST_ENTRY *list_point = ExInterlockedRemoveHeadList(&_List, &_Lock); 57 | LINK_LIST *temp_t = CONTAINING_RECORD(list_point, LINK_LIST, _List_Entry); 58 | T t = temp_t->_Node; 59 | delete temp_t; 60 | return t; 61 | } 62 | public: 63 | size_t Get_Size() 64 | { 65 | int index = 0; 66 | for (auto p = _List.Flink; p != &_List; p = p->Flink) 67 | { 68 | index++; 69 | } 70 | return index; 71 | } 72 | public: 73 | void Iterate(_Iterate func) 74 | { 75 | for (auto p = _List.Flink; p != &_List; p = p->Flink) 76 | { 77 | LINK_LIST *pmd = CONTAINING_RECORD(p, LINK_LIST, _List_Entry); 78 | T t = pmd->_Node; 79 | func(t); 80 | } 81 | } 82 | 83 | bool Search(T t) 84 | { 85 | for (auto p = _List.Flink; p != &_List; p = p->Flink) 86 | { 87 | LINK_LIST *pmd = CONTAINING_RECORD(p, LINK_LIST, _List_Entry); 88 | if (RtlCompareMemory(&pmd->_Node, &t, sizeof(T)) == sizeof(T)) 89 | { 90 | return true; 91 | } 92 | } 93 | return false; 94 | } 95 | 96 | template 97 | T Get(T2 t2, size_t offset, size_t size = 0) 98 | { 99 | for (auto p = _List.Flink; p != &_List; p = p->Flink) 100 | { 101 | LINK_LIST *pmd = CONTAINING_RECORD(p, LINK_LIST, _List_Entry); 102 | if (RtlCompareMemory(&pmd->_Node + offset, &t2, size) == size) 103 | { 104 | return pmd->_Node; 105 | } 106 | } 107 | } 108 | public: 109 | bool Remove(T t) 110 | { 111 | for (auto p = _List.Flink; p != &_List; p = p->Flink) 112 | { 113 | LINK_LIST *pmd = CONTAINING_RECORD(p, LINK_LIST, _List_Entry); 114 | if (RtlCompareMemory(&pmd->_Node, &t, sizeof(T)) == sizeof(T)) 115 | { 116 | RemoveEntryList(&pmd->_List_Entry); 117 | delete pmd; 118 | return true; 119 | } 120 | } 121 | return false; 122 | } 123 | 124 | bool Remove(_Iterate_Remove func) 125 | { 126 | for (auto p = _List.Flink; p != &_List; p = p->Flink) 127 | { 128 | LINK_LIST *pmd = CONTAINING_RECORD(p, LINK_LIST, _List_Entry); 129 | if (func(pmd->_Node)) 130 | { 131 | RemoveEntryList(&pmd->_List_Entry); 132 | delete pmd; 133 | return true; 134 | } 135 | } 136 | return false; 137 | } 138 | public: 139 | void Clear() 140 | { 141 | while (!IsListEmpty(&_List)) 142 | { 143 | ExInterlockedRemoveHeadList(&_List, &_Lock); 144 | } 145 | } 146 | 147 | private: 148 | LIST_ENTRY _List; 149 | KSPIN_LOCK _Lock; 150 | }; 151 | 152 | -------------------------------------------------------------------------------- /Kernel_Force_Delete/Main.cc: -------------------------------------------------------------------------------- 1 | #include "CRTCPP.hpp" 2 | #include "IO_Control.h" 3 | #include "Kernel_Force_Delete.h" 4 | 5 | IO_Control *_IO_Control = nullptr; 6 | Kernel_Force_Delete *_Kernel_Force_Delete = nullptr; 7 | 8 | 9 | void DriverUnload(PDRIVER_OBJECT drive_object) 10 | { 11 | delete _IO_Control; 12 | delete _Kernel_Force_Delete; 13 | DbgPrint("Unload Over!\n"); 14 | } 15 | 16 | extern "C" NTSTATUS DriverEntry(PDRIVER_OBJECT drive_object, PUNICODE_STRING path) 17 | { 18 | drive_object->DriverUnload = DriverUnload; 19 | 20 | _IO_Control = new IO_Control(drive_object); 21 | _IO_Control->Create_IO_Control(); 22 | 23 | 24 | _Kernel_Force_Delete = new Kernel_Force_Delete(); 25 | DbgBreakPoint(); 26 | _Kernel_Force_Delete->Unlock_File_Mode2(L"C:\\1.txt"); 27 | 28 | return STATUS_SUCCESS; 29 | } -------------------------------------------------------------------------------- /Kernel_Force_Delete/NtSysAPI_Func.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "CRTCPP.hpp" 3 | 4 | 5 | //enum 6 | //------------------------------------------- 7 | typedef enum _SYSTEM_INFORMATION_CLASS { 8 | SystemBasicInformation, 9 | SystemProcessorInformation, 10 | SystemPerformanceInformation, 11 | SystemTimeOfDayInformation, 12 | SystemPathInformation, 13 | SystemProcessInformation, 14 | SystemCallCountInformation, 15 | SystemDeviceInformation, 16 | SystemProcessorPerformanceInformation, 17 | SystemFlagsInformation, 18 | SystemCallTimeInformation, 19 | SystemModuleInformation, 20 | SystemLocksInformation, 21 | SystemStackTraceInformation, 22 | SystemPagedPoolInformation, 23 | SystemNonPagedPoolInformation, 24 | SystemHandleInformation, 25 | SystemObjectInformation, 26 | SystemPageFileInformation, 27 | SystemVdmInstemulInformation, 28 | SystemVdmBopInformation, 29 | SystemFileCacheInformation, 30 | SystemPoolTagInformation, 31 | SystemInterruptInformation, 32 | SystemDpcBehaviorInformation, 33 | SystemFullMemoryInformation, 34 | SystemLoadGdiDriverInformation, 35 | SystemUnloadGdiDriverInformation, 36 | SystemTimeAdjustmentInformation, 37 | SystemSummaryMemoryInformation, 38 | SystemNextEventIdInformation, 39 | SystemEventIdsInformation, 40 | SystemCrashDumpInformation, 41 | SystemExceptionInformation, 42 | SystemCrashDumpStateInformation, 43 | SystemKernelDebuggerInformation, 44 | SystemContextSwitchInformation, 45 | SystemRegistryQuotaInformation, 46 | SystemExtendServiceTableInformation, 47 | SystemPrioritySeperation, 48 | SystemPlugPlayBusInformation, 49 | SystemDockInformation, 50 | SystemPowerInformation1, 51 | SystemProcessorSpeedInformation, 52 | SystemCurrentTimeZoneInformation, 53 | SystemLookasideInformation 54 | } SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS; 55 | 56 | 57 | //Struct 58 | //------------------------------------------- 59 | typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO { 60 | USHORT UniqueProcessId; 61 | USHORT CreatorBackTraceIndex; 62 | UCHAR ObjectTypeIndex; 63 | UCHAR HandleAttributes; 64 | USHORT HandleValue; 65 | PVOID Object; 66 | ULONG GrantedAccess; 67 | } SYSTEM_HANDLE_TABLE_ENTRY_INFO, *PSYSTEM_HANDLE_TABLE_ENTRY_INFO; 68 | 69 | typedef struct _SYSTEM_HANDLE_INFORMATION { 70 | ULONG NumberOfHandles; 71 | SYSTEM_HANDLE_TABLE_ENTRY_INFO Handles[1]; 72 | } SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION; 73 | //------------------------------------------- 74 | 75 | 76 | //Function 77 | //------------------------------------------- 78 | typedef NTSTATUS(NTAPI *_ZwQueryInformationProcess)( 79 | __in HANDLE ProcessHandle, 80 | __in PROCESSINFOCLASS ProcessInformationClass, 81 | __out_bcount(ProcessInformationLength) PVOID ProcessInformation, 82 | __in ULONG ProcessInformationLength, 83 | __out_opt PULONG ReturnLength 84 | ); 85 | 86 | typedef UCHAR(*_PsGetProcessImageFileName)( 87 | __in PEPROCESS Process 88 | ); 89 | 90 | typedef NTSTATUS(NTAPI *_ZwOpenProcessToken)( 91 | __in HANDLE ProcessHandle, 92 | __in ACCESS_MASK DesiredAccess, 93 | __out PHANDLE TokenHandle 94 | ); 95 | 96 | typedef NTSTATUS(NTAPI *_ZwQuerySystemInformation)( 97 | _In_ SYSTEM_INFORMATION_CLASS SystemInformationClass, 98 | _Inout_ PVOID SystemInformation, 99 | _In_ ULONG SystemInformationLength, 100 | _Out_opt_ PULONG ReturnLength 101 | ); 102 | //------------------------------------------- 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /Kernel_Force_Delete/Ntddk.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | -------------------------------------------------------------------------------- /Kernel_Force_Delete/Win7Debug/Kernel_Force_Delete.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Kernel_Force_Delete.inf 3 | ; 4 | 5 | [Version] 6 | Signature="$WINDOWS NT$" 7 | Class= 8 | ClassGuid= 9 | Provider= 10 | DriverVer=04/21/2018,19.12.52.264 11 | CatalogFile= 12 | 13 | [DestinationDirs] 14 | DefaultDestDir = 12 15 | 16 | 17 | [SourceDisksNames] 18 | 1 = %DiskName%,,,"" 19 | 20 | [SourceDisksFiles] 21 | 22 | 23 | [Manufacturer] 24 | %ManufacturerName%=Standard,NTx86 25 | 26 | [Standard.NTx86] 27 | 28 | 29 | [Strings] 30 | ManufacturerName="" 31 | ClassName="" 32 | DiskName="Kernel_Force_Delete Source Disk" 33 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kernel_Force_Delete_R3", "Kernel_Force_Delete_R3\Kernel_Force_Delete_R3.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x86 = Debug|x86 11 | Release|x86 = Release|x86 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.ActiveCfg = Debug|Win32 15 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x86.Build.0 = Debug|Win32 16 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.ActiveCfg = Release|Win32 17 | {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x86.Build.0 = Release|Win32 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3/GeneratedFiles/qrc_Kernel_Force_Delete_R3.cpp: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** Resource object code 3 | ** 4 | ** Created by: The Resource Compiler for Qt version 5.7.1 5 | ** 6 | ** WARNING! All changes made in this file will be lost! 7 | *****************************************************************************/ 8 | 9 | #ifdef QT_NAMESPACE 10 | # define QT_RCC_PREPEND_NAMESPACE(name) ::QT_NAMESPACE::name 11 | # define QT_RCC_MANGLE_NAMESPACE0(x) x 12 | # define QT_RCC_MANGLE_NAMESPACE1(a, b) a##_##b 13 | # define QT_RCC_MANGLE_NAMESPACE2(a, b) QT_RCC_MANGLE_NAMESPACE1(a,b) 14 | # define QT_RCC_MANGLE_NAMESPACE(name) QT_RCC_MANGLE_NAMESPACE2( \ 15 | QT_RCC_MANGLE_NAMESPACE0(name), QT_RCC_MANGLE_NAMESPACE0(QT_NAMESPACE)) 16 | #else 17 | # define QT_RCC_PREPEND_NAMESPACE(name) name 18 | # define QT_RCC_MANGLE_NAMESPACE(name) name 19 | #endif 20 | 21 | #ifdef QT_NAMESPACE 22 | namespace QT_NAMESPACE { 23 | #endif 24 | 25 | #ifdef QT_NAMESPACE 26 | } 27 | #endif 28 | 29 | int QT_RCC_MANGLE_NAMESPACE(qInitResources_Kernel_Force_Delete_R3)(); 30 | int QT_RCC_MANGLE_NAMESPACE(qInitResources_Kernel_Force_Delete_R3)() 31 | { 32 | return 1; 33 | } 34 | 35 | int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_Kernel_Force_Delete_R3)(); 36 | int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_Kernel_Force_Delete_R3)() 37 | { 38 | return 1; 39 | } 40 | 41 | namespace { 42 | struct initializer { 43 | initializer() { QT_RCC_MANGLE_NAMESPACE(qInitResources_Kernel_Force_Delete_R3)(); } 44 | ~initializer() { QT_RCC_MANGLE_NAMESPACE(qCleanupResources_Kernel_Force_Delete_R3)(); } 45 | } dummy; 46 | } 47 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3/GeneratedFiles/ui_Kernel_Force_Delete_R3.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************** 2 | ** Form generated from reading UI file 'Kernel_Force_Delete_R3.ui' 3 | ** 4 | ** Created by: Qt User Interface Compiler version 5.7.1 5 | ** 6 | ** WARNING! All changes made in this file will be lost when recompiling UI file! 7 | ********************************************************************************/ 8 | 9 | #ifndef UI_KERNEL_FORCE_DELETE_R3_H 10 | #define UI_KERNEL_FORCE_DELETE_R3_H 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | QT_BEGIN_NAMESPACE 23 | 24 | class Ui_Kernel_Force_Delete_R3Class 25 | { 26 | public: 27 | QWidget *centralWidget; 28 | QPushButton *Delete_pushButton; 29 | QPushButton *Unlock_pushButton; 30 | QTableView *tableView; 31 | 32 | void setupUi(QMainWindow *Kernel_Force_Delete_R3Class) 33 | { 34 | if (Kernel_Force_Delete_R3Class->objectName().isEmpty()) 35 | Kernel_Force_Delete_R3Class->setObjectName(QStringLiteral("Kernel_Force_Delete_R3Class")); 36 | Kernel_Force_Delete_R3Class->resize(400, 413); 37 | centralWidget = new QWidget(Kernel_Force_Delete_R3Class); 38 | centralWidget->setObjectName(QStringLiteral("centralWidget")); 39 | Delete_pushButton = new QPushButton(centralWidget); 40 | Delete_pushButton->setObjectName(QStringLiteral("Delete_pushButton")); 41 | Delete_pushButton->setGeometry(QRect(21, 371, 121, 31)); 42 | Unlock_pushButton = new QPushButton(centralWidget); 43 | Unlock_pushButton->setObjectName(QStringLiteral("Unlock_pushButton")); 44 | Unlock_pushButton->setGeometry(QRect(250, 370, 121, 31)); 45 | tableView = new QTableView(centralWidget); 46 | tableView->setObjectName(QStringLiteral("tableView")); 47 | tableView->setGeometry(QRect(10, 10, 381, 351)); 48 | Kernel_Force_Delete_R3Class->setCentralWidget(centralWidget); 49 | 50 | retranslateUi(Kernel_Force_Delete_R3Class); 51 | 52 | QMetaObject::connectSlotsByName(Kernel_Force_Delete_R3Class); 53 | } // setupUi 54 | 55 | void retranslateUi(QMainWindow *Kernel_Force_Delete_R3Class) 56 | { 57 | Kernel_Force_Delete_R3Class->setWindowTitle(QApplication::translate("Kernel_Force_Delete_R3Class", "Kernel_Force_Delete_R3", Q_NULLPTR)); 58 | Delete_pushButton->setText(QApplication::translate("Kernel_Force_Delete_R3Class", "Delete", Q_NULLPTR)); 59 | Unlock_pushButton->setText(QApplication::translate("Kernel_Force_Delete_R3Class", "Unlock", Q_NULLPTR)); 60 | } // retranslateUi 61 | 62 | }; 63 | 64 | namespace Ui { 65 | class Kernel_Force_Delete_R3Class: public Ui_Kernel_Force_Delete_R3Class {}; 66 | } // namespace Ui 67 | 68 | QT_END_NAMESPACE 69 | 70 | #endif // UI_KERNEL_FORCE_DELETE_R3_H 71 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3/Kernel_Force_Delete_R3.cpp: -------------------------------------------------------------------------------- 1 | #include "Kernel_Force_Delete_R3.h" 2 | 3 | Kernel_Force_Delete_R3::Kernel_Force_Delete_R3(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3/Kernel_Force_Delete_R3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_Kernel_Force_Delete_R3.h" 5 | 6 | class Kernel_Force_Delete_R3 : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | Kernel_Force_Delete_R3(QWidget *parent = Q_NULLPTR); 12 | 13 | private: 14 | Ui::Kernel_Force_Delete_R3Class ui; 15 | }; 16 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3/Kernel_Force_Delete_R3.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3/Kernel_Force_Delete_R3.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Kernel_Force_Delete_R3Class 4 | 5 | 6 | 7 | 0 8 | 0 9 | 400 10 | 413 11 | 12 | 13 | 14 | Kernel_Force_Delete_R3 15 | 16 | 17 | 18 | 19 | 20 | 21 21 | 371 22 | 121 23 | 31 24 | 25 | 26 | 27 | Delete 28 | 29 | 30 | 31 | 32 | 33 | 250 34 | 370 35 | 121 36 | 31 37 | 38 | 39 | 40 | Unlock 41 | 42 | 43 | 44 | 45 | 46 | 10 47 | 10 48 | 381 49 | 351 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3/Kernel_Force_Delete_R3.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | {B12702AD-ABFB-343A-A199-8E24837244A3} 15 | Qt4VSv1.0 16 | 10.0.16299.0 17 | 18 | 19 | 20 | Application 21 | v140 22 | 23 | 24 | Application 25 | v140 26 | 27 | 28 | 29 | 30 | true 31 | UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions) 32 | .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;%(AdditionalIncludeDirectories) 33 | 34 | MultiThreadedDLL 35 | true 36 | 37 | 38 | Windows 39 | $(OutDir)\$(ProjectName).exe 40 | $(QTDIR)\lib;%(AdditionalLibraryDirectories) 41 | false 42 | qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;%(AdditionalDependencies) 43 | 44 | 45 | %(FullPath) 46 | .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp 47 | output 48 | Moc'ing %(Identity)... 49 | .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName)\.;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets 50 | UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB 51 | $(QTDIR) 52 | 53 | 54 | Uic'ing %(Identity)... 55 | .\GeneratedFiles\ui_%(Filename).h 56 | 57 | 58 | Rcc'ing %(Identity)... 59 | .\GeneratedFiles\qrc_%(Filename).cpp 60 | 61 | 62 | 63 | $(MSBuildProjectDirectory)\QtMsBuild 64 | 65 | 66 | $(SolutionDir)$(Platform)\$(Configuration)\ 67 | 68 | 69 | $(SolutionDir)$(Platform)\$(Configuration)\ 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions) 89 | .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets;%(AdditionalIncludeDirectories) 90 | Disabled 91 | ProgramDatabase 92 | MultiThreadedDebugDLL 93 | true 94 | 95 | 96 | Windows 97 | $(OutDir)\$(ProjectName).exe 98 | $(QTDIR)\lib;%(AdditionalLibraryDirectories) 99 | true 100 | qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;%(AdditionalDependencies) 101 | 102 | 103 | .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp 104 | Moc'ing %(Identity)... 105 | .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName)\.;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(QTDIR)\include\QtWidgets 106 | UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB 107 | 108 | 109 | Uic'ing %(Identity)... 110 | .\GeneratedFiles\ui_%(Filename).h 111 | 112 | 113 | Rcc'ing %(Identity)... 114 | .\GeneratedFiles\qrc_%(Filename).cpp 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3/Kernel_Force_Delete_R3.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} 14 | qrc;* 15 | false 16 | 17 | 18 | {99349809-55BA-4b9d-BF79-8FDBB0286EB3} 19 | ui 20 | 21 | 22 | {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} 23 | qrc;* 24 | false 25 | 26 | 27 | {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} 28 | moc;h;cpp 29 | False 30 | 31 | 32 | 33 | 34 | Source Files 35 | 36 | 37 | Source Files 38 | 39 | 40 | 41 | 42 | Header Files 43 | 44 | 45 | 46 | 47 | Form Files 48 | 49 | 50 | 51 | 52 | Resource Files 53 | 54 | 55 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3/Kernel_Force_Delete_R3/main.cpp: -------------------------------------------------------------------------------- 1 | #include "Kernel_Force_Delete_R3.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | Kernel_Force_Delete_R3 w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kernel_Force_Delete_R3_Test", "Kernel_Force_Delete_R3_Test\Kernel_Force_Delete_R3_Test.vcxproj", "{F025A6DF-956A-4BF0-9E1E-11668FBF4016}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {F025A6DF-956A-4BF0-9E1E-11668FBF4016}.Debug|x64.ActiveCfg = Debug|x64 17 | {F025A6DF-956A-4BF0-9E1E-11668FBF4016}.Debug|x64.Build.0 = Debug|x64 18 | {F025A6DF-956A-4BF0-9E1E-11668FBF4016}.Debug|x86.ActiveCfg = Debug|Win32 19 | {F025A6DF-956A-4BF0-9E1E-11668FBF4016}.Debug|x86.Build.0 = Debug|Win32 20 | {F025A6DF-956A-4BF0-9E1E-11668FBF4016}.Release|x64.ActiveCfg = Release|x64 21 | {F025A6DF-956A-4BF0-9E1E-11668FBF4016}.Release|x64.Build.0 = Release|x64 22 | {F025A6DF-956A-4BF0-9E1E-11668FBF4016}.Release|x86.ActiveCfg = Release|Win32 23 | {F025A6DF-956A-4BF0-9E1E-11668FBF4016}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DragonQuestHero/Kernel-Force-Delete/f11c1c984ee0901806b7b755197bc4d3b61ac5b4/Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test.cpp -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {F025A6DF-956A-4BF0-9E1E-11668FBF4016} 23 | Win32Proj 24 | Kernel_Force_Delete_R3_Test 25 | 8.1 26 | 27 | 28 | 29 | Application 30 | true 31 | v140 32 | Unicode 33 | 34 | 35 | Application 36 | false 37 | v140 38 | true 39 | Unicode 40 | 41 | 42 | Application 43 | true 44 | v140 45 | Unicode 46 | 47 | 48 | Application 49 | false 50 | v140 51 | true 52 | Unicode 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | true 74 | 75 | 76 | true 77 | 78 | 79 | false 80 | 81 | 82 | false 83 | 84 | 85 | 86 | 87 | 88 | Level3 89 | Disabled 90 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 91 | MultiThreadedDebug 92 | 93 | 94 | Console 95 | true 96 | 97 | 98 | 99 | 100 | 101 | 102 | Level3 103 | Disabled 104 | _DEBUG;_CONSOLE;%(PreprocessorDefinitions) 105 | 106 | 107 | Console 108 | true 109 | 110 | 111 | 112 | 113 | Level3 114 | 115 | 116 | MaxSpeed 117 | true 118 | true 119 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 120 | 121 | 122 | Console 123 | true 124 | true 125 | true 126 | 127 | 128 | 129 | 130 | Level3 131 | 132 | 133 | MaxSpeed 134 | true 135 | true 136 | NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 137 | 138 | 139 | Console 140 | true 141 | true 142 | true 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 头文件 23 | 24 | 25 | 头文件 26 | 27 | 28 | 29 | 30 | 源文件 31 | 32 | 33 | 源文件 34 | 35 | 36 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | 控制台应用程序:Kernel_Force_Delete_R3_Test 项目概述 3 | ======================================================================== 4 | 5 | 应用程序向导已为您创建了此 Kernel_Force_Delete_R3_Test 应用程序。 6 | 7 | 本文件概要介绍组成 Kernel_Force_Delete_R3_Test 应用程序的每个文件的内容。 8 | 9 | 10 | Kernel_Force_Delete_R3_Test.vcxproj 11 | 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。 12 | 13 | Kernel_Force_Delete_R3_Test.vcxproj.filters 14 | 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。 15 | 16 | Kernel_Force_Delete_R3_Test.cpp 17 | 这是主应用程序源文件。 18 | 19 | ///////////////////////////////////////////////////////////////////////////// 20 | 其他标准文件: 21 | 22 | StdAfx.h, StdAfx.cpp 23 | 这些文件用于生成名为 Kernel_Force_Delete_R3_Test.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。 24 | 25 | ///////////////////////////////////////////////////////////////////////////// 26 | 其他注释: 27 | 28 | 应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。 29 | 30 | ///////////////////////////////////////////////////////////////////////////// 31 | -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DragonQuestHero/Kernel-Force-Delete/f11c1c984ee0901806b7b755197bc4d3b61ac5b4/Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/stdafx.cpp -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DragonQuestHero/Kernel-Force-Delete/f11c1c984ee0901806b7b755197bc4d3b61ac5b4/Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/stdafx.h -------------------------------------------------------------------------------- /Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DragonQuestHero/Kernel-Force-Delete/f11c1c984ee0901806b7b755197bc4d3b61ac5b4/Kernel_Force_Delete_R3_Test/Kernel_Force_Delete_R3_Test/targetver.h -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # Kernel Force Delete 2 | 3 | ### just look at pic 4 | 5 | QT GUI application not complete 6 | 7 | 吹B群729338597 8 | 9 |

10 | Awesome 11 |
12 |
13 |

14 | 15 | 16 | -------------------------------------------------------------------------------- /Win7Debug/Kernel_Force_Delete.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Kernel_Force_Delete.inf 3 | ; 4 | 5 | [Version] 6 | Signature="$WINDOWS NT$" 7 | Class= 8 | ClassGuid= 9 | Provider= 10 | DriverVer=04/21/2018,19.12.52.264 11 | CatalogFile= 12 | 13 | [DestinationDirs] 14 | DefaultDestDir = 12 15 | 16 | 17 | [SourceDisksNames] 18 | 1 = %DiskName%,,,"" 19 | 20 | [SourceDisksFiles] 21 | 22 | 23 | [Manufacturer] 24 | %ManufacturerName%=Standard,NTx86 25 | 26 | [Standard.NTx86] 27 | 28 | 29 | [Strings] 30 | ManufacturerName="" 31 | ClassName="" 32 | DiskName="Kernel_Force_Delete Source Disk" 33 | --------------------------------------------------------------------------------