我正在寻找ac#方法添加到我的winforms应用程序,它可以:
一个.检测任何不应存在的已加载模块/ dll.要么,
湾 (优选)完全防止dll注入.我已经阅读了这篇有用的文章,但没有提供实际的代码来防范CreateRemoteThread,SetWindowsHookEx或Code Cave.
编辑
我在考虑运行代码的后台线程,如下所示.我对这个话题很新,所以请原谅我的天真
var trustedModules = new[] {"kernel32.dll", "user32.dll", "etc"};
var intrusionDetected =
Process.GetCurrentProcess()
.Modules.Cast<ProcessModule>()
.Any(module => !trustedModules.Contains(module.FileName.ToLowerInvariant()));
if (intrusionDetected)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
对于A,没有简单的方法可以做到这一点.它本质上是一种检测与消除技术之间的猫捉老鼠游戏.记录它们都超出了SO答案的范围.为了帮助您入门,您需要研究各种技术:
然后,如果没有任何类型的服务器组件或动态质询响应系统,请注意,如果有足够的时间,您的所有保护措施都可以被取消.
对B的简短回答是Windows操作系统明确支持代码注入,因此没有任何简单的方法可以添加到程序中以防止它.
| 归档时间: |
|
| 查看次数: |
2191 次 |
| 最近记录: |