5

我想评估一个多人提交 JAR 文件以在 Windows 上执行任务的软件解决方案。

除了声称在您的机器上执行的那些之外,是否可以检查 JAR 文件是否执行任何其他不需要的行为?

4

5 回答 5

2

首先,您可以使用带有SecurityManager的 JVM 集来运行您的应用程序,以限制对敏感功能的访问。

您还可以设置一个“沙箱”,这样 jar 就不能拥有沙箱之外的权限……您可以在 linux/unix 环境中使用 chroot 或类似工具。

于 2011-01-23T16:02:17.810 回答
2

1.您可以使用Sysinternals的软件: http ://technet.microsoft.com/en-us/sysinternals/bb842062

您可以使用 HardMon 看到程序正在写入或从硬盘中删除某些内容,或者使用 RegMon 监视任何更改...查看他们的网站,他们有很多程序,您几乎可以监视所有内容!

2.或者你可以安装Sandboxie: http: //www.sandboxie.com/

然后在沙箱(“虚拟文件系统”)中运行您的程序。当您在沙盒中运行程序时,您可以看到该程序生成了哪些文件,并且最好的是该程序所做的任何更改都会在它存在时被撤消,因此它不会损害您的系统。:)

3.另外,您可以尝试反编译 JAR 文件: http ://www.google.hr/search?sourceid=chrome&ie=UTF-8&q=java+decompiler

于 2011-01-23T16:02:43.757 回答
1

是和否。默认情况下,java 程序可以做你系统上任何本机程序可以做的事情。这包括删除和替换它可以访问的任何文件,具体取决于您的操作系统和您的用户权限,这可能会影响系统关键文件。

可以限制java 应用程序可以做什么,applet 和 webstart 程序通常以这种方式保护。或者,您可以以不同/受限用户的身份或在沙箱中运行任何程序,以限制它可能造成的损害。

如果您不信任库/程序,请始终在上述受限环境之一中运行它。如果它做了不应该做的事情,它可能会崩溃,但它不会造成任何损害。

于 2011-01-23T17:37:47.350 回答
0

尝试反编译器,例如 Java Decompiler:http: //jd.benow.ca/

它会反编译 .jar 文件,并向您显示源代码,但请记住它可能受版权保护: 替代文字

顺便说一句,你为什么不要求他们也提交源代码,而不仅仅是 .jar 文件?

基本上,.jar 文件就像增强的 zip 文件,我相信即使是 WinRAR 也可以打开 .jar 文件。他们网站的引述:

Java Archive File(小程序和相关文件的压缩文件)(.JAR)

Java Archive 的缩写,一种用于捆绑 Java 小程序所需的所有组件的文件格式。JAR 文件简化了小程序的下载,因为所有组件(.class 文件、图像、声音等)都可以打包到一个文件中。此外,JAR 支持数据压缩,这进一步减少了下载时间。

JAR 文件支持与 ZIP 文件支持相同。JAR = ZIP + 清单。Microsoft VM 支持未压缩和压缩的 JAR 级别 0 和 1,但未签名的 JAR。

WinRAR 为其他工具创建的 JAR 文件提供基本操作:查看内容、提取文件、显示注释和存档信息。

您可以使用 convert 功能将 .jar 文件转换为 .rar 格式。

您不需要任何外部程序来处理这些格式。

使用 WinRAR 解压后,您可以通过此链接作为 JD 的替代方法查看源代码。

于 2011-01-23T15:59:16.677 回答
0

我尝试了jensign.com 的解决方案,看起来它几乎限制了所有内容。我用来测试的 .jar 应用程序甚至无法下载网站。但是我不是这方面的专家,所以我无法判断它是否是 100% 安全的解决方案。

JAR'd 应用程序可以在完全限制的沙箱条件下启动(非常类似于 Java 小程序默认安全沙箱):

     java -jar -Djava.security.manager PropsFrame.jar

引自 jensign.com

于 2011-03-25T07:33:02.720 回答