如何隐藏java进程中的参数?

时间:2014-10-31 02:25:32

标签: java process cmd

我想隐藏正在运行的java进程的参数(密码释义)(可以从命令行看到)。

例如,当我在cmd上键入jps -m时,它会向我显示所有java进程及其参数:

运行jps -m后的输出:6120 someproject.jar -password

其中6210是pid。

我需要该密码才能运行java进程。问题是如果我的机器遭到入侵,有人可能会读取密码并可能造成进一步的损坏。

一种解决方案是将密码存储在本地文件中。但如果机器受到损害,仍然有人可以得到它。

我是如何进行的?

提前致谢。

update1:​​密码经过哈希处理,但仍然希望它隐藏。

1 个答案:

答案 0 :(得分:0)

在(例如)C程序中处理此问题的方法是写入提供给main(...)入口点方法的参数列表。欲了解更多信息,请阅读:

不幸的是,"覆盖" Java应用程序无法使用该方法。从纯Java,它根本不可能。即使使用本机代码库,也很难在内存中找到(本机)参数向量的存储位置。

(此外,还有一个小的时间窗口,在应用程序删除它们之前公开参数...)


所以你最好的办法就是以另一种方式传递秘密信息。例如,通过环境变量,具有访问限制的临时文件或标准输入传递秘密信息。