C++-有没有方法用非hash的方法来标识进程的唯一性?

发布于 2016-11-11 13:42:56 字数 195 浏览 1094 评论 2

我们现在是用hash的方式来标识进程的唯一性,
这会带来二个问题:

  • 如果遇到进程很大,比如40M,那么计算hash的过程比较耗时
  • 相同软件下的不同版本进程,可能不相同,但对于用户他们没有区别,这会导致随着版本的更新,我们的进程hash越来越多,有没有方法可以把同一软件的所有进程标识出来?(不考虑数字签名)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-05-04 17:53:37

1.
使用 Runtime.getRuntime().exe("cmd /c tasklist"); (java,windows下)可以获取PID就可以区分唯一性,linux下为ps -ef|grep java
2.设置一个GUID,来区分
3.使用sigar.jar,但是需要依赖dll文件
其他的办法没想出来,希望大家补充

偏爱自由 2017-02-09 06:03:34

不用hash,可以使用如下的办法

使用软件的名称
使用程序的路径
使用安装程序的安装ID

但是以上方法都不能达到和hash一样的效果。要避免计算hash耗时的问题,可以先用上面的方法,区别不了后再计算hash。就是先比较名称,路径或者安装ID,相同的情况下再计算hash进行比较

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文