Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won

  • Donations

  • Country


vxiiduu last won the day on March 12

vxiiduu had the most liked content!


About vxiiduu

Profile Information

  • OS
    Windows 7 x64

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

vxiiduu's Achievements



  1. Mypal68 works great on XP. Even JS bloatware sites like discord, youtube and twitch all work. There are very few useful sites that don't work on Mypal68. Unfortunately, it doesn't work on Windows2000 even with extended kernel, but what can you expect. Many thanks to the author feodor2.
  2. I doubt they really care that much, based on the fact that Aero blur is totally broken on Firefox Win7 and it looks like garbage. I guess it will be good for Classic theme users.
  3. Edge is basically Chrome with a different UI. It doesn't do anything special with regards to integrating with the OS (on windows 7 - windows 10 and 11 is a whole different story). If you prefer the UI, then install it; otherwise just stick with whatever you are using now.
  4. Works fine for me. I used Resource Hacker, changed all instances of "MS Shell Dlg" to "Comic Sans MS" (there are 17 dialogs you need to do this for), compiled all the resource scripts (Play button on the toolbar in RH) and then saved the files on the desktop before copying them to the MUI folder. I don't think you can change the font of the menus or status bar. But everything else can be changed. Probably you are either not correctly saving the MUI file or not putting it in the right place.
  5. You just edited the PE import table? With like CFF explorer or something? That isn't a sustainable solution and it won't work for many functions. Which app are you trying to get running?
  6. For a quick and dirty solution to GetDpiForMonitor you can just set *dpiX and *dpiY both to 96, and return S_OK. Or, if you feel like doing it "properly" there are GDI functions you can use to get the real DPI for the system, which you can use instead. As for SetProcessDpiAwareness, there's SetProcessDPIAware on Windows 7 - or you can just return a success code and do nothing. These DPI functions really don't matter too much if you have a normal (96 dpi or thereabouts) screen.
  7. The USB itself will almost certainly work on Windows 7 even if they don't list support. Maybe some random bundled crapware won't work, but no one uses that stuff anyway.
  8. Install ThrottleStop and see if you can fiddle with C-States/EIST or whatever they call it these days. Some sort of CPU power saving options. Those settings may be in the BIOS as well. I remember that with my other CPU (which was a 3rd gen, ivy bridge, so maybe not that relevant) if I disabled all the power saving options the idle power would be like 50W. Also, I notice that on Win7 the CPU voltage is much higher, which also points to a power saving option not being set when it should. If the BIOS settings don't help, give Throttlestop a try, it really works for tuning your CPU power consumption.
  9. Whoops, I forgot to include the MUI file. I put it in the repo now, just download the whole repo (Code->Download ZIP) and run snippingtool.exe and it should work.
  10. Yes, if you are going to make the EXE yourself, the original source EXE must be from Windows 10 1507. 1809, for instance, doesn't work because they changed the snipping tool to include some annoying UWP banner ad (which you don't want anyway). If you want a pre-made EXE it's available on my github under the SnippingToolEx repo. Obviously MS doesn't care enough to take it down.
  11. For anyone who wants to play it, someone made a mod to allow Elden Ring (which uses DX12) to run on Windows 7. I've tested it and it sort of works fine, but has very bad performance at least on my computer. https://www.nexusmods.com/eldenring/mods/12
  12. Yes, it is definitely possible and probably quite easy. But I won't try to do that at the moment because I am working on a Windows 7 "extended kernel" project which will allow python, onedrive and other incompatible products to run without having to download and copy DLLs around like the previous "compatibility pack" approach I was using, which becomes unmaintainable when working on supporting many applications at once.
  13. Yeah, I've gotten this one working as well. This time I've used a better solution which should work with many future versions of the Skydrive installer, so that I don't have to keep modifying the binary with hex editor. Download the Zip file attached to this post and read Instructions.txt which is easier to follow than the hex editing solution I described in my previous post. You are welcome to contact me through pm or discord or whatever if you want a better explanation. The methods I used for figuring out which bytes to edit are too complicated to fully explain here, but essentially you look at what APIs the program is calling. I use a tool called "API Monitor". There is an API called VerifyVersionInfoW which skydrive installer calls in order to... verify that the OS is windows 10 or higher. Then I set a breakpoint on that function, and then open WinDbg (a debugger) to attach to the Skydrive installer process, find out where exactly it is checking the return value (a BOOL) of VerifyVersionInfoW, and patch out the check. Doing this requires knowledge of assembly language. You can run the hex strings I gave through a disassembler to find out the difference. For the first one: 84 C0 to 84 DB, this changes the instruction from TEST AL, AL to TEST BL, BL. Test <reg>, <same reg> means to check whether a CPU register is zero. In this case, EAX contains a BOOL (either 1 or 0), the return value of the VerifyVersionInfoW API call, which can be accessed through the AL pseudo-register. By changing the function to check for BL instead, the program is fooled, because using the debugger I could see that just by chance, at that point in the program execution, BL contains a non-zero value. The second changed hex string is to remove the cryptographic signature check on the installer, using a similar methodology. This needs to be done because once you modify the installer it will know that it wasn't a "legit" one from Microsoft. However, with the new method, this doesn't have to be done since the original installer file is not modified. Anyway without further ado, here are the instructions (same as Instructions.txt inside the zip file) for the new, easier method which will work for multiple versions of skydrive. If you are downloading the x64 version of OneDrive installer, you need to use the 64-bit compatibility pack which is also attached to this post. If you get error 0xc000007b when trying to install, you are using the wrong version of the compatibility pack. OneDrive Win7 Compatibility Pack Refer to Screenshot.png for proof that it works. 1. Double-click on "Enable DLL Redirection.reg" and add the registry entries. 2. RESTART YOUR COMPUTER, this step is mandatory. Won't work unless you restart after adding the registry entries. 3. Download the latest (or your preferred version) of OneDrive, which will be called OneDriveSetup.exe 4. Place the downloaded file in the folder of the compatibility pack (next to the empty file, OneDriveSetup.exe.local) 5. Double-click to run "CopyKernel33.bat", which copies C:\Windows\SysWOW64\kernel32.dll into the pack folder. 6. Run OneDrive setup to install it. In order to uninstall, you can use the Control Panel add and remove programs screen, and the uninstaller will work fine. You are free to delete the compatibility pack and the original installer after installing, however, you will need the compatibility pack to install new versions. Auto-update probably won't work. And here's a screenshot: OneDrive_Win7CompatPack.zip OneDrive_Win7CompatPack_x64.zip
  14. Yes, this appears to be correct. Here are instructions to patch the latest (as of writing) onedrive installer so that it will install and work on Windows 7. OneDrive installer version 21.245.1128.0002, download link: https://oneclient.sfx.ms/Win/Prod/21.245.1128.0002/OneDriveSetup.exe 1. Open OneDriveSetup.exe in HxD or any other hex editor 2. Ctrl+F and search for hex string "84 C0 75 11 C7" 3. Change "84 C0 75 11 C7" at the beginning to "84 DB 75 11 C7" 4. Ctrl+F and search for hex string "8B F0 89 B5 30" 5. Change "8B F0 89 B5 30" to "31 F6 89 B5 30" 6. Save and exit 7. Run installer and it will work. I don't have a microsoft onedrive account and I'm not interested in making one, so you'll have to test by yourself to see if it actually works. Honestly, I don't understand why one would install windows 7 and then add modern MS garbage on top of it, but at least it was an interesting technical exercise to get the installer running. I don't know whether the auto update will f*k everything up when it runs, so do this at your own risk yada yada. Uninstalling the app from the control panel does appear to work fine. Known Issues: The taskbar icon of OneDrive is blank. You have to hover over the blank space to find where the icon is.
  15. How are you patching kernelbase.dll? I have a virtual machine with a proxied user32.dll (i.e. user32.dll is written by me, which exports my added functions, and then proxies all original functions to "user33.dll" which is the original user32.dll). However, when I try to proxy kernelbase.dll, I get a bluescreen. STOP: c0000142 {DLL Initialization Failed} Initialization of the dynamic link library winsrv failed. The process is terminating abnormally. Inspecting winsrv.dll, we can see that it imports kernel32.dll, which in turn imports kernelbase.dll. The original Kernelbase.dll itself only imports ntdll.dll. However, my patched kernelbase.dll imports kernel32.dll due to the Microsoft visual C runtime (MSVCR100.DLL), which is a BIG problem since kernel32.dll depends on kernelbase.dll (a cyclic dependency). In order to solve this problem, I statically linked the Microsoft visual C runtime into my kernelbase.dll, resulting in only a kernel32.dll import (no msvcr100.dll import) But this still requires kernel32.dll which is the big problem. So then, I fiddled with more compiler and linker settings in order to remove the kernel32 dependency as well - as pictured. Then I went into my virtual machine and took ownership of kernelbase.dll and renamed it to krnlbase33.dll, and copied my kernelbase.dll to replace it. After rebooting, the system works. Note, that I haven't added any functions to kernelbase.dll, so I can't help you with your functions (unless you provide your source code). When you add your functions, keep in mind that you can NOT call any C runtime functions like printf, strlen, etc. You have to write your own implementations of those functions (which is easy). You also cannot call ANY function in ANY library that directly or indirectly depends on kernel32.dll. In practice, that means you can basically only call functions in ntdll.dll and the "original" kernelbase.dll (krnlbase33.dll in my example) - which is quite a lot of useful functions, actually. Note that "original" kernelbase.dll contains lstrcmp, lstrcmpi, lstrcpyn, and lstrlen in case you find those useful. Hope that was helpful, ask me if you have any further questions.

  • Create New...