|
| 1 | +# Uptime Faker |
| 2 | +Generic Windows library designed to help detecting issues related to high PC uptime. |
| 3 | + |
| 4 | +## Reason for creating this plugin |
| 5 | +The most accurate timers in Windows all count time from the time Windows has started. |
| 6 | +Historically, these values often were relatively small, as people usually shut down their PC at night, |
| 7 | +and therefore uptime stayed low. However, with the introduction of Fast Startup in Windows 8, |
| 8 | +uptime stopped resetting after shutting down the PC (since it's now effectively a partial hibernation). |
| 9 | +This led to uptimes inflating noticeably for most people, as with Fast Startup enabled it resets **only** on a full PC reboot. |
| 10 | + |
| 11 | +Turns out, older software often cannot handle high uptimes. |
| 12 | +Much to my surprise, Application Verifier did not have any options to help detecting such issues by faking high uptime, |
| 13 | +I decided to create this plugin. |
| 14 | + |
| 15 | +## Usage |
| 16 | +This plugin is a Detours plugin. Therefore, it can be injected into the process with |
| 17 | +[DetourCreateProcessWithDlls](https://github.com/Microsoft/Detours/wiki/DetourCreateProcessWithDlls) |
| 18 | +or by any other means. |
| 19 | +It is also possible to inject UptimeFaker by using [Ultimate ASI Loader](https://github.com/ThirteenAG/Ultimate-ASI-Loader/releases), |
| 20 | +but file extension needs to be renamed to ASI first. |
| 21 | + |
| 22 | +Hooked WinAPI functions and the amount of uptime added can be configured with a provided `UptimeFaker.ini` file. |
| 23 | + |
| 24 | +## Supported functions |
| 25 | +* From **kernel32.dll**: |
| 26 | + * QueryPerformanceCounter |
| 27 | + * GetTickCount |
| 28 | + * GetTickCount64 |
| 29 | +* From **winmm.dll**: |
| 30 | + * timeGetTime |
| 31 | + * timeGetSystemTime |
| 32 | + |
| 33 | +## Third party dependencies |
| 34 | +This project uses [Detours](https://github.com/Microsoft/Detours) to hook into WinAPI time functions. |
0 commit comments