Skip to content

Commit 397fae4

Browse files
1.6 - Total unification of driver
- Now driver uses a single INF file for both legacy and standard variants, along with both architectures. - No more separate INF for legacy version. - All configurations are separated with their respective device names. - Visual Studio 2013 configuration updated to cover both variants at every Windows version. - Now it can compile both variants with corresponding project configurations. - Minimum subsystem versions are set so that compiled drivers will work at all Windows versions. - With this update, support for old WDKs (7.1 and older) are removed. - They had very outdated toolchains and lacked support for many things such as: - Project configurations (literally) - C language support newer than C89 - Automatic driver signing - Paths with spaces - They don't work well on modern Windows hosts. - Due to these inferiorities, they were creating a big unnecessary hassle for supporting them and separating binaries by hand after compiling. - Now source files are moved to a folder named "src" so the source tree looks better.
1 parent 0237f3b commit 397fae4

16 files changed

Lines changed: 278 additions & 234 deletions

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ obj*
66
Debug
77
Release
88
win*
9-
RC*
9+
RC*
10+
Out
11+
Intermediate

README.md

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# TimeDefuser
1+
# TimeDefuser
22
TimeDefuser is a kernel-mode Windows driver that patches the kernel to neutralize the expiration date (a.k.a. timebomb),
33
which is seen on most prerelease builds that has been ever compiled.
44

@@ -13,9 +13,9 @@ It will not remove the expiration date of
1313
- Your abusive relationship
1414
- 100-minute Minecraft demo
1515
- The Pepsi can from 1956 that is inside your fridge for whatever reason
16-
- Aceyware "Tracey" Operating System version 0.1.3
16+
- Aceyware "Tracey" Operating System version 0.1.3 (or whatever its name ends up being)
1717
- ???
18-
- Evalution retail Windows builds. While it theoretically should work, such configuration is not supported and any bug reports regarding to them will be closed without any further action.
18+
- Evaluation retail Windows builds. While it theoretically should work, such configuration is not supported and any bug reports regarding to them will be closed without any further action.
1919

2020
> [!IMPORTANT]
2121
> This driver will **not** patch Windows Product Activation or any other similar mechanism. These other mechanisms can be preferred as well in supported builds but here is not their place.
@@ -72,16 +72,14 @@ Driver logs will look like this when it works:
7272
Builds with debug symbols are recommended to try, due to symbols making debugging much easier.
7373

