Signed and RequireAdministrator manifested executable being run from temp folder?

Posted by Ian Boyd on Stack Overflow See other posts from Stack Overflow or by Ian Boyd
Published on 2010-05-13T13:48:25Z Indexed on 2010/05/13 13:54 UTC
Read the original article Hit count: 275

Filed under:
|
|
|

i manifested my executable as require administrator:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 

    <!-- Disable Windows Vista UAC compatability heuristics -->
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="requireAdministrator"/>
            </requestedPrivileges>
        </security>
    </trustInfo> 
</assembly>

And then i digitally signed it.

But then when i run the executable i noticed something odd: the name of the executable on the Consent dialog changed from PingWarning.exe to pinxxxx.tmp; as though a temp copy was made, and that is being run:

alt text

i dug out Process Montior, to see if anyone is creating a *.tmp file when i launch my executable, and there is:

alt text

The Application Information service inside this particular svchost container is intentionally copying my executable to the Windows temp folder, and asking for user "Consent" from there; giving an invalid filename.

Once consent has been granted, the executable is run from its original location: link text

The file is not copied to the temp folder if i do not digitally sign it:

alt text


So my problem is the invalid filename appearing on the consent dialog when i digitally sign my executable which has been manifested as requireAdministrator.

What do?

© Stack Overflow or respective owner

Related posts about Windows

Related posts about appcompat