金山毒霸进程自我保护不足,恶意程序可以模拟调试器附加到其上并使其退出。
简单来说代码只有两行:
GetProcessIdByName(L"kxetray.exe", &dwPID);
DebugActiveProcess(dwPID);
其中GetProcessIdByName只需用CreateToolhelp32Snapshot创建进程快照,并用Process32First和Process32Next遍历即可。DebugActiveProcess是API函数,其唯一参数是被调试进程的PID。
我们只要不在退出前分离毒霸进程(被调试进程)就可以导致其退出。当然为了在其退出后继续运行,示例中采用了再运行一次自身的办法。源码、程序请见http://pan.baidu.com/s/1dDrJPWP。在Win8.1+VS2013+毒霸最新版下测试通过。
运行后:
可以看到毒霸已经默默的退出了,但我们的程序(其实是被自身第二次运行的)正在运行。
防止被调试器附件的方法有很多,当然要和毒霸现有的防护方法融合。相信金山的大神可以解决,我就不班门弄斧了。
就爱阅读www.92to.com网友整理上传,为您提供最全的知识大全,期待您的分享,转载请注明出处。……