我正在重构一家保险公司的员工使用的应用程序,他们的电脑上的某种恶意软件遇到了一些问题,这些软件控制着这个应用程序来做坏事,或者至少他们是这么说的。
我很确定恶意软件正在使用Win API来调用应用程序实例,所以我的问题是,有什么方法可以检测到一个真正的用户是在控制应用程序,还是通过调用Win API被另一个进程控制呢?该应用程序是用C#编写的。
发布于 2013-12-10 04:10:36
这个答案来自于我使用C++开发C++应用程序的经验。
我只能想到两种控制应用程序的方法--一种是使用OLE自动化,另一种是使用自动化动词,然后将键盘/鼠标事件插入到系统事件队列中。(我假设这个应用程序没有监听任何来自网络的命令)。您可以通过检查源代码和使用带有一些OutputDebugString调用的调试器来验证第一个。第二个只能通过恶意软件扫描器检测到。任何COTS/免费AV或MS安全要点都应该能够识别恶意软件,除非它是由恶意员工在内部编写的。
你有没有看过任务经理的流程列表,并逐一查看,看看是否有什么可疑之处?你能以更高的权限运行这个应用程序吗?然后OLE自动化客户端,如果有一个,将无法访问该进程。
https://stackoverflow.com/questions/20485315
复制相似问题