Hey all,
I know I have been absent for a bit now, but I have done some work on the program.
I have fixed numerous issues with the program, and started building the back-end that actually does the work. I have bootres.dll modification working in the new program (works for 32 and 64-bit) (I made a bunch of internal architecture changes so it wasn't just copy-and-paste). I have winload.exe modifications partially working for almost everything (32-bit only). Most of the remaining work will be with bootmgr (which is the same for 32-bit and 64-bit).
@marcusj
the tooltip issue you mention is apparently a bug with the built-in Windows tooltips. It seems to happen if the tooltip first shows while being changed rapidly. At that point it gets stuck. In the first alpha I may not have a solution, but in a future version I will probably do something like whenever the mouse leaves a certain area then to just completely kill the tooltip (it will re-make itself on its own later).
@marcusj
I have already investigated the special hidden partition and I believe that it is a WinRE partition. It stores the actual backup files for use by WinRE, along with some WinRE booting stuff. I know there is the WinRE.wim but I believe these are used as redundant systems.
@marcusj
EFI is in the plans for one of the betas. It should just be finding the strings to replace. Here is the planned release schedule:
- Alpha 9: end of this week, support for 32-bit without testsigning and most modifications available
- Alpha 10 and beyond: the following week, fixing major issues with Alpha 9 and adding 64-bit support
- 0.1 beta: the week after, most problems fixed and a few more modifications available, positive that 32-bit and 64-bit work the vast majority of the time, and add command-line support
- 0.2 beta through 1.0: adding more features as needed, bug fixes, and adding EFI support
@joakim
You bring up a very serious issue. I have not tested this, but I thought all I would need was:
80 7D 0B 00 74 04 33 F6 EB 03 6A 30 5E > 80 7D 0B 00 74 04 33 F6 EB 03 6A 00 5E
within bootmgr.exe. I probably should test it... My theory rests on a few points:
- winload.exe apparently does not check itself since it works after being modified and only having testsigning enabled for {bootmgr} and not {default}
- the above code turns off code verification for most files loaded by bootmgr.exe, the same thing that turning testsigning on does
- the winload.exe passes off execution to the ntoskrnl kernel (they are both technically kernels), they don't really ever co-exist (you can see this by debugging the boot up process), and patch-guarding is a feature of the ntoskrnl kernel to keep it (the ntoskrnl kernel and kernel-space memory) from being modified, so patch-guarding should be irrelevant
So I thought that the modification you listed for bootmgr would prevent checking of bootmgr.exe, the above trick should prevent checking of winload.exe, and the other (actually tested) modifications prevent checking of bootres.dll, bootresdl.dll.mui, and winload.exe.mui. All of these are boot files are never checked while the real kernel is active.