├── Net Package ├── Net Package.vcxproj ├── Net Package.vcxproj.filters └── Win7Debug │ ├── Inf2Cat.command.1.tlog │ ├── Net Package.log │ ├── Net Package.tlog │ ├── Net Package.lastbuildstate │ └── unsuccessfulbuild │ ├── inf2cat-expand.3892.read.1.tlog │ ├── inf2cat-expand.3892.write.1.tlog │ ├── inf2cat-expand.read.1.tlog │ ├── inf2cat-expand.write.1.tlog │ ├── inf2cat.read.1.tlog │ ├── inf2cat.write.1.tlog │ ├── inf2cat.write.7.tlog │ └── inf2catOutput.log ├── Net.sdf ├── Net.sln ├── Net.v12.suo ├── Net ├── Net.inf ├── Net.vcxproj ├── Net.vcxproj.filters ├── Win7Debug │ ├── Net.Build.CppClean.log │ ├── Net.inf │ ├── Net.log │ ├── Net.tlog │ │ ├── CL.read.1.tlog │ │ ├── CL.write.1.tlog │ │ ├── Net.lastbuildstate │ │ ├── cl.command.1.tlog │ │ ├── link.command.1.tlog │ │ ├── link.read.1.tlog │ │ └── link.write.1.tlog │ ├── driver.obj │ ├── signtool.command.1.tlog │ ├── signtool.read.1.tlog │ ├── signtool.write.1.tlog │ ├── stampinf.command.1.tlog │ ├── stampinf.read.1.tlog │ ├── stampinf.write.1.tlog │ └── vc120.pdb └── driver.c ├── README.md └── Win7Debug ├── Net Package ├── Net.inf └── Net.sys ├── Net.cer └── Net.inf /Net Package/Net Package.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 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC} 55 | {4605da2c-74a5-4865-98e1-152ef136825f} 56 | v4.5 57 | 11.0 58 | Win8.1 Debug 59 | Win32 60 | Net_Package 61 | 62 | 63 | 64 | WindowsV6.3 65 | true 66 | WindowsKernelModeDriver8.1 67 | Utility 68 | Package 69 | true 70 | 71 | 72 | WindowsV6.3 73 | false 74 | WindowsKernelModeDriver8.1 75 | Utility 76 | Package 77 | true 78 | 79 | 80 | Windows8 81 | true 82 | WindowsKernelModeDriver8.1 83 | Utility 84 | Package 85 | true 86 | 87 | 88 | Windows8 89 | false 90 | WindowsKernelModeDriver8.1 91 | Utility 92 | Package 93 | true 94 | 95 | 96 | Windows7 97 | true 98 | WindowsKernelModeDriver8.1 99 | Utility 100 | Package 101 | true 102 | 103 | 104 | Windows7 105 | false 106 | WindowsKernelModeDriver8.1 107 | Utility 108 | Package 109 | true 110 | 111 | 112 | WindowsV6.3 113 | true 114 | WindowsKernelModeDriver8.1 115 | Utility 116 | Package 117 | true 118 | 119 | 120 | WindowsV6.3 121 | false 122 | WindowsKernelModeDriver8.1 123 | Utility 124 | Package 125 | true 126 | 127 | 128 | Windows8 129 | true 130 | WindowsKernelModeDriver8.1 131 | Utility 132 | Package 133 | true 134 | 135 | 136 | Windows8 137 | false 138 | WindowsKernelModeDriver8.1 139 | Utility 140 | Package 141 | true 142 | 143 | 144 | Windows7 145 | true 146 | WindowsKernelModeDriver8.1 147 | Utility 148 | Package 149 | true 150 | 151 | 152 | Windows7 153 | false 154 | WindowsKernelModeDriver8.1 155 | Utility 156 | Package 157 | true 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | DbgengKernelDebugger 169 | False 170 | True 171 | 172 | 173 | 174 | False 175 | False 176 | True 177 | 178 | 133563 179 | 180 | 181 | DbgengKernelDebugger 182 | False 183 | True 184 | 185 | 186 | 187 | False 188 | False 189 | True 190 | 191 | 133563 192 | 193 | 194 | DbgengKernelDebugger 195 | False 196 | True 197 | 198 | 199 | 200 | False 201 | False 202 | True 203 | 204 | 133563 205 | 206 | 207 | DbgengKernelDebugger 208 | False 209 | True 210 | 211 | 212 | 213 | False 214 | False 215 | True 216 | 217 | 133563 218 | 219 | 220 | DbgengKernelDebugger 221 | False 222 | True 223 | 224 | 225 | 226 | False 227 | False 228 | True 229 | 230 | 133563 231 | 232 | 233 | DbgengKernelDebugger 234 | False 235 | True 236 | 237 | 238 | 239 | False 240 | False 241 | True 242 | 243 | 133563 244 | 245 | 246 | DbgengKernelDebugger 247 | False 248 | True 249 | 250 | 251 | 252 | False 253 | False 254 | True 255 | 256 | 133563 257 | 258 | 259 | DbgengKernelDebugger 260 | False 261 | True 262 | 263 | 264 | 265 | False 266 | False 267 | True 268 | 269 | 133563 270 | 271 | 272 | DbgengKernelDebugger 273 | False 274 | True 275 | 276 | 277 | 278 | False 279 | False 280 | True 281 | 282 | 133563 283 | 284 | 285 | DbgengKernelDebugger 286 | False 287 | True 288 | 289 | 290 | 291 | False 292 | False 293 | True 294 | 295 | 133563 296 | 297 | 298 | DbgengKernelDebugger 299 | False 300 | True 301 | 302 | 303 | 304 | False 305 | False 306 | True 307 | 308 | 133563 309 | 310 | 311 | DbgengKernelDebugger 312 | False 313 | True 314 | 315 | 316 | 317 | False 318 | False 319 | True 320 | 321 | 133563 322 | 323 | 324 | 325 | 326 | 327 | 328 | {a2c38f6b-d897-434d-86f2-bd4a9fd114b4} 329 | 330 | 331 | 332 | 333 | 334 | -------------------------------------------------------------------------------- /Net Package/Net Package.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {8E41214B-6785-4CFE-B992-037D68949A14} 6 | inf;inv;inx;mof;mc; 7 | 8 | 9 | -------------------------------------------------------------------------------- /Net Package/Win7Debug/Inf2Cat.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net Package/Win7Debug/Inf2Cat.command.1.tlog -------------------------------------------------------------------------------- /Net Package/Win7Debug/Net Package.log: -------------------------------------------------------------------------------- 1 | Build started 07/06/2018 16:35:31. 2 | 1>Project "C:\Users\KiSystem\Desktop\Net\Net Package\Net Package.vcxproj" on node 2 (Build target(s)). 3 | 1>Inf2Cat: 4 | C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:7_x86 /driver:"C:\Users\KiSystem\Desktop\Net\Win7Debug\Net Package\\" 5 | ........................ 6 | Signability test failed. 7 | 8 | Errors: 9 | 22.9.4: Bad file name for catalogfile from [Version] section in \net.inf 10 | 11 | Warnings: 12 | None 13 | 1>Win7Debug\inf2catOutput.log : Inf2Cat error -2: "Inf2Cat, signability test failed." Double click to see the tool output. 14 | 1>Done Building Project "C:\Users\KiSystem\Desktop\Net\Net Package\Net Package.vcxproj" (Build target(s)) -- FAILED. 15 | 16 | Build FAILED. 17 | 18 | Time Elapsed 00:00:00.67 19 | -------------------------------------------------------------------------------- /Net Package/Win7Debug/Net Package.tlog/Net Package.lastbuildstate: -------------------------------------------------------------------------------- 1 | #TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit 2 | Win7 Debug|Win32|C:\Users\KiSystem\Desktop\Net\| 3 | -------------------------------------------------------------------------------- /Net Package/Win7Debug/Net Package.tlog/unsuccessfulbuild: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net Package/Win7Debug/Net Package.tlog/unsuccessfulbuild -------------------------------------------------------------------------------- /Net Package/Win7Debug/inf2cat-expand.3892.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net Package/Win7Debug/inf2cat-expand.3892.read.1.tlog -------------------------------------------------------------------------------- /Net Package/Win7Debug/inf2cat-expand.3892.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net Package/Win7Debug/inf2cat-expand.3892.write.1.tlog -------------------------------------------------------------------------------- /Net Package/Win7Debug/inf2cat-expand.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net Package/Win7Debug/inf2cat-expand.read.1.tlog -------------------------------------------------------------------------------- /Net Package/Win7Debug/inf2cat-expand.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net Package/Win7Debug/inf2cat-expand.write.1.tlog -------------------------------------------------------------------------------- /Net Package/Win7Debug/inf2cat.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net Package/Win7Debug/inf2cat.read.1.tlog -------------------------------------------------------------------------------- /Net Package/Win7Debug/inf2cat.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net Package/Win7Debug/inf2cat.write.1.tlog -------------------------------------------------------------------------------- /Net Package/Win7Debug/inf2cat.write.7.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net Package/Win7Debug/inf2cat.write.7.tlog -------------------------------------------------------------------------------- /Net Package/Win7Debug/inf2catOutput.log: -------------------------------------------------------------------------------- 1 | Inf2Cat Tool Output: 2 | ........................ 3 | Signability test failed. 4 | 5 | Errors: 6 | 22.9.4: Bad file name for catalogfile from [Version] section in \net.inf 7 | 8 | Warnings: 9 | None 10 | -------------------------------------------------------------------------------- /Net.sdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net.sdf -------------------------------------------------------------------------------- /Net.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}") = "Net", "Net\Net.vcxproj", "{A2C38F6B-D897-434D-86F2-BD4A9FD114B4}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Net Package", "Net Package\Net Package.vcxproj", "{9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}" 9 | ProjectSection(ProjectDependencies) = postProject 10 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4} = {A2C38F6B-D897-434D-86F2-BD4A9FD114B4} 11 | EndProjectSection 12 | EndProject 13 | Global 14 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 15 | Win7 Debug|Win32 = Win7 Debug|Win32 16 | Win7 Debug|x64 = Win7 Debug|x64 17 | Win7 Release|Win32 = Win7 Release|Win32 18 | Win7 Release|x64 = Win7 Release|x64 19 | Win8 Debug|Win32 = Win8 Debug|Win32 20 | Win8 Debug|x64 = Win8 Debug|x64 21 | Win8 Release|Win32 = Win8 Release|Win32 22 | Win8 Release|x64 = Win8 Release|x64 23 | Win8.1 Debug|Win32 = Win8.1 Debug|Win32 24 | Win8.1 Debug|x64 = Win8.1 Debug|x64 25 | Win8.1 Release|Win32 = Win8.1 Release|Win32 26 | Win8.1 Release|x64 = Win8.1 Release|x64 27 | EndGlobalSection 28 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 29 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32 30 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32 31 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Debug|Win32.Deploy.0 = Win7 Debug|Win32 32 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Debug|x64.ActiveCfg = Win7 Debug|x64 33 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Debug|x64.Build.0 = Win7 Debug|x64 34 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Debug|x64.Deploy.0 = Win7 Debug|x64 35 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Release|Win32.ActiveCfg = Win7 Release|Win32 36 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Release|Win32.Build.0 = Win7 Release|Win32 37 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Release|Win32.Deploy.0 = Win7 Release|Win32 38 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Release|x64.ActiveCfg = Win7 Release|x64 39 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Release|x64.Build.0 = Win7 Release|x64 40 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win7 Release|x64.Deploy.0 = Win7 Release|x64 41 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Debug|Win32.ActiveCfg = Win8 Debug|Win32 42 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Debug|Win32.Build.0 = Win8 Debug|Win32 43 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Debug|Win32.Deploy.0 = Win8 Debug|Win32 44 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64 45 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Debug|x64.Build.0 = Win8 Debug|x64 46 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Debug|x64.Deploy.0 = Win8 Debug|x64 47 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Release|Win32.ActiveCfg = Win8 Release|Win32 48 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Release|Win32.Build.0 = Win8 Release|Win32 49 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Release|Win32.Deploy.0 = Win8 Release|Win32 50 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Release|x64.ActiveCfg = Win8 Release|x64 51 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Release|x64.Build.0 = Win8 Release|x64 52 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8 Release|x64.Deploy.0 = Win8 Release|x64 53 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32 54 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Debug|Win32.Build.0 = Win8.1 Debug|Win32 55 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Debug|Win32.Deploy.0 = Win8.1 Debug|Win32 56 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64 57 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64 58 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Debug|x64.Deploy.0 = Win8.1 Debug|x64 59 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Release|Win32.ActiveCfg = Win8.1 Release|Win32 60 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Release|Win32.Build.0 = Win8.1 Release|Win32 61 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Release|Win32.Deploy.0 = Win8.1 Release|Win32 62 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64 63 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64 64 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4}.Win8.1 Release|x64.Deploy.0 = Win8.1 Release|x64 65 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32 66 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32 67 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Debug|Win32.Deploy.0 = Win7 Debug|Win32 68 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Debug|x64.ActiveCfg = Win7 Debug|x64 69 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Debug|x64.Build.0 = Win7 Debug|x64 70 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Debug|x64.Deploy.0 = Win7 Debug|x64 71 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Release|Win32.ActiveCfg = Win7 Release|Win32 72 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Release|Win32.Build.0 = Win7 Release|Win32 73 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Release|Win32.Deploy.0 = Win7 Release|Win32 74 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Release|x64.ActiveCfg = Win7 Release|x64 75 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Release|x64.Build.0 = Win7 Release|x64 76 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win7 Release|x64.Deploy.0 = Win7 Release|x64 77 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Debug|Win32.ActiveCfg = Win8 Debug|Win32 78 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Debug|Win32.Build.0 = Win8 Debug|Win32 79 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Debug|Win32.Deploy.0 = Win8 Debug|Win32 80 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64 81 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Debug|x64.Build.0 = Win8 Debug|x64 82 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Debug|x64.Deploy.0 = Win8 Debug|x64 83 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Release|Win32.ActiveCfg = Win8 Release|Win32 84 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Release|Win32.Build.0 = Win8 Release|Win32 85 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Release|Win32.Deploy.0 = Win8 Release|Win32 86 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Release|x64.ActiveCfg = Win8 Release|x64 87 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Release|x64.Build.0 = Win8 Release|x64 88 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8 Release|x64.Deploy.0 = Win8 Release|x64 89 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32 90 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Debug|Win32.Build.0 = Win8.1 Debug|Win32 91 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Debug|Win32.Deploy.0 = Win8.1 Debug|Win32 92 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64 93 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64 94 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Debug|x64.Deploy.0 = Win8.1 Debug|x64 95 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Release|Win32.ActiveCfg = Win8.1 Release|Win32 96 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Release|Win32.Build.0 = Win8.1 Release|Win32 97 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Release|Win32.Deploy.0 = Win8.1 Release|Win32 98 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64 99 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64 100 | {9E6E1E3E-0DA1-4452-A7D4-38584A6FE3EC}.Win8.1 Release|x64.Deploy.0 = Win8.1 Release|x64 101 | EndGlobalSection 102 | GlobalSection(SolutionProperties) = preSolution 103 | HideSolutionNode = FALSE 104 | EndGlobalSection 105 | EndGlobal 106 | -------------------------------------------------------------------------------- /Net.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net.v12.suo -------------------------------------------------------------------------------- /Net/Net.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Net.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="Net Source Disk" 33 | -------------------------------------------------------------------------------- /Net/Net.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 | {A2C38F6B-D897-434D-86F2-BD4A9FD114B4} 55 | {dd38f7fc-d7bd-488b-9242-7d8754cde80d} 56 | v4.5 57 | 11.0 58 | Win8.1 Debug 59 | Win32 60 | Net 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 | TurnOffAllWarnings 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | -------------------------------------------------------------------------------- /Net/Net.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 | -------------------------------------------------------------------------------- /Net/Win7Debug/Net.Build.CppClean.log: -------------------------------------------------------------------------------- 1 | c:\users\kisystem\desktop\net\win7debug\net.sys 2 | c:\users\kisystem\desktop\net\net\win7debug\net.inf 3 | c:\users\kisystem\desktop\net\net\win7debug\vc120.pdb 4 | c:\users\kisystem\desktop\net\net\win7debug\driver.obj 5 | c:\users\kisystem\desktop\net\win7debug\net.pdb 6 | c:\users\kisystem\desktop\net\win7debug\net.cer 7 | c:\users\kisystem\desktop\net\win7debug\net.inf 8 | c:\users\kisystem\desktop\net\net\win7debug\signtool.command.1.tlog 9 | c:\users\kisystem\desktop\net\net\win7debug\signtool.read.1.tlog 10 | c:\users\kisystem\desktop\net\net\win7debug\signtool.write.1.tlog 11 | c:\users\kisystem\desktop\net\net\win7debug\stampinf.command.1.tlog 12 | c:\users\kisystem\desktop\net\net\win7debug\stampinf.read.1.tlog 13 | c:\users\kisystem\desktop\net\net\win7debug\stampinf.write.1.tlog 14 | c:\users\kisystem\desktop\net\net\win7debug\net.tlog\cl.command.1.tlog 15 | c:\users\kisystem\desktop\net\net\win7debug\net.tlog\cl.read.1.tlog 16 | c:\users\kisystem\desktop\net\net\win7debug\net.tlog\cl.write.1.tlog 17 | c:\users\kisystem\desktop\net\net\win7debug\net.tlog\link.command.1.tlog 18 | c:\users\kisystem\desktop\net\net\win7debug\net.tlog\link.read.1.tlog 19 | c:\users\kisystem\desktop\net\net\win7debug\net.tlog\link.write.1.tlog 20 | -------------------------------------------------------------------------------- /Net/Win7Debug/Net.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Net.inf 3 | ; 4 | 5 | [Version] 6 | Signature="$WINDOWS NT$" 7 | Class= 8 | ClassGuid= 9 | Provider= 10 | DriverVer=06/09/2018,16.58.45.374 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="Net Source Disk" 33 | -------------------------------------------------------------------------------- /Net/Win7Debug/Net.log: -------------------------------------------------------------------------------- 1 | Build started 09/06/2018 16:58:45. 2 | 1>Project "C:\Users\KiSystem\Desktop\Net\Net\Net.vcxproj" on node 2 (Rebuild target(s)). 3 | 1>StampInf: 4 | C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win7Debug\Net.inf 5 | Stamping Win7Debug\Net.inf [Version] section with DriverVer=06/09/2018,16.58.45.374 6 | ClCompile: 7 | C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin7Debug\ /Zi /nologo /W0 /WX /Od /Oi /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D DEPRECATE_DDK_FUNCTIONS=1 /D MSC_NOOPT /D _WIN32_WINNT=0x0601 /D WINVER=0x0601 /D WINNT=1 /D NTDDI_VERSION=0x06010000 /D DBG=1 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win7Debug\\" /Fd"Win7Debug\vc120.pdb" /Gz /wd4748 /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ driver.c 8 | driver.c 9 | Link: 10 | C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\KiSystem\Desktop\Net\Win7Debug\Net.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\memcmp.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\BufferOverflowK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\wmilib.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\KiSystem\Desktop\Net\Win7Debug\Net.pdb" /SUBSYSTEM:NATIVE,"6.01" /Driver /OPT:REF /OPT:ICF /ENTRY:"GsDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\KiSystem\Desktop\Net\Win7Debug\Net.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win7Debug\driver.obj 11 | Net.vcxproj -> C:\Users\KiSystem\Desktop\Net\Win7Debug\Net.sys 12 | DriverTestSign: 13 | C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "7AC0FCA54AB705884E77CE4251B9DF79E49DF3FD" 14 | Done Adding Additional Store 15 | Successfully signed: C:\Users\KiSystem\Desktop\Net\Win7Debug\Net.sys 16 | 17 | 1>Done Building Project "C:\Users\KiSystem\Desktop\Net\Net\Net.vcxproj" (Rebuild target(s)). 18 | 19 | Build succeeded. 20 | 21 | Time Elapsed 00:00:00.46 22 | -------------------------------------------------------------------------------- /Net/Win7Debug/Net.tlog/CL.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/Net.tlog/CL.read.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/Net.tlog/CL.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/Net.tlog/CL.write.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/Net.tlog/Net.lastbuildstate: -------------------------------------------------------------------------------- 1 | #TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit 2 | Win7 Debug|Win32|C:\Users\KiSystem\Desktop\Net\| 3 | -------------------------------------------------------------------------------- /Net/Win7Debug/Net.tlog/cl.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/Net.tlog/cl.command.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/Net.tlog/link.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/Net.tlog/link.command.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/Net.tlog/link.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/Net.tlog/link.read.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/Net.tlog/link.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/Net.tlog/link.write.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/driver.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/driver.obj -------------------------------------------------------------------------------- /Net/Win7Debug/signtool.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/signtool.command.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/signtool.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/signtool.read.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/signtool.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/signtool.write.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/stampinf.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/stampinf.command.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/stampinf.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/stampinf.read.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/stampinf.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/stampinf.write.1.tlog -------------------------------------------------------------------------------- /Net/Win7Debug/vc120.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Net/Win7Debug/vc120.pdb -------------------------------------------------------------------------------- /Net/driver.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | /*///////////////////////////////////////////// 7 | // 8 | // Description: Super basic TDI kernel-mode client 9 | // which can send and receive http requests 10 | // 11 | // Contains basic routines & implementations for 12 | // such actions. 13 | *////////////////////////////////////////////// 14 | 15 | 16 | 17 | #define TCPDRIVER L"\\Device\\Tcp" 18 | #define UDPDRIVER L"\\Device\\Udp" 19 | 20 | 21 | UNICODE_STRING tcpip = RTL_CONSTANT_STRING(TCPDRIVER); 22 | UNICODE_STRING udpdriver = RTL_CONSTANT_STRING(UDPDRIVER); 23 | #define HTONS(a) (((0xFF&a)<<8) + ((0xFF00&a)>>8)) 24 | #define INETADDR(a, b, c, d) (a + (b<<8) + (c<<16) + (d<<24)) 25 | 26 | #define _malloc(_s) ExAllocatePoolWithTag(NonPagedPool,_s,'AlO'); 27 | #define _free(_s) ExFreePoolWithTag(_s, 'AlO'); 28 | 29 | /*/////////////////////////////////// 30 | // 31 | // Function: TdiCompletionRoutine 32 | // 33 | // Purpose: Callback for the IRP 34 | // 35 | // 36 | *//////////////////////////////////// 37 | 38 | NTSTATUS TdiCompletionRoutine(IN PDEVICE_OBJECT Object, IN PIRP Irp, IN PVOID Context) 39 | { 40 | if (Context != NULL) 41 | { 42 | KeSetEvent((PKEVENT)Context, 0, FALSE); 43 | } 44 | 45 | return STATUS_MORE_PROCESSING_REQUIRED; 46 | } 47 | 48 | 49 | VOID Unload(PDRIVER_OBJECT pdriverobject) 50 | { 51 | DbgPrint("NetDrv Unloaded"); 52 | } 53 | 54 | /*/////////////////////////////////// 55 | // 56 | // Function: TDIKernelConnection 57 | // 58 | // Purpose: Create Connection Object 59 | // to create socket in Association 60 | // with Address Object 61 | // 62 | // Environment: Kernel Mode only 63 | // 64 | *//////////////////////////////////// 65 | 66 | NTSTATUS TDIKernelConnection(IN PHANDLE Handle, IN PFILE_OBJECT **ConnectionObject) 67 | { 68 | NTSTATUS st = STATUS_UNSUCCESSFUL; 69 | OBJECT_ATTRIBUTES oa; 70 | ULONG ubuffer; 71 | IO_STATUS_BLOCK io; 72 | CHAR EA_Buffer[sizeof(FILE_FULL_EA_INFORMATION) + sizeof(TdiTransportAddress)-1 + sizeof(TA_IP_ADDRESS)]; 73 | PFILE_FULL_EA_INFORMATION pEA_Buffer = (PFILE_FULL_EA_INFORMATION)EA_Buffer; 74 | CONNECTION_CONTEXT contextplaceholder = NULL; 75 | 76 | ubuffer = FIELD_OFFSET(FILE_FULL_EA_INFORMATION, EaName) + sizeof(TdiConnectionContext)-1 + 1 + sizeof(CONNECTION_CONTEXT); 77 | pEA_Buffer = (PFILE_FULL_EA_INFORMATION)ExAllocatePool(NonPagedPool, ubuffer); 78 | if (pEA_Buffer == NULL) 79 | { 80 | return STATUS_INSUFFICIENT_RESOURCES; 81 | } 82 | 83 | RtlSecureZeroMemory(pEA_Buffer, ubuffer); 84 | pEA_Buffer->NextEntryOffset = 0; 85 | pEA_Buffer->Flags = 0; 86 | pEA_Buffer->EaNameLength = sizeof(TdiConnectionContext) - 1; 87 | RtlCopyMemory(pEA_Buffer->EaName, TdiConnectionContext, pEA_Buffer->EaNameLength + 1); 88 | 89 | pEA_Buffer->EaValueLength = sizeof(CONNECTION_CONTEXT); 90 | *(CONNECTION_CONTEXT*)(pEA_Buffer->EaName + (pEA_Buffer->EaNameLength + 1)) = (CONNECTION_CONTEXT)contextplaceholder; 91 | 92 | InitializeObjectAttributes(&oa, &tcpip, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL); 93 | 94 | st = ZwCreateFile(Handle,FILE_GENERIC_READ |FILE_GENERIC_WRITE |SYNCHRONIZE,&oa,&io,0,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ,FILE_OPEN,0,pEA_Buffer,sizeof(EA_Buffer)); 95 | if (NT_SUCCESS(st)) 96 | { 97 | st = ObReferenceObjectByHandle(*Handle,FILE_GENERIC_READ,NULL,KernelMode,(PVOID*)*ConnectionObject,NULL); 98 | if (NT_SUCCESS(st)) 99 | { 100 | st = STATUS_SUCCESS; 101 | } 102 | } 103 | 104 | return st; 105 | } 106 | 107 | /*/////////////////////////////////////////////// 108 | // 109 | // Function: TDIKernelOpenAddress 110 | // 111 | // Purpose: Create Address Object 112 | // to create socket in Association 113 | // with Connection Object 114 | // 115 | // Environment: 116 | // Kernel mode only 117 | // 118 | *///////////////////////////////////////////////// 119 | 120 | NTSTATUS TDIKernelOpenAddress(IN PHANDLE *Handle, IN PFILE_OBJECT *ConnectionAddress, IN ULONG Ip, IN USHORT Port) 121 | { 122 | NTSTATUS st = STATUS_UNSUCCESSFUL; 123 | OBJECT_ATTRIBUTES TDIObjectAttributes = { 0 }; 124 | IO_STATUS_BLOCK io; 125 | PTA_IP_ADDRESS ipaddress; 126 | CHAR EABuffer[sizeof(FILE_FULL_EA_INFORMATION) + sizeof(TdiTransportAddress)-1 + sizeof(TA_IP_ADDRESS)]; // Fill the Extended Attributes Buffer 127 | PFILE_FULL_EA_INFORMATION pEABuffer = (PFILE_FULL_EA_INFORMATION)EABuffer; // Define the pointer 128 | 129 | 130 | InitializeObjectAttributes(&TDIObjectAttributes, &tcpip, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL); 131 | 132 | pEABuffer->NextEntryOffset = 0; 133 | pEABuffer->Flags = 0; 134 | pEABuffer->EaNameLength = sizeof(TdiTransportAddress) - 1; 135 | RtlCopyMemory(pEABuffer->EaName, TdiTransportAddress, pEABuffer->EaNameLength + 1); 136 | 137 | pEABuffer->EaValueLength = sizeof(TA_IP_ADDRESS); 138 | 139 | ipaddress = (PTA_IP_ADDRESS)(pEABuffer->EaName + pEABuffer->EaNameLength + 1); 140 | ipaddress->TAAddressCount = 1; // Number of Addresses, only one 141 | ipaddress->Address[0].AddressLength = TDI_ADDRESS_LENGTH_IP; // length 142 | ipaddress->Address[0].AddressType = TDI_ADDRESS_TYPE_IP; // type of address 143 | ipaddress->Address[0].Address[0].sin_port = Port; // define 0 for both port and Ip address 144 | ipaddress->Address[0].Address[0].in_addr = Ip; 145 | 146 | RtlSecureZeroMemory(ipaddress->Address[0].Address[0].sin_zero, sizeof(ipaddress->Address[0].Address[0].sin_zero)); 147 | 148 | st = ZwCreateFile(*Handle, FILE_GENERIC_READ | FILE_GENERIC_WRITE | SYNCHRONIZE, &TDIObjectAttributes, &io, 0, FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ,FILE_OPEN,0, pEABuffer, sizeof(EABuffer)); 149 | if (NT_SUCCESS(st)) 150 | { 151 | 152 | st = ObReferenceObjectByHandle(**Handle, FILE_ANY_ACCESS, 0,KernelMode,(PVOID*)ConnectionAddress,NULL); 153 | if (NT_SUCCESS(st)) 154 | { 155 | st = STATUS_SUCCESS; 156 | 157 | } 158 | 159 | } 160 | 161 | return st; 162 | } 163 | 164 | /*///////////////////////////////////////// 165 | // 166 | // Function: TDIKernelCreateTCPSocket 167 | // 168 | // Purpose: Create socket by associating 169 | // both the address object and the 170 | // connection object. 171 | // 172 | // Environment: Kernel mode only 173 | // 174 | *///////////////////////////////////////// 175 | 176 | NTSTATUS TDIKernelCreateTCPSocket(IN PHANDLE AddressHandle, IN PFILE_OBJECT *ConnectionObject, IN PDEVICE_OBJECT *SocketObject) 177 | { 178 | NTSTATUS st = STATUS_UNSUCCESSFUL; 179 | HANDLE objecthandle; 180 | KEVENT Event; 181 | PIRP Irp; 182 | PFILE_OBJECT AddressObject; 183 | IO_STATUS_BLOCK io; 184 | 185 | st = TDIKernelOpenAddress(&AddressHandle, &AddressObject, 0, 0); 186 | if (NT_SUCCESS(st)) 187 | { 188 | 189 | st = TDIKernelConnection(&objecthandle, &ConnectionObject); 190 | if (NT_SUCCESS(st)) 191 | { 192 | 193 | *SocketObject = IoGetRelatedDeviceObject(AddressObject); 194 | if (*SocketObject && MmIsAddressValid(*SocketObject)) 195 | { 196 | KeInitializeEvent(&Event, NotificationEvent, FALSE); 197 | Irp = TdiBuildInternalDeviceControlIrp(TDI_ASSOCIATE_ADDRESS, *SocketObject, *ConnectionObject, &Event, &io); 198 | if (Irp) 199 | { 200 | 201 | TdiBuildAssociateAddress(Irp, *SocketObject, *ConnectionObject, NULL, NULL, *AddressHandle); 202 | IoSetCompletionRoutine(Irp, TdiCompletionRoutine, &Event, TRUE, TRUE, TRUE); 203 | 204 | st = IofCallDriver(*SocketObject, Irp); 205 | if (st == STATUS_PENDING) 206 | { 207 | KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); 208 | } 209 | else 210 | { 211 | st = STATUS_SUCCESS; 212 | } 213 | } 214 | else 215 | { 216 | return STATUS_INSUFFICIENT_RESOURCES; 217 | } 218 | } 219 | } 220 | } 221 | 222 | return st; 223 | } 224 | 225 | /*///////////////////////////////////////// 226 | // 227 | // Function: TDIKernelConnect 228 | // 229 | // Purpose: Connects to existing 230 | // socket. 231 | // Emulates connect function from winsock 232 | // 233 | // Environment: Kernel mode only 234 | // 235 | *///////////////////////////////////////// 236 | 237 | NTSTATUS TDIKernelConnect(IN PFILE_OBJECT *ConnectionObject, IN PDEVICE_OBJECT *DeviceObject, IN USHORT PortNumber, IN ULONG Firstoctal, IN ULONG Secondoctal, IN ULONG Thirdoctal, IN ULONG Lastoctal) 238 | { 239 | NTSTATUS st; 240 | PIRP Irp; 241 | TA_IP_ADDRESS ipaddress; 242 | USHORT Port; 243 | ULONG Ip; 244 | KEVENT Event; 245 | IO_STATUS_BLOCK io; 246 | TDI_CONNECTION_INFORMATION connectinfo; 247 | 248 | KeInitializeEvent(&Event, NotificationEvent, FALSE); 249 | 250 | Irp = TdiBuildInternalDeviceControlIrp(TDI_CONNECT, *DeviceObject, *ConnectionObject, &Event, &io); 251 | if (Irp == NULL) 252 | { 253 | 254 | return STATUS_INSUFFICIENT_RESOURCES; 255 | } 256 | 257 | Port = HTONS(PortNumber); 258 | Ip = INETADDR(Firstoctal, Secondoctal, Thirdoctal, Lastoctal); 259 | 260 | ipaddress.TAAddressCount = 1; 261 | ipaddress.Address[0].AddressLength = TDI_ADDRESS_LENGTH_IP; 262 | ipaddress.Address[0].AddressType = TDI_ADDRESS_TYPE_IP; 263 | ipaddress.Address[0].Address[0].sin_port = Port; 264 | ipaddress.Address[0].Address[0].in_addr = Ip; 265 | 266 | connectinfo.UserDataLength = 0; 267 | connectinfo.UserData = 0; 268 | connectinfo.OptionsLength = 0; 269 | connectinfo.Options = 0; 270 | connectinfo.RemoteAddressLength = sizeof(ipaddress); 271 | connectinfo.RemoteAddress = &ipaddress; 272 | 273 | TdiBuildConnect(Irp, *DeviceObject, *ConnectionObject, NULL, NULL, NULL, &connectinfo, 0); 274 | 275 | IoSetCompletionRoutine(Irp, TdiCompletionRoutine, &Event, TRUE, TRUE, TRUE); 276 | 277 | st = IofCallDriver(*DeviceObject, Irp); 278 | if (st == STATUS_PENDING) 279 | { 280 | KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, 0); 281 | } 282 | 283 | return st; 284 | 285 | } 286 | 287 | /*///////////////////////////////////////// 288 | // 289 | // Function: TDISend 290 | // 291 | // Purpose: Sends data to remote server 292 | // 293 | // Emulates send function from winsock 294 | // 295 | // Environment: Kernel mode only 296 | // 297 | *///////////////////////////////////////// 298 | 299 | NTSTATUS TDISend(IN PFILE_OBJECT ConnectionObject, IN PDEVICE_OBJECT DeviceObject, IN PCHAR Data, IN ULONG Length) 300 | { 301 | NTSTATUS st = STATUS_UNSUCCESSFUL; 302 | KEVENT Event; 303 | PIRP Irp; 304 | PMDL Mdl; 305 | PCHAR Buffer = NULL; 306 | IO_STATUS_BLOCK io; 307 | 308 | Buffer = ExAllocatePool(NonPagedPool, Length); 309 | RtlCopyMemory(Buffer, Data, Length); 310 | 311 | KeInitializeEvent(&Event, NotificationEvent, FALSE); 312 | 313 | Irp = TdiBuildInternalDeviceControlIrp(TDI_SEND, DeviceObject, ConnectionObject, &Event, &io); 314 | if (Irp) 315 | { 316 | Mdl = IoAllocateMdl(Buffer, Length, FALSE, FALSE, Irp); 317 | if (Mdl) 318 | { 319 | __try 320 | { 321 | MmProbeAndLockPages(Mdl, KernelMode, IoModifyAccess); 322 | } 323 | __except (EXCEPTION_EXECUTE_HANDLER) 324 | { 325 | return STATUS_UNSUCCESSFUL; 326 | } 327 | 328 | TdiBuildSend(Irp, DeviceObject, ConnectionObject, NULL, NULL, Mdl, 0, Length); 329 | 330 | IoSetCompletionRoutine(Irp, TdiCompletionRoutine, &Event, TRUE, TRUE, TRUE); 331 | 332 | st = IofCallDriver(DeviceObject, Irp); 333 | if (st == STATUS_PENDING) 334 | { 335 | KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); 336 | } 337 | else 338 | { 339 | st = STATUS_SUCCESS; 340 | } 341 | 342 | } 343 | else 344 | { 345 | return STATUS_INSUFFICIENT_RESOURCES; 346 | } 347 | } 348 | else 349 | { 350 | return STATUS_INSUFFICIENT_RESOURCES; 351 | } 352 | 353 | return st; 354 | } 355 | 356 | /*///////////////////////////////////////// 357 | // 358 | // Function: TDIRecv 359 | // 360 | // Purpose: Receives data from remote server 361 | // 362 | // Emulates recv function from winsock 363 | // 364 | // Environment: Kernel mode only 365 | // 366 | *///////////////////////////////////////// 367 | 368 | NTSTATUS TDIRecv(IN PFILE_OBJECT ConnectionObject, IN PDEVICE_OBJECT DeviceObject, PCHAR Data, ULONG Length) 369 | { 370 | NTSTATUS st = STATUS_UNSUCCESSFUL; 371 | PIRP Irp; 372 | KEVENT Event; 373 | IO_STATUS_BLOCK io; 374 | PMDL Mdl; 375 | 376 | KeInitializeEvent(&Event, NotificationEvent, FALSE); 377 | 378 | Irp = TdiBuildInternalDeviceControlIrp(TDI_RECEIVE, DeviceObject, ConnectionObject,&Event, &io); 379 | if (Irp) 380 | { 381 | Mdl = IoAllocateMdl(Data, Length, FALSE, FALSE, Irp); 382 | if (Mdl) 383 | { 384 | __try 385 | { 386 | MmProbeAndLockPages(Mdl, KernelMode, IoModifyAccess); 387 | } 388 | __except (EXCEPTION_EXECUTE_HANDLER) 389 | { 390 | return GetExceptionCode(); 391 | st = STATUS_UNSUCCESSFUL; 392 | } 393 | 394 | TdiBuildReceive(Irp, DeviceObject, ConnectionObject, NULL, NULL, Mdl, TDI_RECEIVE_NORMAL, Length); 395 | 396 | IoSetCompletionRoutine(Irp, TdiCompletionRoutine, &Event, TRUE, TRUE, TRUE); 397 | 398 | st = IofCallDriver(DeviceObject, Irp); 399 | if (st == STATUS_PENDING) 400 | { 401 | KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); 402 | } 403 | else 404 | { 405 | st = STATUS_SUCCESS; 406 | } 407 | 408 | } 409 | else 410 | { 411 | st = STATUS_INSUFFICIENT_POWER; 412 | } 413 | } 414 | else 415 | { 416 | st = STATUS_INSUFFICIENT_RESOURCES; 417 | } 418 | 419 | return st; 420 | 421 | } 422 | 423 | /*///////////////////////////////////////// 424 | // 425 | // Function: TDICloseSocket 426 | // 427 | // Purpose: Closes existing ConnectionObject 428 | // 429 | // Emulates closesocket function from winsock 430 | // 431 | // Environment: Kernel mode only 432 | // 433 | *///////////////////////////////////////// 434 | 435 | NTSTATUS TDICloseSocket(IN PFILE_OBJECT ConnectionObject, IN PDEVICE_OBJECT DeviceObject) 436 | { 437 | NTSTATUS st = STATUS_UNSUCCESSFUL; 438 | PIRP Irp; 439 | IO_STATUS_BLOCK io; 440 | KEVENT Event; 441 | 442 | KeInitializeEvent(&Event, NotificationEvent, FALSE); 443 | 444 | Irp = TdiBuildInternalDeviceControlIrp(TDI_DISCONNECT, DeviceObject, ConnectionObject, &Event, &io); 445 | if (Irp) 446 | { 447 | TdiBuildDisconnect(Irp, DeviceObject, ConnectionObject, NULL, NULL, NULL, TDI_DISCONNECT_RELEASE, 0, 0); 448 | 449 | IoSetCompletionRoutine(Irp, TdiCompletionRoutine, &Event, TRUE, TRUE, TRUE); 450 | 451 | st = IofCallDriver(DeviceObject, Irp); 452 | if (st == STATUS_PENDING) 453 | { 454 | KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); 455 | } 456 | else 457 | { 458 | st = STATUS_SUCCESS; 459 | } 460 | } 461 | else 462 | { 463 | return STATUS_INSUFFICIENT_RESOURCES; 464 | } 465 | 466 | return st; 467 | } 468 | 469 | 470 | 471 | NTSTATUS DriverEntry(PDRIVER_OBJECT pdriverobject, PUNICODE_STRING RegisterPath) 472 | { 473 | 474 | DbgPrint("NetDrv Loaded"); 475 | 476 | char recvrequest[1024] = { 0 }; 477 | int size = 0; 478 | HANDLE AddressHandle = 0; 479 | PDEVICE_OBJECT DeviceObject = NULL; 480 | PFILE_OBJECT FileObject = NULL; 481 | NTSTATUS st; 482 | 483 | CHAR szHeader[] = 484 | "POST /panel/client.php HTTP/1.0\r\n" 485 | "Host: 192.168.1.33\r\n" 486 | "Content-Type: application/octet-stream\r\n" 487 | "Content-Encoding: binary\r\n" 488 | "Content-Length: 27\r\n" 489 | "Connection: close\r\n" 490 | "\r\n"; 491 | 492 | char postreq[] = "name=kernelmode&password=tdi"; 493 | int datalen = strlen(postreq); 494 | char header[sizeof(szHeader) + 100]; 495 | 496 | RtlStringCchCopyA(header,sizeof(header), szHeader); 497 | int headerlen = strlen(header); 498 | 499 | // TDIKernelCreateTCPSocket acts like WSAStartup from winsock 500 | 501 | st = TDIKernelCreateTCPSocket(&AddressHandle, &FileObject, &DeviceObject); 502 | if (!NT_SUCCESS(st)) 503 | { 504 | return STATUS_UNSUCCESSFUL; 505 | } 506 | 507 | // Connect to the remote server given 4 octal numbers and port number 508 | 509 | st = TDIKernelConnect(&FileObject, &DeviceObject, 80, 192, 168, 1, 33); 510 | if (!NT_SUCCESS(st)) 511 | { 512 | return STATUS_UNSUCCESSFUL; 513 | } 514 | 515 | // send POST Request to the php panel 516 | 517 | st = TDISend(FileObject, DeviceObject, header, headerlen); 518 | if (!NT_SUCCESS(st)) 519 | { 520 | return STATUS_UNSUCCESSFUL; 521 | } 522 | 523 | // send data 524 | 525 | st = TDISend(FileObject, DeviceObject, postreq, datalen); 526 | if (!NT_SUCCESS(st)) 527 | { 528 | return STATUS_UNSUCCESSFUL; 529 | } 530 | 531 | // Receive HTTP request, response from the server 532 | 533 | st = TDIRecv(FileObject, DeviceObject, recvrequest, sizeof(recvrequest)); 534 | if (!NT_SUCCESS(st)) 535 | { 536 | return STATUS_UNSUCCESSFUL; 537 | } 538 | 539 | // null terminate the string 540 | 541 | recvrequest[strlen(recvrequest)] = '\0'; 542 | DbgPrint("%s", recvrequest); 543 | 544 | // close socket 545 | // close AddressHandle 546 | // Decrement Object, we dont need it anymore 547 | 548 | TDICloseSocket(FileObject, DeviceObject); 549 | ZwClose(AddressHandle); 550 | ObfDereferenceObject(FileObject); 551 | 552 | 553 | pdriverobject->DriverUnload = Unload; 554 | 555 | 556 | return STATUS_SUCCESS; 557 | 558 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NetDriver 2 | kernel-mode TDI client which can send and receive HTTP requests 3 | Compiled using Visual Studio 2013 4 | To compile the driver, install WDK 8.1 https://www.microsoft.com/en-us/download/details.aspx?id=42273 5 | -------------------------------------------------------------------------------- /Win7Debug/Net Package/Net.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Net.inf 3 | ; 4 | 5 | [Version] 6 | Signature="$WINDOWS NT$" 7 | Class= 8 | ClassGuid= 9 | Provider= 10 | DriverVer=06/07/2018,16.35.31.266 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="Net Source Disk" 33 | -------------------------------------------------------------------------------- /Win7Debug/Net Package/Net.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Win7Debug/Net Package/Net.sys -------------------------------------------------------------------------------- /Win7Debug/Net.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexvogt91/NetDriver/c3074576202a3e49c65ad80b391a5579f8001f7a/Win7Debug/Net.cer -------------------------------------------------------------------------------- /Win7Debug/Net.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Net.inf 3 | ; 4 | 5 | [Version] 6 | Signature="$WINDOWS NT$" 7 | Class= 8 | ClassGuid= 9 | Provider= 10 | DriverVer=06/09/2018,16.58.45.374 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="Net Source Disk" 33 | --------------------------------------------------------------------------------