But if you add rkill to RunOnce isn't there a good chance that it will run, find nothing and then terminate before the malware launches?
I have no idea how RKill works I've never used in the real world, and only observed it running once, and I'll be honest with you, I have no idea what the hype is all about, or what the tool is actually FOR. I thought it was to find and terminate running malware, the kind that is hard to kill because it continually terminates your tools. But obviously not! It seems absolutely useless to me because it takes so incredibly long to try and identify malware AS malware before terminating the process, instead of taking the KillEmAll approach and letting God sort them out.
Though I would think that even if Rkill needed the malware to be running to find it, it could use every opportunity at a head start that it can get - e.g. RunOnce, else if the malware is running first then why on earth wouldn't the malware just terminate Rkill as it launched (nevermind the 1.5 years it takes to 'scan' running processes)?
It is true that if something is in RunOnce - Windows will wait until it terminates before loading the desktop. This could potentially cause Rkill (IF it relies on the malware actually running in order to 'find' it, AND the malware doesn't start until after explorer.exe) to completely miss it's mark, you are correct - if both of those circumstances are true.
However if you add the item to the RunOnce key by shelling it from a console window without waiting, then your app starts first and Windows (along with the malware) will continue to load. That should give Rkill enough of a head start before the malware launches.
This is also what I do with D7, but for very different reasons. (hint: UAC prompts don't trigger if an app requiring admin privileges is executed via RunOnce because it fires before explorer.exe, but UAC prompts DO fire in every other auto-start location!)
example RunOnce value:
Code:
cmd.exe /c start "" "drive:\full path\to\your.exe" /any /parameters /here