Hey, long time no post. My laptop was broke for the last week, and I have been busy.
Anyways, I have a few comments on things said here. I am fairly certain winload.exe does integrity checks. At least with the RC versions of Windows 7 it was the only thing that did the integrity checks. It even did the check on itself. Now with a retail version maybe bootmgr is doing it, or maybe now they are both doing it. I know that the methods for disabling winload.exe's integrity checks no longer works in retail versions.
About the certificate signing. It is easily amenable to a GUI with some minor exceptions.
First, given the tools marcusj posted, you can do most of the signing process automated. You would need 3 pieces of information: a dummy name, a name for the certificate file, and a password. Also, many of these "command line tools" use dialog boxes for the password entries. You will need to use the SendInput function (part of the Win API) to simulate typing into them.
I have re-worked the self-signing commands to make them more straight-forward hopefully, and amendable to automation.
To Make a Self-Signing Certificate Authority (only need to do this once, and I recommend only doing it once, otherwise you'll get annoyed later on)
Note: Maybe the program can save some registry values to know it has already made a self-signing certificate authority and store where it saves the pvk and cer files
makecert -r -n "CN=Dummy Name" -pe -ss CA -sr LocalMachine -a sha1 -sky signature -sv NameCA.pvk NameCA.cer
(type: password, tab, password, enter, password, enter)
certutil -f -addstore Root Name.cer
To Make a Self-Signing Certificate (only need to do this once, but it doesn't hurt to do it more than once)
Note: You can delete the NameCA.cer, NameCA.pvk, Name.pvk, and Name.cer after this step as long as you save the Name.pfx file. That file is all you need to sign unlimited documents after this step.
makecert -pe -n "CN=Dummy Name" -a sha1 -ic NameCA.cer -iv NameCA.pvk -sv Name.pvk Name.cer
(type: password, tab, password, enter, password, enter, password, enter)
pvk2pfx -pvk Name.pvk -pi PASSWORD -spc Name.cer -pfx Name.pfx -f
Sign Program (needs to be done every time the program changes)
signtool sign /v /f Name.pfx /p PASSWORD /t
http://timestamp.verisign.com/scripts/timestamp.dll PROGRAM.EXE
Install Certificate
Note: This is only necessary on other computers that plan to use programs signed with your certificate. If you do this all on one computer, you don't need this. Also, I haven't bothered to find an automated way to do this (unless you saved NameCA.cer).
See the post I made earlier:
http://www.sevenforums.com/customization/11930-change-boot-logo-screen-10.html#post877293
So if you make a program (I may make a program this weekend) it should probably ask you to either pick a certificate PFX that you already made or make a new one. If you are using a new one, you ask for a name, file name, a password, and a program to sign. If it's reusing another PFX you just need the password and program to sign. Then you use the commands, simulating typing as necessary, and you have signed a program!