ALTaleX531 / TranslucentFlyouts

Translucent effect for most of the win32 flyouts
GNU Lesser General Public License v3.0
864 stars 26 forks source link

Does not seem to install or run, but no errors #90

Open e-t-l opened 10 months ago

e-t-l commented 10 months ago

I downloaded TF V3.0.0, unpacked the archive, and ran the installer bats as administrator. (Just to check, I manually opened an elevated CMD prompt and ran start rundll32.exe "C:\Tools\TranslucentFlyouts.V3.x64\TFModern64.dll",Main /install and /start. For good measure, I even rebooted then again manually ran start rundll32.exe "TFModern64.dll",Main /start (I did all the same steps with TFMain64.dll too), but there is no indication that it is running. I never see the console window for downloading symbols appear, and there are no visible changes to any flyouts. There is no "rundll32.exe" process active in Task Manager (I don't know if there should be or not).

I also tried all the steps from issue #44: I did all the above with antivirus disabled, and afterward I rebooted the PC; in Windows settings, Transparency Effects are already enabled, and the Registry entry HKLM\Microsoft\Windows\Dwm\ForceEffectMode does not exist. Just to check, I tried setting HKEY_CURRENT_USER\Software\TranslucentFlyouts\Menu\EnableCompatibilityMode to 1, but it made no difference.

I am running Windows 11 Enterprise x64, version 23H2, on a brand new Lenovo Legion 5i Pro (Gen 8).

Has anyone else had issues getting TF to work on Win 23H2?

ALTaleX531 commented 10 months ago

🤔Weird... What's your system build number?

e-t-l commented 10 months ago

What's your system build number?

22631.3085

ALTaleX531 commented 10 months ago

I have updated the attachement, please see if it solve your problem.

UnclWish commented 10 months ago

Windows 10 Pro 22H2 19045.3996. Immersive version installs and launchs without errors. Running launch_immersive.bat again says that service is already running. But no flayouts effects added.

ALTaleX531 commented 10 months ago

Windows 10 Pro 22H2 19045.3996. Immersive version installs and launchs without errors. Running launch_immersive.bat again says that service is already running. But no flayouts effects added.

@UnclWish It is currently intended for Windows 11, I will add support for Windows 10 in the official release.

e-t-l commented 10 months ago

I have updated the attachement, please see if it solve your problem

I did all the same steps with the updated versions. Running the BATs as admin results in exit code 0 for each of them (which I believe means no errors) yet nothing happens. Even after rebooting, I never see symbols downloading

ALTaleX531 commented 9 months ago

image Cannot reproduce!

e-t-l commented 9 months ago

Hm. After launching TF, is there anything else I should see on a system level to indicate if it's running or not, e.g. a process in task manager?

ALTaleX531 commented 9 months ago

You can find rundll32.exe in the task manager, or you can simply run the stop_win32.bat. If it is not running it will show a error message box to you.

powerdollkirby commented 9 months ago

same. i did step by step and doesn't seem to work (build 22631.3085)

e-t-l commented 9 months ago

@powerdoll Ok now that there's 2 of us, maybe we can figure out what we have in common about our devices.

One possible factor occurred to me that I haven't had time to check. Do you have any windows hardening settings in gpedit or Windows Security (for example, ASLR)? I'm wondering, If TF works by patching the active memory, whether a security policy like memory address layout randomization could interfere with that.

powerdollkirby commented 9 months ago

@powerdoll Ok now that there's 2 of us, maybe we can figure out what we have in common about our devices.

One possible factor occurred to me that I haven't had time to check. Do you have any windows hardening settings in gpedit or Windows Security (for example, ASLR)? I'm wondering, If TF works by patching the active memory, whether a security policy like memory address layout randomization could interfere with that.

nope, i actually have a fresh windows 11 install, just installed explorer blur mica, that's it

e-t-l commented 9 months ago

nope, i actually have a fresh windows 11 install, just installed explorer blur mica, that's it

That's good to know! That actually rules out a lot. What edition to Windows do you have - Home, Pro, Enterprise?

(Also I just realized I accidentally closed this issue with my last comment. Its definitely NOT complete.)

powerdollkirby commented 9 months ago

Pro yeah no worries, i dont know how ot make it work, i see like a mica effect inside the 7-zip program when right clicking but its not mica at all, it's weird, thats the only place it kinda "shows"

powerdollkirby commented 9 months ago

Recording 2024-02-07 160250 you cant really appreciate it here but it shows mica inside 7-zip, and white anywhere else

e-t-l commented 9 months ago

Interesting. I was able to install MicaForEveryone just fine, which means the issue is not with the in-memory patching, like I was originally afraid might he the case with ASLR. I am still brainstorming how else to troubleshoot TF.

e-t-l commented 9 months ago

@ALTaleX531 is there a debug version of TF so I could get some sort of output or logs of what it's doing?

ALTaleX531 commented 9 months ago

image This is a debug version and you can view the debug output via DbgView. Debug.zip

powerdollkirby commented 9 months ago

i'm a linux user now, not my problem anymore >:D

e-t-l commented 9 months ago

This is a debug version and you can view the debug output via DbgView.

Okay, this is the debug output I got:

[12556] [TranslucentFlyouts.Win32] Framework::Startup rejected. [serviceRunning: false, processIsRundll32: true, processIsTFC: false]
[12556] [TranslucentFlyouts.Win32] ::Main invoked, [buildNumber: 22631]

Those are the only two lines produced no matter if I run it with the /install, /start, or /stop flags. I do not see any rundll32 instance being created in Task Manager. Also, running /stop when TF isn't already running does not produce any error.

It almost seems like the flags are being ignored? I have no idea how that would happen or why. In your screenshot, you have highlighted a line that says Application::StartService, user has confirmed, ready to call Application... I never see anything like this. I only ever see the two lines I pasted above.

e-t-l commented 9 months ago

Interestingly, I tried running it in a Windows Sandbox. When I ran the debug version you shared in your last comment, I got an error messagebox saying There was a problem starting C:\Users\WDAGUtilityAccount\Desktop\TranslucentFlyouts_Debug\TFMain64.dll. The specified module could not be found. But, when I ran V3.x64_20240125_Updated in Windows Sandbox, it worked! It tried to start downloading symbols (couldn't complete it because the sandbox didn't have connectivity), it showed a popup that it completed successfully, and if I ran /launch on it again, it showed a popup that there was already a running instance. All behaving exactly as expected, but only in Windows Sandbox. When I do the exact same thing on my physical device (aka not in a sandbox), absolutely nothing happens. I'm out of ideas.

e-t-l commented 9 months ago

Hmm, I also just noticed that DWMBlurGlass doesn't work on my system (but it does work inside Windows Sandbox!). It says that it installs, but doesn't actually have any effect. And to my knowledge, it uses the same or similar transparency-modifying process as TF. On the other hand, MicaForEveryone works just fine for me. Weird.

@ALTaleX531 Could it have something to do with GPUs? The only other thing I can think of is that I have a Geforce RTX 4070 GPU. Do we know anything about discrete GPUs handling DWM differently?

ALTaleX531 commented 9 months ago

Since that's really a debug version, you'll need to install the appropriate VC runtime libraries in the sandbox, and here's a version that removes that dependency and contains more information. I don't think it has anything to do with the GPU at all, from the information you provided TF seems to be experiencing a crash, which could also be what DwmBlurGlass is experiencing as they both use the same code.

TechySC23 commented 8 months ago

Guys actually I had the same problem with V2.1.0 and had Windows 11 version 22635.3139. It just didn't work. I activated it and the mouse cursor was spinning and stopped. So I uninstalled it. This was about 1 1/2 months ago. Then just 2 weeks ago I installed 3.0.0 with the config GUI. And these are some reasons why it “maybe” wasn't working:

  1. Recently found OOShutup and “Accidentally” ran it. So perhaps??
  2. Just was a noob. I thought that Dropdown was context menu and menu is something else.
  3. Possibly something else? BTW @ALTaleX531 and @Maplespe I recently tried it to use EBM v2 with TF v3 and.. it worked perfectly and works beautifully. Maybe you should update your README. Also, using DWMBlurGlass works perfectly. You guys should host all the tools under one package/
ALTaleX531 commented 8 months ago

@e-t-l I think I've figured out why, because your cpu probably doesn't support the avx2 enhanced instruction set. I should be able to fix it this weekend. @TechySC23 The code is just too complex and combining them together would require a lot of work. Maybe I'll think about that later.

e-t-l commented 8 months ago

your cpu probably doesn't support the avx2 enhanced instruction set

I don't know what that it, but it seems unlikely that my CPU wouldn't support it. My pc is a brand new gaming PC with the latest-gen Intel i7 CPU. (And I had previously had TF running just fine on my 10-year-old budget-bin netbook! EDIT: I checked in HWinfo and my CPU supports AVX2)

But if you say you know how to fix it, then I'll trust that and eagerly await your update.

(FWIW, I have not yet had the opportunity to try out the version you shared in https://github.com/ALTaleX531/TranslucentFlyouts/issues/90#issuecomment-1950293337, but I've been trying to figure out if there's anything else weird about my system that would make TF not work. Can you confirm whether TF works normally on a Windows machine that has Virtualization-Based Security (VBS) enabled?

ALTaleX531 commented 8 months ago

@e-t-l Please check the latest version, theoretically TF is not affected by VBS.

TechySC23 commented 8 months ago

@e-t-l Please check the latest version, theoretically TF is not affected by VBS.

Even my CPU has VBS on still its working.

e-t-l commented 8 months ago

here's a version that removes that dependency and contains more information. I don't think it has anything to do with the GPU at all, from the information you provided TF seems to be experiencing a crash

Even with that updated debug version, the output is still:

[34088] [TranslucentFlyouts.Win32] Framework::Startup rejected. [serviceRunning: false, processIsRundll32: true, processIsTFC: false]
[34088] [TranslucentFlyouts.Win32] ::Main invoked, [buildNumber: 22631]

There is no other output.

@e-t-l Please check the latest version, theoretically TF is not affected by VBS.

I tried the latest version and, same as before, nothing happened when I ran the bat files on my host computer. And, same as before, when I ran it in Windows Sandbox, it did install and run successfully. I am really running out of ideas of why it would work in the Sandbox but not on the host PC. I have Avast Antivirus installed, but I have whitelisted all the files and folders for TF, and I have completely disabled Avast when I make these attempts.

Please reopen this issue @ALTaleX531, it unfortunately is still not solved.

ALTaleX531 commented 8 months ago

So if I'm not mistaken, the TF main service died suddenly, no specified function was called, no crash occurred as there was no indication that a crash dump file was generated, and the only possibility I can think of is that it was killed. I don't really know how to fix this.

ALTaleX531 commented 8 months ago

If you are a pro user, you can try running the launch command in windbg and see if anything unusual happens.

e-t-l commented 8 months ago

try running the launch command in windbg

Sorry, what do you mean by this? I've tried running all the batch file commands ("TFmain64.dll",Main /install and "TFmain64.dll",Main /start) while looking at WinDBG, and it only ever shows those two lines of output I've quoted in my previous messages.

If you are a pro user

I'm running Windows 11 Enterprise, if that's what you mean

ALTaleX531 commented 8 months ago

I mean, what I'm going to present to you is geared towards advanced users. This is because it requires a debugging tool called WinDBG, which is available in the Microsoft Store. It is the best method I can think of for troubleshooting errors.

image

Click on the File tab and fill in those edit boxes according to the image. Be sure to replace the path to TFMain64.dll in Arguments with the location of your TFMain64.dll. Next click the Debug button and you should get the scene shown in the image below.

image

Next, press F5 and normally you will get the following screen.

image

This image shows that TF is running properly, if not you should get some error messages, at the moment you can click on the Stack page at the bottom for more useful information. Pressing Shift+F5 will stop debugging and then terminate TF.

If you are unable to do the actions described above, please let me know if you have any other malware blockers or other possible software installed. I suspect that some kind of third party software is forcing TF to abort, but I don't know what it is...

e-t-l commented 8 months ago

Oh ok, got it. Sorry I had confused the names WinDBG and DbgView. Yes, I am a power user and I do have WinDBG but haven't tried it with TF yet. I'll do that and report back

ALTaleX531 commented 8 months ago

It’s been quite a while. Any progress?

ALTaleX531 commented 8 months ago

image If you have UMCI enabled, then TF won't work because Rundll32 doesn't load it. Not sure if it helps you or not.

e-t-l commented 8 months ago

That's a good thought! I don't think I have UMCI enabled though. And no, I've been busy with work for the last week and haven't had a chance to debug it with WinDBG.

e-t-l commented 8 months ago

By the way, what exactly does the /install command do? I want to see if there's some part of the installation that's being blocked; it's possible I can set up the installation manually...

ALTaleX531 commented 8 months ago

The /install command just makes itself start automatically after booting, if /start doesn't work then TF won't work either.

e-t-l commented 7 months ago

@ALTaleX531 I have made progress. I haven't figured out the root issue, but I've discovered that I can run TF from the NT Authority\SYSTEM account by using PSEXEC.

The installation/creation of a scheduled task doesn't seem to work from SYSTEM, though, so I'm figuring out the best way to do that manually. (Creating a scheduled task that runs as the SYSTEM user also doesn't appear to work, so I have to create it with admin privileges then call psexec.exe and pass along the start command)

ALTaleX531 commented 7 months ago

Wait, the account you're currently using isn't an administrator account? Have you made any special changes to your computer?

e-t-l commented 7 months ago

No, I am the Administrator account. In other words, I am a user account in the Administrators group. What I did is use PSEXEC (which requires Admin elevation to run anyway) in order to run commands from the NT Authority\SYSTEM userspace.

ALTaleX531 commented 7 months ago

I understand what you're saying, the reason I'm asking is that all of TF's operations can be done with administrator privileges, which suggests that you may have made special changes to the PC or that TF's processes have been killed.

e-t-l commented 7 months ago

which suggests that you may have made special changes to the PC or that TF's processes have been killed

I agree, it's very likely I made some change when originally setting up my PC that is causing Rundll32.exe to be killed. I still intend to investigate this further (I've been too busy with work recently to run TF with WinDBG). In the meantime, I have established a workaround, in case anyone else encounters a similar issue to me:

  1. Install the Microsoft Sysinternals Suite
  2. To check if this solution works for you, open an elevated CMD prompt and run:
    "%LocalAppData%\Microsoft\WindowsApps\PsExec.exe" -s -i Rundll32 "C:\path\to\TranslucentFlyouts.Win32.V3.x64\TFMain64.dll",Main /start
  3. Assuming Step 2 successfully runs TF, create a batch file "LaunchTF.cmd" with the following contents:
    taskkill /f /im "psexec.exe" >nul
    start Rundll32 "C:\path\to\TranslucentFlyouts.Win32.V3.x64\TFMain64.dll",Main /start
    start Rundll32 "C:\path\to\TranslucentFlyouts.Win32.V3.x86.optional\TFMain32.dll",Main /start
  4. Create a Scheduled Task to run.... "only when user is logged on," "with highest privileges", with the Trigger "at log on," and the Action "Start a program" (Program/script: "%LocalAppdata%\Microsoft\WindowsApps\PsExec.exe", Arguments: -i -s cmd /c "C:\path\to\LaunchTF.cmd"), with all Conditions unchecked, and Settings "stop the task if it runs longer than 15 seconds."