Jump to content

Aero Glass for Win8 RC4


bigmuscle

Recommended Posts


Thnx a lot for new RC! Works perfect.

Please tell me what is "symbols for DWM libraries". What this mean and for what it needed?

When MS changes DWM so much that requested memory address is not found, it will download two files from MS server which allows detecting of exact memory location need to hook. This ensure that DWM will still work when DWM changes without modifying AeroGlass.

BTW you didn't include the installer in this build (why?) and will the symbol files downloaded by the last RC work on the new one (seems working)?

I will not includd installer at all unless I found a proper way to load glass at Windows start-up. It is still too much dangerous to modify AppInit_DLLs registry so value so it should be done by advanced and not by automatic installer.

Download symbol files are dependent on DWM libraries and not on my code. When DWM changes, new symbols are automatically downloaded.

just had a black screen on a reboot - all i had done is install the update - not saying it was that but seems odd - will update again and see if its ok

Custom themes are off by default, so if you had custom theme applied your system can stuck on reboot.

Link to comment
Share on other sites

Sorry, but RC4 is not working for me.

My screen is just flashing on and off upon boot up.

This is a Lenovo P500 laptop connected to a monitor.

The laptop graphics are Intel HD 4000.

EDIT

Okay, thanks BM and Ryan19

Added new registry setting and now it's working fine.

I read the notes but didn't realize it was a requirement.

debug.7z

Edited by Dreamweaver01
Link to comment
Share on other sites

Sorry, but RC4 is not working for me.

My screen is just flashing on and off upon boot up.

This is a Lenovo P500 laptop connected to a monitor.

The laptop graphics are Intel HD 4000.

Reason:-

Custom themes are off by default, so if you had custom theme applied your system can stuck on reboot.

Link to comment
Share on other sites

Sorry, but RC4 is not working for me.

My screen is just flashing on and off upon boot up.

This is a Lenovo P500 laptop connected to a monitor.

The laptop graphics are Intel HD 4000.

Reason:-

Custom themes are off by default, so if you had custom theme applied your system can stuck on reboot.

Thanks Ryan19

I added new registry setting and now it's working fine.

I read the notes but didn't realize it was a requirement.

Link to comment
Share on other sites

Thnx a lot for new RC! Works perfect.

Please tell me what is "symbols for DWM libraries". What this mean and for what it needed?

When MS changes DWM so much that requested memory address is not found, it will download two files from MS server which allows detecting of exact memory location need to hook. This ensure that DWM will still work when DWM changes without modifying AeroGlass.

Thnx, now i understand. Good idea.

Link to comment
Share on other sites

Custom themes are off by default, so if you had custom theme applied your system can stuck on reboot.

had realised that after the event - but am still getting black startup screen

i uninstalled DWM using tweaker - changed to a standard theme and rebooted - black screen - what am i missing - sure its me but cannot see it

Link to comment
Share on other sites

it's what i said earlier... check HKEY_USERS\.DEFAULT registry branch. Invalid theme will be set there.

What theme must be in that registry path? I can't understand why the black screen appears sometimes. And question: when i power on computer 1st time a day windows always loading normal. Black screen appears only on reboot or power off and power on quickly. Why?

Edited by CKyHC
Link to comment
Share on other sites

I will not includd installer at all unless I found a proper way to load glass at Windows start-up. It is still too much dangerous to modify AppInit_DLLs registry so value so it should be done by advanced and not by automatic installer.

I don't know what you did in RC4, but my "crazy injector" now loads it correctly in almost 90% cases (Can symbols download attempt slow the process down just enough to be the reason for success? Or is there something else new?).

Tested on "vanilla" Win 8 x64, Build 9200, not activated, on VMWare Player, not connected to internet.

Even in the other 10(bad)% it still works(!), but ALSO opens a console window showing some "DBGHelp" about, yep, attempt to download symbols :)

Anyway, applause to you!!!

