有没有可能用Java编写一个反病毒程序,比如它可以拦截正在执行的程序?我可以在Java中对操作系统进行如此深入的控制吗?
更新: c#呢?同样的限制也适用,还是更好的方式?
发布于 2010-02-24 05:05:18
对操作系统有这样的影响是可能的。唯一的问题是,你将失去平台独立性,或者至少必须为每个给定的平台编写代码,因为这样的操作需要对系统进行相当深入的访问,这可以通过JNI实现,这将把你使用它的方法绑定到操作系统上。
发布于 2010-02-24 05:20:42
我认为Java不可能实现这种控制,主要是因为它使用VM并且与操作系统隔离。或者更确切地说,操作系统不受Java VM的影响。这是设计好的。
为清楚起见,编辑后添加:我假设您想要用Java编写整个解决方案,而不是混合语言。
发布于 2010-02-24 05:56:27
我不相信它能与JNI一起工作。
在操作系统启动新进程(或写入文件等)时进行“拦截”的情况下,您需要编写某种类型的驱动程序或内核模块,这些驱动程序或内核模块与操作系统挂钩。该驱动程序/模块肯定是用本机编译代码编写的。因此,操作系统在这里负责,并最终调用您的本机模块。
所以,在我看来,这里甚至没有涉及Java。
无论如何,这是基本的方法。在Linux中使用像pam这样的东西是可能的,它可以被配置为几乎做任何与安全和文件/进程权限相关的事情,并且可以调用其他进程来执行它的命令。但是,为操作系统尝试启动的每个新进程运行一个JVM实例似乎有些牵强。
https://stackoverflow.com/questions/2321668
复制相似问题