它looks就像不可能阻止坚定的攻击者修改一个人的进程代码/数据。我希望它至少有可能检测到这种篡改。
在Windows下,是否可以监听DLL injections , WriteProcessMemory and CreateRemoteThread进入当前进程?
在 Linux 下,是否可以监听 LD_PRELOAD 和 DR rootkit ?
最佳答案
通过一些真正复杂的代码,您可以检测到那些... 这完全取决于攻击者的决心……如果他们真的下定决心,那么他们将使用某种 Rootkit 方法——在这种情况下,您的应用程序对此无能为力(不检测,只要攻击者知道他们是什么就不会停止做)...
另一种方法可能是尝试在运行时对内存中的段进行一些哈希处理,但这会产生一些蛇油,因为哈希代码本身会提供一个入口点来规避此方法。
在自建 VM 中执行您的代码,该 VM 又通过虚拟机管理程序与系统的其余部分通信……当然,虚拟机管理程序必须成为系统的引导加载程序,这样操作系统就只是一个“你的虚拟机管理程序的 child ”……应该可以解决这个问题……尽管你必须自己编写所有这些并确保它没有可利用的弱点(很确定没有人可以为如此复杂的软件做到这一点)……
不确定您面临的是什么,但只要您的代码运行的硬件+软件不直接在您的完全控制之下,总有办法完成您提到的事情,并且有一些计划也可以避免检测...
或者这“仅”是关于防止软件盗版/逆向的? 如果是这样,那么就会有一些措施,甚至是一些 100% 安全的措施,尽管这一切都是关于安全性和可用性的平衡......
关于windows - 验证内存中的进程完整性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7139586/