检测内存入侵
回答
许多病毒检查程序使用的一种方法是执行可执行文件或内存的校验和并将其保存。在运行时,偶尔会计算一个新的校验和并与原始数据进行比较。大多数程序不会有意修改其可执行文件。
防止基本内存修改的基本思想是加密您关心的内存部分,并进行冗余检查以确保不被修改。
这些都不会阻止一个确定的黑客,但足以让脚本小子保持在您的地址空间之外。
简短的答案是否定的,在一般情况下是不可能的。即使你实现了一些已经给出的建议,也没有任何东西阻止某人修补执行检查的代码。
我不知道ArtMonkey是如何工作的细节,但是如果它作为一个调试器的功能,你可以试着定期检查DebugHook <> 0,如果是的话适当反应。 (只要确保将该代码放在{$ IFNDEF DEBUG}块中,以免对产生影响!)
您可能想问问自己,为什么要阻止人们修补你的记忆,虽然。除非有真正的安全问题,否则你可能不应该尝试。请记住,用户的计算机,即您的程序将运行的是他们的财产,而不是您的财产,如果您对用户的选择产生过多干扰,应如何处理他们的财产,您的计划在道德上与恶意软件无法区分。
我不知道它是如何工作的,我认为它可以通过三种方式来完成:
- ReadProcessMemory和WriteProcessMemory的Windows API的
- 使用调试器(检查debughook,不过这简直太容易了这样它不会使用)
- 注入一个dll,因此它可以存取权限的所有内存(因为它是在同一个进程)
最后一个是容易(检查注入DLL或类似的东西)。第一个是棘手,但我发现一些关于它的文章:
不,“DebugHook”对于检查进程是否正在被调试完全没有用处,它只被IDE调试器使用。在Windows API中有IsDebuggerPresent()(或直接访问PEB),但它非常容易被愚弄,请参阅http://www.teamfurry.com/wordpress/2007/02/25/avoiding-debugger-detection 。 – mghie 2009-12-22 07:40:53
我问过类似的问题,结论是基本上你不能阻止这一点。 How can I increase memory security in Delphi
- 1. 太空入侵者碰撞检测。 1子弹检查所有入侵者?
- 2. apache日志入侵检测数据集
- 3. 基于请求的Tomcat入侵检测
- 4. 入侵检测系统,安全+问题
- 5. 入侵者检测器 - OpenCv - C
- 6. Apache(XAMPP 1.8.0)access.log /入侵检测关注
- 7. 从内存中检索字节码以防止黑客入侵
- 8. 侵犯版权检测
- 9. 入侵侦测数据集
- 10. 算法或API创建入侵检测系统输入
- 11. 内存块C写入/读取检测
- 12. 内存泄漏没有检测到CRT内存泄漏检测
- 13. 运行Snort入侵检测系统时出错
- 14. 神经网络,遗传算法作为入侵检测系统
- 15. 神经网络和入侵检测系统
- 16. 寻找入侵检测标签数据集
- 17. 如何设置微服务入侵检测系统?
- 18. 检测iOS应用是否被黑客入侵
- 19. Java中的网络入侵检测系统..!
- 20. 使用模糊逻辑构建入侵检测系统
- 21. 建筑物入侵检测系统,但从哪里开始
- 22. 计算机科学“关于入侵检测系统的知识”
- 23. 侵入式或非侵入式
- 24. 非侵入式集成测试
- 25. 检测Android内存泄漏
- 26. VB.NET检测内存操作?
- 27. 内存泄漏检测器
- 28. 检测IPHONE可用内存
- 29. 检测内存增长
- 30. VisualVM内存泄漏检测
适用于不可变内存。但是大多数内存不是不可变的 – 2009-12-22 09:30:29