在我看来,恶意软件似乎永远无法用java编写。那些教我java的人说它是“安全的”,不允许像c,c++那样的“低级别访问”。
但是,我发现这是可以做到的- http://blog.trendmicro.com/trendlabs-security-intelligence/jacksbot-has-some-dirty-tricks-up-its-sleeves/
关于同一件事的笔记- http://www.darknet.org.uk/2011/01/java-based-cross-platform-malware-trojan-maclinuxwindows/
下面是我的问题--我们是否可以使用java来执行c,c++所能做的所有“恶意软件所需的坏事情/任务”?
如果是这样的话,那么我们可以说java也有利于恶意软件的编写吗?毕竟,大多数罪犯都希望他们的恶意软件是多平台的。
发布于 2013-01-08 17:55:27
Java代码可以通过标准接口调用本机代码(例如用C编写的代码,并编译成一系列CPU操作代码)。Java实际上可以在某个地方(作为一堆字节)编写一个DLL文件并加载它,所以所有本机代码都可以这样做,Java也可以。
Java还提供了一个丰富的标准库,允许它以任意方式读写文件。
基于Java的恶意软件的硬件部分是:
这就是为什么Java不会被恶意软件编写者视为最好的语言的原因。而且,即使Java名义上是可移植的,跨平台恶意软件也是一个难以捉摸的目标,因为恶意软件往往在相当低的级别--即非常特定于操作系统的级别--执行任务。在类似Unix的系统上修改/etc/passwd文件是一件非常顽皮的事情;但是它对没有/etc/passwd文件的Windows没有任何影响。因此,恶意软件作者几乎没有使用Java的动机。
(所有这些都适用于在C#/.NET +SilverLight中编写恶意软件的问题。)
发布于 2013-01-08 17:21:14
恶意软件有很多形状和大小,这个问题很难回答。用Java编写恶意软件就像用Java一样容易;
(new File("/path/to/important/file")).delete();我可以编写一个窃取您的数据的java应用程序吗?很容易。我可以用Java编写Linux rootkit吗?几乎可以肯定不是,但这并不能阻止我使用JVM运行的任何权限所能做的所有事情。
因此,从这个意义上说,你可以用Java编写恶意软件,但是如果你用C这样的系统语言编写,你会受到更大的限制;用Java编写键盘记录器比用C编写要困难得多,而且很可能不可能很好地隐藏它。
发布于 2013-01-08 16:47:08
当您听说java更安全时,您可能误解了它的含义。它们是否意味着您的应用程序更安全,或者恶意软件不能用这种语言编写?
过去,在java中发现了许多漏洞(自修补后),这些漏洞允许java程序未经用户同意执行恶意代码。这通常通过applet实现,因为许多浏览器都启用了java。
请参阅CVE数据库,在此您可能会发现以前存在的一些java漏洞。
然而,也许这些人意味着您的应用程序可以编写得更安全,不受黑客攻击。从这个意义上讲,这在一定程度上是真的。例如,java应用程序(通常)无法通过缓冲区溢出攻击利用,因为堆栈是由jvm管理的。我认为这就是当您被告知java更安全时的意思。
这里是关于为什么java编程可能是安全的更多信息。
https://security.stackexchange.com/questions/26696
复制相似问题