【问题标题】:Do something before an application starts在应用程序启动之前做一些事情
【发布时间】:2016-12-19 20:47:03
【问题描述】:

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

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

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

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

对于那些对问题投反对票的人,至少有 F** 球来解释为什么投反对票...... 这是一个合理的问题!也许我想念解释它,但仍然是一个合理的问题。哦,我忘了,在你多年的职业生涯中,你已经必须知道一切......如果你失去互联网连接三天会发生什么?你还有生产力吗?说不定你们有 Matrix 的 Tank 注入的 API 和文档……NEO 就是这样学习战斗的。

谢谢

【问题讨论】:

  • 您的意思是每次用户打开任何应用程序时您都会先执行您的操作?
  • 最简单的方法是创建一个实际执行的包装应用程序。它可以做启动前的事情,启动嵌套应用程序并在嵌套应用程序存在后处理“事情”。
  • 是的,这正是我要找的。​​span>
  • @itsme86 启动的应用程序可以是任何人...包装不能解决我的问题,因为启动的应用程序不是我的。
  • 也许 IShellExecuteHook 能帮上忙……但我目前对它的用法了解不多。

标签: c# c++


【解决方案1】:

这里描述了一个选项(可能被防病毒软件使用,但不确定): 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?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多