So, it can be injected into "suspended-on-startup" (or, ALMOST at startup, I'm still figuring out how to detect it's startup reliably and, more importantly, FAST enough) DWM, rather successfully now. Suffice it to say, WMI didn't help detecting DWM startup at all, it's a sluggish as hell a method, so process polling done in a very specific way works MUCH better. This is done by suspending WinLogon (so it won't "unlogon" you, or re-launch DWM when not expected), killing "old DWM instances", and then activating "DWM waiter" (based upon the special process-polling), and then, resuming WinLogon. The DWM Waiter then catches DWM on startup and suspends it, then DWMGlass.dll is injected and DWM is resumed. Problem is, the "waiter" part is still far from perfect, as mentioned above. I actually gave a thought to what Tihiy once mentioned - hooking WinLogon itself and altering DWM launch sequence, but haven't gone that far yet.

Edited by EvilAlex
Link to comment
Share on other sites

EvilAlex: nothing important changed. If loading works for you, it means that you just a won a race which is totally unpredictable. You can win 1000x and then it fails, you fail 1000x and win 10x, just a totally random.

I was also thinking about hooking WinLogin but I think it does not solve anything. Now you need to manage to hook DWM before it creates its internal objects. When you move to WinLogon, you need to hook it before it launches dwm.exe, so totally same problem. Or you can write system driver which is loaded during boot (before winlogon.exe) and hook CreateProcess but I think it is too much work for such a small thing. And I think it has no sense to bother with it now because it won't be needed in Win8.1 at all.

Link to comment
Share on other sites

EvilAlex: nothing important changed. If loading works for you, it means that you just a won a race which is totally unpredictable. You can win 1000x and then it fails, you fail 1000x and win 10x, just a totally random.

I was also thinking about hooking WinLogin but I think it does not solve anything. Now you need to manage to hook DWM before it creates its internal objects. When you move to WinLogon, you need to hook it before it launches dwm.exe, so totally same problem. Or you can write system driver which is loaded during boot (before winlogon.exe) and hook CreateProcess but I think it is too much work for such a small thing. And I think it has no sense to bother with it now because it won't be needed in Win8.1 at all.

It is unpredictable in a general sense, yes. So I will totally agree that this method isn't realiable, and we can't count on it, even if it can be improved. But statistically, since I'm trying it in the same fashion on the same system with almost the same current load, it can be seen rather clearly that, for some specific unknown reasons, certain versions of DLL manage to load better than the others: You can try to load one, and it fails\succeeds at it's "usual ratio", then, try another, without rebooting, and again you gain expected results. Doesn't seem to be "total" random. Unfortunately, though, you are correct about the nature of these "expected results". Unreliable and unpredictable.

A question about WinLogon hooking: Why do we need, theoretically, to load into it before it creates it's own resources? We don't need to reuse them, like DWM, just need to hook maybe a single function. I must be missing something. I haven't yet reverse engineered how it launches DWM, maybe this process can be repeated outside WinLogon at all, and then we don't need to bother. If we suspend WinLogon and then resume it, it won't relaunch DWM if it's already running. So basically, the idea is: Suspend WLogon, kill DWMs, launch DWM on our own in suspended mode (Launching a process in this state is doable, the root of the problem is exactly in the fact that the process needs to be launched by our app, and not by WLogon), inject it while it's "not even running" (started suspended), resume it, resume WLogon. Caveats are numerous, like I don't know if WinLogon stores it's DWM process Id's somewhere, this can be a problem, then how excatly it launches it, it's done under "funny users" like "DWM-1" or "DWM-2", for example, what the command line params are, e.t.c. Still needs research, I'm aware it can be a yet another dead end.

I had the driver approach crossing my mind too, but discarded it immediately for exactly the same reasons you stated.

Will Win8.1 version be "backwards compatible" with Win8? (Sounds like it can, at least theoretically, be.) If it will, then, yes, it's all a work for nothing. But if it won't, then it still has reason to continue. Yes, the Win 8.1 update is free for Win 8 users, e.t.c, but no guarantee everyone who wants DWMGlass will update. The release will go to the public at large, and thats "totally unpredictable" :)

Link to comment
Share on other sites

