You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Registry was broken due to use of __cdecl *printf family functions, those are no more needed with this commit.
INF is also removed, now we do sc create with a script instead.
Copy file name to clipboardExpand all lines: README.md
+29-22Lines changed: 29 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,15 @@
1
1
# TimeDefuser
2
-
TimeDefuser is a kernel-mode Windows driver that patches the kernel to neutralize the expiration date (a.k.a. timebomb),
3
-
which is seen on most prerelease builds that has been ever compiled.
4
2
5
-
This patch patches the timebomb code itself in the kernel so it is the most effective and versatile way to neutralize it, instead of activation patching (i.e. policy files or registry editing) which is not available in many builds.
3
+
TimeDefuser is a Windows kernel security research project on enforcement of expiration dates (a.k.a. a "*timebomb*") on prerelease Windows builds, how to patch them for gaining arbitrary code execution,
4
+
and a proof-of-concept (shared for education and research purposes) that removes expiration date enforcement from the kernel.
5
+
The PoC driver in this repository patches the timebomb code itself in the kernel, which differs from widespread "activation-based" patches (policy files, registry edits, etc.).
6
+
Thus, it is the most effective and versatile way to neutralize it, unlike activation-based patching methods which are not available in many builds.
6
7
7
-
All builds are theoretically supported but not all builds are tested, see the notes for more info, or the end of this readme for screenshots.
8
+
All builds are *theoretically* supported, but not all builds are tested. See the notes below and screenshots at the end of this document.
9
+
10
+
Full whitepaper and technical analysis is located [here](/TimeDefuser-Research.md). The rest of this document is about the PoC driver that removes expiration date enforcement from the system.
11
+
12
+
# TimeDefuser PoC Driver
8
13
9
14
> [!WARNING]
10
15
> This driver is intended to remove the **Windows builds'** expiration date only
@@ -13,41 +18,43 @@ It will not remove the expiration date of
13
18
- Your abusive relationship
14
19
- 100-minute Minecraft demo
15
20
- The Pepsi can from 1956 that is inside your fridge for whatever reason
16
-
- Aceyware "Tracey" Operating System version 0.1.3 (or whatever its name ends up being)
21
+
- Aceyware "Tracey" Operating System version 0.1.3 (or whatever it ends up being called)
17
22
- ???
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.
23
+
- Evaluation retail Windows builds. While it *may*work, this configuration is unsupported and any related bug reports will be closed.
19
24
20
25
> [!IMPORTANT]
21
26
> 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.
22
27
23
-
# Notes Per Version
28
+
# Notes
29
+
- A good amount of x64 builds can detect this via PatchGuard (basically a mechanism in Windows kernel that detects unauthorized modifications to kernel code, does not exist in x86).
30
+
Getting over it will weaponize this already versatile patch, so disabling PatchGuard will never be implemented. But as an user, you still have workarounds:
31
+
- Force enable kernel debugger at boot, which will disable PatchGuard
32
+
- Patch the kernel image itself with offline patcher, instead of runtime patching with driver.
33
+
- This patch can technically be ported to ARM, ARM64 and Itanium hosts but due to lack of an environment to run and debug Windows on these platforms, this is not possible at the moment.
34
+
35
+
## Notes Per Version
36
+
24
37
### Windows 2000/XP
25
-
- Use legacy version with those.
26
-
- Also note that alternative methods such as registry edits are available for those.
27
-
-**I KNOW that they do, so don't come to say me "muh set GracePeriod to 0" or "muh use TweakNT"**. This tweak for NT 5.x exists more as proof of concept, and both this patch or other tweaks will do the work.
38
+
-**I KNOW there are "easier" methods, so don't come to say me "muh set GracePeriod to 0" or "muh use TweakNT"**. This tweak for NT 5.x exists more as proof of concept, and both this patch or other tweaks will do the work.
28
39
### Post-reset Windows Vista & Early 7
29
-
- They suck. Avoid using these versions at all. After build expires, buggy WPA breaks the timebomb which makes this patch not get applied anyway, and shows the "Activate Windows" dialog which logs you off if you say no; considering that those builds can skip the windeploy and boot to OOBE/desktop at all in the first place (https://github.com/NevermindExpress/TimeDefuser/issues/3). See https://github.com/NevermindExpress/TimeDefuser/issues/2 and https://github.com/NevermindExpress/TimeDefuser/issues/2#issuecomment-2970226626 for more info.
40
+
- They suck. Avoid using these versions at all. After build expires, buggy WPA breaks the timebomb which makes this patch not get applied anyway, and shows the "Activate Windows" dialog which logs you off if you say no; considering that those builds can successfully finish the windeploy and boot to OOBE/desktop at all in the first place (https://github.com/NevermindExpress/TimeDefuser/issues/3). See https://github.com/NevermindExpress/TimeDefuser/issues/2 and https://github.com/NevermindExpress/TimeDefuser/issues/2#issuecomment-2970226626 for more info.
30
41
- These builds are *wontfix* because there is nothing to fix/can be fixed in the first place. Blame Microsoft.
31
-
- Alternative patch methods should be used for those. See https://github.com/NevermindExpress/TimeDefuser/issues/2#issuecomment-2904890597
32
42
### Later Windows 7 (at least 67xx and later)
33
-
- Since TimeDefuser 1.7.1 they are now working working without hitting into page fault (see #3), though they are still subject to PatchGuard detections, an active investigation is going for them at #8.
43
+
- Since TimeDefuser 1.7.1 they are now working working without hitting into page fault (see #3), though they are still subject to PatchGuard detections.
34
44
### Windows 8
35
-
- Some builds such as 7880 has a partially broken timebomb that effectively gets disabled if you install at current date instead of rolling it back to pre-expiration before install. See https://github.com/NevermindExpress/TimeDefuser/issues/5
36
-
- Certain builds such as aforementioned are also subject to crashes by PatchGuard, while others such as the ones with the screenshots below are not. See https://github.com/NevermindExpress/TimeDefuser/issues/5#issuecomment-3369399950
37
-
- Few builds can be patched with policy/spp files replacement. **Again, I KNOW 'THEY' CAN BE PATCHED**. "MUH FBL builds can be patched by doing X/can be used at current date without doing anything" well, my thing can patch **ALL** versions (except ones that have superior PatchGuard) while your method can only fix a few builds.
45
+
- Some builds such as 7880 has a partially broken timebomb that effectively gets disabled if you install at current date instead of setting it to pre-expiration before install. See https://github.com/NevermindExpress/TimeDefuser/issues/5
46
+
-**Again, I KNOW 'THEY' CAN BE PATCHED WITH POLICY/SPP FILES REPLACEMENT**. "MUH FBL builds can be patched by doing X/can be used at current date without doing anything" well, my thing can patch **ALL** versions (except ones that have superior PatchGuard) while your method can only fix a few builds.
38
47
### Windows 10/11
39
48
> [!IMPORTANT]
40
49
> Windows 10 builds are also subject to flight signing, which are code signatures that gets invalid after expiration date, thus preventing system from booting or to be used properly.
41
50
> Getting over this requires additional work (resigning all binaries and disabling integrity checks, or patching bootloader & ci.dll) which is not covered by this project.
42
51
- Works on pre-RTM, post-RTM ("insider") builds are untested but they likely are same as pre-RTM unless KASLR is enabled, which is not supported by this driver.
43
52
44
53
# Usage
45
-
1. Enable test-signing (disabling driver signature enforcement might also be necessary.)
46
-
2. Download the latest release and obtain "devcon" utility (available in WDK and also in some .cab files).
4. Allow the installition and wait for "Driver Installition Complete" message
49
-
5. If your system didn't crash so far, check expiration date from "winver", if it's not there that means that it worked.
50
-
6. If you want to/need to uninstall, execute `devcon remove Root\TimeDefuser` and reboot (or just delete the .sys file).
54
+
Since TimeDefuser 1.8.3, INF file is deprecated and the driver is instead installed as a service with `sc.exe`. A script for installing named `Installer.bat` will be bundled with subsequent releases.
55
+
- If your system didn't crash after installition, check expiration date from "winver". Absence of the expiration date means that driver has worked.
56
+
-**(x64 systems only)** Wait for several minutes, the system might crash after a few minutes of installition with a `0x109 CRITICAL_STRUCTURE_CORRUPTION` bugcheck. See notes about more info.
57
+
- If you need to remove driver, simply execute `sc delete TimeDefuser` and reboot.
51
58
52
59
# Testing and Bug Reporting
53
60
The driver can either work correctly, crash the system, fail or work but not enough to fully patch the currently working system.
0 commit comments