7474
# Build
75-
## TimeDefuser Legacy for Windows 2000 and XP
76-
*Should also can be used to compile standard TimeDefuser to later versions as long as a compatible WDK is used for target version.*
77-
1. Get a WDK/DDK compatible with your target version.
78-
2. Open the build environment console
79-
3. Locate to source folder and execute "nmake"
80-
4. Get the TimeDefuserLegacy.inf and change the `$ARCH$` to target architecture.
81-
## Windows 7 and Later with Visual Studio 2013 & Windows 8.1 WDK (And Vista??)
82-
1. Get the Windows 8.1 WDK (or anything earlier with it's conforming VS version)
75+
Starting with version 1.6, Visual Studio 2013 can build both variants
76+
and support every Windows version by having appopriate minimum subsystem version set.
77+
With this change, building with old WDKs (7.1 and older) is completely removed
78+
## Every Windows version with Visual Studio 2013 & Windows 8.1 WDK
79+
1. Get the VS 2013 & Windows 8.1 WDK
8380
2. Open the solution `TimeDefuser-vs13.sln`
84-
3. Hit the compile button.
81+
3. Select the appopriate build configuration for your needs (architecture and standard/legacy configurations.)
82+
4. Hit the compile button.
8583
## Windows 7* and Later with Visual Studio 2022 & Windows 11 WDK
8684
> [!WARNING]
8785
> \*: With Windows 11 WDK released in May 2025, Microsoft killed the support for 32-bit architectures, and for anything earlier than Windows 10 RTM.
@@ -93,15 +91,13 @@ Builds with debug symbols are recommended to try, due to symbols making debuggin
9391
2. Open the solution `TimeDefuser.sln`
9492
3. Hit the compile button.
9593

96-
9794
# Screenshots
9895
![Windows 7973 x64-2025-05-04-16-08-40](https://github.com/user-attachments/assets/f3d3a116-5b67-4b8f-bd4c-d907485a435b)
9996
![Windows 10072 x64-2025-11-10-12-53-19](https://github.com/user-attachments/assets/02bb0087-762a-4a2b-98c9-16b3bf850a0d)
10097
![Windows 2526-2025-05-08-17-39-56](https://github.com/user-attachments/assets/24e4f5c9-5cdc-4eae-b91f-dc13bb93a22c)
10198

102-
10399
# Thanks to
104100
- **Microsoft** for Windows, Windbg and all else.
105101
- **archive.org and BetaArchive** for preserving beta builds and debug symbols.
106102
- **Dimitrios Vlachos** for motivational support.
107-
- All the precious testers that opened up issues.
103+
- **All the precious testers** that opened up issues.

TimeDefuser-vs13.sln

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,29 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TimeDefuser", "TimeDefuser-
77
EndProject
88
Global
99
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug Legacy|Win32 = Debug Legacy|Win32
11+
Debug Legacy|x64 = Debug Legacy|x64
1012
Debug|Win32 = Debug|Win32
1113
Debug|x64 = Debug|x64
1214
Release|Win32 = Release|Win32
1315
Release|x64 = Release|x64
1416
EndGlobalSection
1517
GlobalSection(ProjectConfigurationPlatforms) = postSolution
18+
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug Legacy|Win32.ActiveCfg = Debug Legacy|Win32
19+
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug Legacy|Win32.Build.0 = Debug Legacy|Win32
20+
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug Legacy|Win32.Deploy.0 = Debug Legacy|Win32
21+
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug Legacy|x64.ActiveCfg = Debug Legacy|x64
22+
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug Legacy|x64.Build.0 = Debug Legacy|x64
23+
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug Legacy|x64.Deploy.0 = Debug Legacy|x64
1624
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug|Win32.ActiveCfg = Debug|Win32
1725
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug|Win32.Build.0 = Debug|Win32
1826
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug|Win32.Deploy.0 = Debug|Win32
1927
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug|x64.ActiveCfg = Debug|x64
2028
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug|x64.Build.0 = Debug|x64
2129
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Debug|x64.Deploy.0 = Debug|x64
22-
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Release|Win32.ActiveCfg = Win7 Release|Win32
23-
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Release|Win32.Build.0 = Win7 Release|Win32
24-
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Release|Win32.Deploy.0 = Win7 Release|Win32
30+
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Release|Win32.ActiveCfg = Release|Win32
31+
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Release|Win32.Build.0 = Release|Win32
32+
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Release|Win32.Deploy.0 = Release|Win32
2533
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Release|x64.ActiveCfg = Release|x64
2634
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Release|x64.Build.0 = Release|x64
2735
{485FBB3F-2675-431D-A4D1-54A7294C76A2}.Release|x64.Deploy.0 = Release|x64

TimeDefuser-vs13.vcxproj

Lines changed: 86 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug Legacy|Win32">
5+
<Configuration>Debug Legacy</Configuration>
6+
<Platform>Win32</Platform>
7+
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Debug Legacy|x64">
9+
<Configuration>Debug Legacy</Configuration>
10+
<Platform>x64</Platform>
11+
</ProjectConfiguration>
412
<ProjectConfiguration Include="Debug|Win32">
513
<Configuration>Debug</Configuration>
614
<Platform>Win32</Platform>
@@ -36,6 +44,13 @@
3644
<ConfigurationType>Driver</ConfigurationType>
3745
<DriverType>WDM</DriverType>
3846
</PropertyGroup>
47+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|Win32'" Label="Configuration">
48+
<TargetVersion>Windows7</TargetVersion>
49+
<UseDebugLibraries>true</UseDebugLibraries>
50+
<PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
51+
<ConfigurationType>Driver</ConfigurationType>
52+
<DriverType>WDM</DriverType>
53+
</PropertyGroup>
3954
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
4055
<TargetVersion>Windows7</TargetVersion>
4156
<UseDebugLibraries>false</UseDebugLibraries>
@@ -50,6 +65,13 @@
5065
<ConfigurationType>Driver</ConfigurationType>
5166
<DriverType>WDM</DriverType>
5267
</PropertyGroup>
68+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|x64'" Label="Configuration">
69+
<TargetVersion>Windows7</TargetVersion>
70+
<UseDebugLibraries>true</UseDebugLibraries>
71+
<PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
72+
<ConfigurationType>Driver</ConfigurationType>
73+
<DriverType>WDM</DriverType>
74+
</PropertyGroup>
5375
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
5476
<TargetVersion>Windows7</TargetVersion>
5577
<UseDebugLibraries>false</UseDebugLibraries>
@@ -68,47 +90,104 @@
6890
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
6991
<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
7092
<TargetName>$(TargetName.Replace(' ',''))-x86</TargetName>
93+
<IntDir>Intermediate\$(Platform)\$(ConfigurationName)\</IntDir>
94+
<OutDir>$(SolutionDir)\Out\</OutDir>
95+
</PropertyGroup>
96+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|Win32'">
97+
<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
98+
<TargetName>$(TargetName.Replace(' ',''))-Legacy-x86</TargetName>
99+
<IntDir>Intermediate\$(Platform)\$(ConfigurationName)\</IntDir>
100+
<OutDir>$(SolutionDir)\Out\</OutDir>
71101
</PropertyGroup>
72102
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
73103
<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
74104
<TargetName>$(TargetName.Replace(' ',''))-x86</TargetName>
105+
<IntDir>Intermediate\$(Platform)\$(ConfigurationName)\</IntDir>
106+
<OutDir>$(SolutionDir)\Out\</OutDir>
75107
</PropertyGroup>
76108
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
77109
<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
78110
<TargetName>$(TargetName.Replace(' ',''))-amd64</TargetName>
79-
<OutDir>$(SolutionDir)\$(ConfigurationName)\</OutDir>
111+
<OutDir>$(SolutionDir)\Out\</OutDir>
112+
<IntDir>Intermediate\$(Platform)\$(ConfigurationName)\</IntDir>
113+
</PropertyGroup>
114+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|x64'">
115+
<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
116+
<TargetName>$(TargetName.Replace(' ',''))-Legacy-amd64</TargetName>
117+
<OutDir>$(SolutionDir)\Out\</OutDir>
118+
<IntDir>Intermediate\$(Platform)\$(ConfigurationName)\</IntDir>
80119
</PropertyGroup>
81120
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
82121
<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
83122
<TargetName>$(TargetName.Replace(' ',''))-amd64</TargetName>
84-
<OutDir>$(SolutionDir)\$(ConfigurationName)\</OutDir>
123+
<OutDir>$(SolutionDir)\Out\</OutDir>
124+
<IntDir>Intermediate\$(Platform)\$(ConfigurationName)\</IntDir>
85125
</PropertyGroup>
86126
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
87127
<Link>
88128
<Version>6.0</Version>
129+
<MinimumRequiredVersion>6.00</MinimumRequiredVersion>
130+
</Link>
131+
</ItemDefinitionGroup>
132+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|Win32'">
133+
<Link>
134+
<Version>5.0</Version>
135+
<MinimumRequiredVersion>5.00</MinimumRequiredVersion>
136+
<Driver>WDM</Driver>
89137
</Link>
138+
<ClCompile>
139+
<PreprocessorDefinitions>%(PreprocessorDefinitions);TD_LEGACY=1</PreprocessorDefinitions>
140+
</ClCompile>
90141
</ItemDefinitionGroup>
91142
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
92143
<Link>
93144
<Version>6.0</Version>
94145
</Link>
95146
</ItemDefinitionGroup>
147+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|x64'">
148+
<Link>
149+
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
150+
<Version>5.0</Version>
151+
</Link>
152+
<ClCompile>
153+
<PreprocessorDefinitions>_WIN64;_AMD64_;AMD64;%(PreprocessorDefinitions);TD_LEGACY=1</PreprocessorDefinitions>
154+
</ClCompile>
155+
</ItemDefinitionGroup>
156+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
157+
<Inf>
158+
<SpecifyDriverVerDirectiveVersion>false</SpecifyDriverVerDirectiveVersion>
159+
</Inf>
160+
<Link>
161+
<MinimumRequiredVersion>6.00</MinimumRequiredVersion>
162+
</Link>
163+
</ItemDefinitionGroup>
96164
<ItemGroup>
97165
<FilesToPackage Include="$(TargetPath)" />
98166
<FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
99167
</ItemGroup>
100168
<ItemGroup>
101-
<ClInclude Include="resource.h" />
102-
<ClInclude Include="TimeDefuser.h" />
169+
<ClInclude Include="src\resource.h" />
170+
<ClInclude Include="src\TimeDefuser.h" />
103171
</ItemGroup>
104172
<ItemGroup>
105-
<ResourceCompile Include="TimeDefuser.rc" />
173+
<Inf Include="src\TimeDefuser.inf" />
106174
</ItemGroup>
107175
<ItemGroup>
108-
<None Include="TimeDefuser.inf" />
176+
<ResourceCompile Include="src\TimeDefuser.rc" />
109177
</ItemGroup>
110178
<ItemGroup>
111-
<ClCompile Include="Driver.c" />
179+
<ClCompile Include="src\Driver.c">
180+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|Win32'">true</ExcludedFromBuild>
181+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|x64'">true</ExcludedFromBuild>
182+
</ClCompile>
183+
<ClCompile Include="src\DriverLegacy.c">
184+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
185+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|Win32'">false</ExcludedFromBuild>
186+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
187+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Legacy|x64'">false</ExcludedFromBuild>
188+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
189+
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
190+
</ClCompile>
112191
</ItemGroup>
113192
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
114193
<ImportGroup Label="ExtensionTargets">

TimeDefuser-vs13.vcxproj.filters

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,29 @@
1919
</Filter>
2020
</ItemGroup>
2121
<ItemGroup>
22-
<Inf Include="TimeDefuservs13.inf">
22+
<ClInclude Include="src\TimeDefuser.h">
23+
<Filter>Header Files</Filter>
24+
</ClInclude>
25+
<ClInclude Include="src\resource.h">
26+
<Filter>Header Files</Filter>
27+
</ClInclude>
28+
</ItemGroup>
29+
<ItemGroup>
30+
<Inf Include="src\TimeDefuser.inf">
2331
<Filter>Driver Files</Filter>
2432
</Inf>
2533
</ItemGroup>
34+
<ItemGroup>
35+
<ResourceCompile Include="src\TimeDefuser.rc">
36+
<Filter>Resource Files</Filter>
37+
</ResourceCompile>
38+
</ItemGroup>
39+
<ItemGroup>
40+
<ClCompile Include="src\Driver.c">
41+
<Filter>Source Files</Filter>
42+
</ClCompile>
43+
<ClCompile Include="src\DriverLegacy.c">
44+
<Filter>Source Files</Filter>
45+
</ClCompile>
46+
</ItemGroup>
2647
</Project>

TimeDefuser.inf

Lines changed: 0 additions & 75 deletions
This file was deleted.

TimeDefuser.vcxproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,15 @@
159159
</DriverSign>
160160
</ItemDefinitionGroup>
161161
<ItemGroup>
162-
<Inf Include="TimeDefuser.inf" />
163-
<Inf Include="TimeDefuserLegacy.inf" />
162+
<Inf Include="src\TimeDefuser.inf" />
163+
<Inf Include="src\TimeDefuserLegacy.inf" />
164164
</ItemGroup>
165165
<ItemGroup>
166166
<FilesToPackage Include="$(TargetPath)" />
167167
</ItemGroup>
168168
<ItemGroup>
169-
<ClCompile Include="Driver.c" />
170-
<ClCompile Include="DriverLegacy.c">
169+
<ClCompile Include="src\Driver.c" />
170+
<ClCompile Include="src\DriverLegacy.c">
171171
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
172172
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
173173
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild>
@@ -180,10 +180,10 @@
180180
<None Include="README.md" />
181181
</ItemGroup>
182182
<ItemGroup>
183-
<ResourceCompile Include="TimeDefuser.rc" />
183+
<ResourceCompile Include="src\TimeDefuser.rc" />
184184
</ItemGroup>
185185
<ItemGroup>
186-
<ClInclude Include="TimeDefuser.h" />
186+
<ClInclude Include="src\TimeDefuser.h" />
187187
</ItemGroup>
188188
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
189189
<ImportGroup Label="ExtensionTargets">

0 commit comments

Comments
 (0)