Hey guys, made a new all in one installer for the latest version, I have tested it a fair amount but as always, make a backup or system restore before making any changes to your OS, the installer comes with a complete uninstaller as well, all registries keys are added during installation and also removed when uninstalled, including color swatches, the installer can be used on x86 and x64 systems and all features are enabled by default, the installer also includes the modified simple version of AGTweaker and it will add a desktop shortcut as well as a context menu shortcut for AGTweaker.

Here are a few screen shots of the installer.

33kc7qv.jpg4rfep5.jpg2iw7bz7.jpg2hq84mx.jpg308h1cm.jpgv62h4g.jpg

u81g.jpg

Update 17/07/2013:

Change Log

1. Fixed installer to create correct Registry Value to bypass Theme sinature. (Old value was incorrct and not functioning)

2. Fixed installer to create correct Registry Value to enable Shader target optimization. (Old value was incorrct and not functioning)

3. Fixed uninstall for Custom Color Swatches, now deletes the Control Panel Key for Custom Color Swatches and not just the Swatches values. (Removing just the Swatches Values and not removing the keys left Window Color and Appearance options blank)

4. Removed install option for Public Symbol downloading from MS Servers (Is now enabled by default and can not be disabled)

5. Added new safety option to revert to Default Aero theme during uninstall to prevent the Black Screen bug if you are using Aero Glass to bypass the theme signature.

6. Installer now requires a log off after install instead of just restarting explorer.exe and DWM to ensure the glass effect is rendered correctly and Public symbols are downloaded if needed.

Please unistall the previouis version before updating.

Download the Aero Glass RC4 AIO Installer from Mediafire.

http://www.mediafire.com/download/hwb5k2tj9xp42rv/Aero_Glass_RC4_v0.95.exe

@ BigMuscle if this is not something you would like to have posted here please let me know and I will remove it.

Edited by MrGRiM
Link to comment
Share on other sites

* automatic symbols downloading for DWM libraries

Can this still be disabled via reg-key?

No, it cannot be. It is always enabled. The reason is that it does not make sense to be disabled. Normally symbols are not downloaded at all, the server is contacted only when your DWM is incompatible and if it is disabled, you would not get any glass at all.

A question about WinLogon hooking: Why do we need, theoretically, to load into it before it creates it's own resources? We don't need to reuse them, like DWM, just need to hook maybe a single function. I must be missing something. I haven't yet reverse engineered how it launches DWM, maybe this process can be repeated outside WinLogon at all, and then we don't need to bother. If we suspend WinLogon and then resume it, it won't relaunch DWM if it's already running. So basically, the idea is: Suspend WLogon, kill DWMs, launch DWM on our own in suspended mode (Launching a process in this state is doable, the root of the problem is exactly in the fact that the process needs to be launched by our app, and not by WLogon), inject it while it's "not even running" (started suspended), resume it, resume WLogon. Caveats are numerous, like I don't know if WinLogon stores it's DWM process Id's somewhere, this can be a problem, then how excatly it launches it, it's done under "funny users" like "DWM-1" or "DWM-2", for example, what the command line params are, e.t.c. Still needs research, I'm aware it can be a yet another dead end.

If you want to hook WinLogon, you must manage to hook e.g.CreateProcess before it launches dwm.exe process else you didn't get nothing. Yes, you can freeze winlogon and kill dwm.exe but it is totally wrong idea. Forcibly killing any process can end up in unexpected behaviour. If you launch dwm.exe on your own, you will also break the security context of your operating system. It will also break the nature of my utility - being native as much as possible - just because OS is designed to work in some way and you completely change its concept.

Will Win8.1 version be "backwards compatible" with Win8? (Sounds like it can, at least theoretically, be.) If it will, then, yes, it's all a work for nothing. But if it won't, then it still has reason to continue. Yes, the Win 8.1 update is free for Win 8 users, e.t.c, but no guarantee everyone who wants DWMGlass will update. The release will go to the public at large, and thats "totally unpredictable" :)

No, it won't be backward compatible because Win8.1 uses different kind of desktop rendering.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...