在应用程序启动之前做一些事情

时间:2016-12-19 20:47:04

标签: c# c++

我一直在寻找一种方法来在应用程序启动之前做一些事情并停止启动的应用程序并在“这些东西”完成后执行。

与防病毒应用程序一样,当您打开可能存在危险或没有认证的应用程序时,它会执行扫描,并且只有在执行后才允许应用程序启动。

已经尝试过观察者和WMI(C#),但没有成功,因为调用事件发生在应用程序启动之前,并且无法取消开放。

如果有该技术的名称,或者有人知道C ++或C#中的示例代码或任何其他语言。

  

对于那些贬低这个问题的人,至少要有F **球来解释为什么是贬低...   这是一个合理的问题!也许我想念它,但仍然是一个合理的问题。哦,我忘记了,在你职业生涯的许多年里,你已经知道了一切......如果你失去三天的互联网连接怎么办?你还有效率吗?也许你们有来自Matrix的Tank注入的API和文档......这就是NEO如何学会战斗。

由于

1 个答案:

答案 0 :(得分:3)

此处描述了一个选项(可能由防病毒软件使用,但不确定): https://www.codeproject.com/Articles/11985/Hooking-the-native-API-and-controlling-process-cre

基本上,挂钩函数NtCreateFile()NtOpenFile()NtCreateSection()(最后一个被提及为首选)。

但是,钩子必须从内核模式驱动程序内部完成,这可能会带来轻微的不便" (特别是在64位Windows下,驱动程序必须签署AFAIK)。

此处还提到了一些选项:How does a Windows antivirus hook into the file access process?