Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won

  • Donations

    0.00 USD 
  • Country


Everything posted by win32

  1. So XP x64 doesn't have the global variables that store the major/minor versions after all (WRK does). In that event, you should look for MmCreatePeb or a similarly named function; this will provide the values that are fed to user mode version functions. You can also modify ntdll's RtlGetVersion or "intercept" kernel32's GetVersionExW.
  2. Look in ntos' RtlGetVersion. It's either hardcoded in there (Vista+) or it references the global variables that store the major and minor versions (XP x64, I'm almost certain).
  3. Did you update to the latest release of Supermium?
  4. I just installed 2020-01 and will be able to test ASAP. I'm really surprised that it would fare worse with a higher update level, considering it's working good on Windows Vista (sandbox included!) and 8.
  5. I had originally tested with a Windows 7 install with a low update level, but I have received complaints about it not working with ESU updates. Do you have those? For that reason I will also start testing (and debugging) with ESU updates.
  6. It should work on regular Windows 7 with SP1 (it always worked in my VM with nothing but SP1, but some users complained about it not loading because of missing delay-load module; my second release should solve that). Vista needs the extended kernel however.
  7. Here is the future of Chromium on Windows 7: https://github.com/win32ss/supermium I have been closely tracking the many changes made to Chromium since November 2022, made with the intent of dropping support for Windows 7 and 8.x. As of version 111, it became very difficult to keep the newest versions running on Vista with the extended kernel; shared memory allocation changes made it impossible to do so as subtle changes to the API (which were done in kernel mode) prevented stable operation of the browsers. So I decided to build my own Chromium. I discovered that a further change was made to the shared memory allocation which broke it even further; the successor to mojo, IPCZ, was forced on by default. It only works properly with Windows 8.1+'s shared memory API. I disabled IPCZ for pre-8.1 and this made the sandbox work again on Vista and 7. Perhaps I will see exactly why IPCZ is broken (from the Windows API level) and try to fix it for the next release. The only win32 API link I can find is CreateFileMappingW, which I need to test with an IPCZ-enabled build on both 8 and 8.1 to see what makes it fail.
  8. After some time has passed and multiple launch attempts have been made, it does launch, but this is not acceptable either. I'm trying to find out why it crashes at first.
  9. I checked again, and it seems that it's due to an issue that is specific to my GPU where it takes several minutes to initialize the OpenGL user mode driver. I asked for confirmation of this issue from other users, but no one else got it. But I do believe it may be related to the extended kernel, so I will fix it.
  10. On Windows Vista, CUDA must be disabled in the GPU driver's control panel to run Vegas Pro 15. If not, it gets hung up on a version check. I will look into it.
  11. It is possibly related to the bug where it cannot access audio devices. I have solved it along with the general audio issues, but now need to solve another issue with .NET applications.
  12. I haven't tried it. In fact I am jaded about Acrobat (Reader) DC because it always sends Unicode garbage to the printer on some relatives' 8.1 machines, while all other PDF readers send the actual content to the printer. Maybe I will try later in a VM.
  13. A wider assortment of 32 bit applications run, including up to Chromium ~107 and Electron applications such as Spotify (Discord's updater is buggy, apparently it's reliant on IE). Firefox goes up into the 90s. Chromium 110 x64 works. Chromium 111 x64 may work, with --no-sandbox and ChromiumFix=1 set in a osver.ini override for the application. OBS Studio 29 works, Calibre is fixed and PCSX2 1.7.3195 QT6 works, but later versions have issues. And Premiere Pro 2019 working now, which I did not expect. There are two known issues; Chromium's access to audio devices is broken. The cause was discovered and it has been fixed, but I am waiting on a fix for the second issue to include it in an update. There is an issue with userenv.dll which breaks audio on various systems. As the updates to userenv.dll are only needed for Chromium 110+, you can temporarily replace it with the original version to restore sound if it has been lost.
  14. So the AeroGlass for Win8+ would violate the EULA, as the restriction or limitation in this case would be the inability to display Vista/7-style glass. Also there was undoubtedly some disassembly and reverse engineering of internal DWM functions to make it work. And I think this goes for Stardock's assortment of desktop enhancement products as well, but they may have the resources to perform clean-room RE. This also goes for products that may have also violated EULA in this way, such as VMware (which reimplements some kernel mode functions for systems lacking them) and Chromium (which uses undocumented classes of some Native API functions). But these EULA terms are often superseded by exemptions in copyright law. In Canada, we have section 30.6 in the Copyright Act where: (i) would cover the additions to the Vista kernel that make newer drivers run, such as NVIDIA 398.11. Perhaps adding support for newer user mode software also plays a role in "compatibility". Adding support for NVIDIA 398.11 made Windows Vista compatible with a system with a GTX 1080 Ti, then the extended kernel also made new browsers and games compatible; thus, it is now fully compatible with the particular computer, whereas it was not when it could not run the software and device drivers. (ii) would be technically satisfied if the process of installing the extended kernel constituted the adaption or modification of the software, to create the reproduction (Vista with extended kernel installed). I believe this is also valid. I expect most of the world to have similar exemptions, including the EU where MSFN is based. An activation bypass would not usually be essential for compatibility, unless the activation procedure itself made it incompatible. This is not the case with any form of Microsoft Windows.
  15. I had to build my own api-ms-win-core-delayload-l1-1-0.dll and api-ms-win-core-delayload-l1-1-1.dll. I also had to make a patch to prevent it from continuously polling a non-existent ALPC port. I may also have to write a bcp47mm.dll to go along with it, because the DLL isn't working for much other than Chromium due to a null function pointer somewhere. The breakage point is between 5547 and 5555 as a result.
  16. With the Vista extended kernel, I have managed to get up to 111.0.5520 working with sandbox, and up to about 111.0.5550 without sandbox. However there is some problem with shared memory brokering that has broken it in both cases. Couldn't map an API change to it yet, as this code is well abstracted from the win32 API.
  17. This function was actually introduced in Windows 10. And WinHTTP functions are also needed for 112. I think most if not all of those were added in Windows 8.
  18. This video is wrong. If it were the Longhorn kernel booting up, you would see the Longhorn logo appear instead of the XP one, as the bitmaps are stored in ntoskrnl. Also, other kernel mode system components would be incompatible. NTDLL would be incompatible due to a change in syscalls between 2600.5512 and 4074. XP still boots at all, because it does not actually boot from a kernel named ntoskrnl.exe; in this case, the user also has a file named ntkrnlpa.exe in their system32 folder. This is a variant of ntoskrnl for single-processor systems that support PAE. The user would have needed to change boot.ini to boot from ntoskrnl to actually try using this kernel. And it would probably fail early on due to incompatibilities with the HAL and the like. But I think you could get a DWM-type experience with XPDM if someone did a lot of hooking work to capture each window, seize the borders and captions, create bitmaps of window contents and "play" around with them to make animations, etc.
  19. IE is no longer useful for web browsing. Old intranet stuff would likely not even benefit from IE10/11. But IE10/11 do have some limited uses in non-browsing situations; the license authentication for Autodesk products may still use it (but you can spoof IE10 in Group Policy and run it anyway), and the installer for Adobe CC products has used IE since 2015 or 17. Even the authentication component of Chromium Edge requires IE11. But I suspect these applications will have moved on from IE once I have implemented all the "black box" functions and "black box" function flags to existing functions that would make these newer browsers or at least rendering engines work. Also, I think it's hypocritical of Adobe to still depend on IE when they made such a big fuss over discontinuing their Flash players and timebombing the final versions.
  20. Most of my precious time has been devoted to the Chromium issue, which is continuously unfolding as they gradually remove legacy codepaths. The job object server is nearly functional (right now it isn't, but Chromium seems to be OK with it, in --no-sandbox at least). Then I need to add some things to NtQueryInformationProcess and that should get Chromium 111 100% functional. Some more functions will need to be added for Chromium 112.
  21. Version (as written in the properties of the exe) from 2012. It is listed as an option under "rebuilder".
  22. That would be the PE checksum. Tools like CFF explorer can set it automatically, but in this driver it is located at offset 170 and is this: 7B 1D 09 01 01 00 E0 01 00 00 04 00 00 00 00 00 This would be changed to: E1 69 09 01 01 00 E0 01 00 00 04 00 00 00 00 00
  23. Find this line: 84 C0 74 0A B8 BB 00 00 C0 E9 B9 18 00 00 44 38 and change it to EB 0C 74 0A B8 BB 00 00 C0 E9 B9 18 00 00 44 38
  24. https://github.com/win32ss/win32-api-reversals But this is not complete. There are many functions I implemented by copying over blocks of hex codes from newer DLLs, because I did not know C well at the time. There are some other functions that are too messy for me to put up ATM. Here is the installer source code (needs to be updated to support copying to places other than System32/SysWOW64, installing drivers, and adding a GUI): https://github.com/win32ss/nt6-unofficial-update-installer-engine And this tool builds a list of export pragma directives for a wrapper. It supports PE32, PE32+, and both named and ordinal-only exports: https://github.com/win32ss/export_pragma_builder
  25. 2. Try GetProcessIoCounters. 3. It is hard to find a suitable one for K32GetModuleInformation, maybe try FindFirstStreamW. As for K32GetProcessMemoryInfo, I meant to say GetEnvironmentVariableA. It should fit in there.

  • Create New...