我正在为学校项目编写自己的反病毒软件。我已经确定了基础知识,就像检查文件的MD5哈希对着已知坏哈希的库一样,检查文件是否存在已知的错误字节模式,检查它是否会尝试连接到网络...目前这一切都可以通过传递文件的路径来检查我的程序的参数。
我想要做的是通过检查用户双击的每个文件,更类似于真正的反病毒/恶意软件的工作方式。
IE:双击资源管理器中的TEST.exe,而不是直接启动TEST.exe我希望操作系统实际调用带有TEST.exe路径的ANTIVIRUS.exe。然后ANTIVIRUS.exe将检查TEST.exe并确定它是否可以安全启动。
我考虑修改"打开"注册表中的属性,但我注意到您无法设置用哪个程序打开可执行文件。
如何更改Windows(XP,7,8)设置以执行此类操作(如果可能的话?)。如果不能这样做,其他反病毒怎么做?设法检查文件是否正在启动?
(注意:最初发布在superuser.com上,但被告知要在这里尝试,因为它可能需要" Win32 API挂钩?"。我用Python写了我的反病毒但是如果需要,我也能说流利的C#。)