Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Windows API
  4. Installers and UAC "heuristics"

Installers and UAC "heuristics"

Scheduled Pinned Locked Moved Windows API
questionhelpannouncement
7 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    Kharfax
    wrote on last edited by
    #1

    Check this, I have a custom installer I made, it worked great in all win OSs, until Vista. With Vista, it works great with UAC turned off. If I turn on UAC, the heuristics detects that my program needs elevation, ok I understand that. Now, the big question is, what is the difference between my installer called pete.exe or caller instalar.exe? Well, If my installer is called "instalar" (install in spanish), it hangs up in the middle of the instalation, in different places, like getting an already installed component version, or creating a desktop shortcut. If my installer is called "pete", it works great, I dont see any problem. I dont know what to think... My installer isn't signed. Something is changing depending the .exe name. Anyone saw something like this? Should I use exe names Hax0r style to avoid this? my .exe should be called 1nst4l4r?

    M M 2 Replies Last reply
    0
    • K Kharfax

      Check this, I have a custom installer I made, it worked great in all win OSs, until Vista. With Vista, it works great with UAC turned off. If I turn on UAC, the heuristics detects that my program needs elevation, ok I understand that. Now, the big question is, what is the difference between my installer called pete.exe or caller instalar.exe? Well, If my installer is called "instalar" (install in spanish), it hangs up in the middle of the instalation, in different places, like getting an already installed component version, or creating a desktop shortcut. If my installer is called "pete", it works great, I dont see any problem. I dont know what to think... My installer isn't signed. Something is changing depending the .exe name. Anyone saw something like this? Should I use exe names Hax0r style to avoid this? my .exe should be called 1nst4l4r?

      M Offline
      M Offline
      Maximilien
      wrote on last edited by
      #2

      there was a thread not long ago about that; and it seems Vista tries to determine what kind of software is running according to its name. funny, no ?


      Maximilien Lincourt Your Head A Splode - Strong Bad

      K 1 Reply Last reply
      0
      • M Maximilien

        there was a thread not long ago about that; and it seems Vista tries to determine what kind of software is running according to its name. funny, no ?


        Maximilien Lincourt Your Head A Splode - Strong Bad

        K Offline
        K Offline
        Kharfax
        wrote on last edited by
        #3

        yeap, i knew about that, is used to support legacy installers... But the strange thing is that my installer works if the name is different from the "installer keywords" I dont understand...

        B 1 Reply Last reply
        0
        • K Kharfax

          Check this, I have a custom installer I made, it worked great in all win OSs, until Vista. With Vista, it works great with UAC turned off. If I turn on UAC, the heuristics detects that my program needs elevation, ok I understand that. Now, the big question is, what is the difference between my installer called pete.exe or caller instalar.exe? Well, If my installer is called "instalar" (install in spanish), it hangs up in the middle of the instalation, in different places, like getting an already installed component version, or creating a desktop shortcut. If my installer is called "pete", it works great, I dont see any problem. I dont know what to think... My installer isn't signed. Something is changing depending the .exe name. Anyone saw something like this? Should I use exe names Hax0r style to avoid this? my .exe should be called 1nst4l4r?

          M Offline
          M Offline
          Michael Dunn
          wrote on last edited by
          #4

          Add a UAC manifest to the EXE's resources and specify what level of privs it needs - since it's an installer, you'll probably use requireAdministrator.

          --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ Dunder-Mifflin, this is Pam.

          K 1 Reply Last reply
          0
          • K Kharfax

            yeap, i knew about that, is used to support legacy installers... But the strange thing is that my installer works if the name is different from the "installer keywords" I dont understand...

            B Offline
            B Offline
            bob16972
            wrote on last edited by
            #5

            If you run an exe without a manifest with a security section in it and UAC does not deem the exe an installer, it will leave virtualization turned on so any attempt to write to the Program Files directory or HKLM will be redirected to the logged in users profile instead. Kinda like a per user install versus a per machine but in a UAC twisted kinda way. Try logging in as someone else and see if the application shows up.

            K 1 Reply Last reply
            0
            • M Michael Dunn

              Add a UAC manifest to the EXE's resources and specify what level of privs it needs - since it's an installer, you'll probably use requireAdministrator.

              --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ Dunder-Mifflin, this is Pam.

              K Offline
              K Offline
              Kharfax
              wrote on last edited by
              #6

              Thanks, I added the manifest and now it seems to work fine. The UAC heuristics was detecting my app as an installer but I don't know why if my app had an "installer name" it failed. Some guy told me that the problem probably was originated by the compatibility heuristics that simulate an older Win version.

              1 Reply Last reply
              0
              • B bob16972

                If you run an exe without a manifest with a security section in it and UAC does not deem the exe an installer, it will leave virtualization turned on so any attempt to write to the Program Files directory or HKLM will be redirected to the logged in users profile instead. Kinda like a per user install versus a per machine but in a UAC twisted kinda way. Try logging in as someone else and see if the application shows up.

                K Offline
                K Offline
                Kharfax
                wrote on last edited by
                #7

                My app after beign elevated was running with vitualization turned off. I don't know the difference among a normal elevated app, an unsigned installer and a signed installer. Is pretty obvious there are differences, but people from MS dont want to explain them it seems.

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • World
                • Users
                • Groups