Using GoLang 1.7.4, I was building a binary for my application with the target being windows/amd64, This binary built fine and when ran, did not cause a UAC prompt to appear for privilege escalation.
I switched to building the binary for windows/386, however when the binary is built it now requires privilege escalation, to make it even stranger, if I build the binary for windows/386 using a different name, it does not require escalated privileges to run, however as soon as I rename the binary to the name it is usually built as ( rename is done in Windows Explorer) , it suddenly requires escalated privileges again.
All this was being done on a Windows 10 64 bit machine, any ideas to what exactly is going on?
Turns out Windows automatically requires elevated privileges for apps depending on file name. It checks file names to see if there an installer, so files with names such as "Setup" or "Update" will be required to have elevated privledges on a 32 bit application.