As a programmer I don't use anti-virus programs for a simple reason: I found that viruses are only detected once the executable or a part thereof has been explicitly blacklisted by the anti-virus developer.
At least that is how I experienced it. When I write a simple stupid malicious program, no anti-virus program seems to be blocking it...
Now I'm wondering if there are tools that can simply place themselves as another layer on top of the operating system's API. And allow the user to create a whitelist of which function each executable may access. It would also be nice to get a pop up every time new function is called, revealing the passed arguments asking the user if the wants to grant/deny access.
So that I could for example specify which file/folder/registry/process entry can be read or modified. And also things like which devices can be used, which IP addresses can be communicated with etc.
I know such tools exist for Android (Xprivacy), but I'm curious if tools like this also exist for Windows, Linux and Mac OS X.
And I'd also like to know if there is a technical term for this kind of a tool, as I don't think it would fully fall under the category "anti-virus program" or "firewall".