加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Mac OS的机器ID?

发布时间:2020-12-16 09:24:16 所属栏目:百科 来源:网络整理
导读:我需要计算运行MacOS的计算机的机器ID,但我不知道在哪里检索信息 – 像硬盘序列号等等.我的特定应用程序的主要要求是用户必须无法欺骗它.在你开始大笑之前,我知道这很遥远,但至少,欺骗方法必须重新启动. 最好的解决方案是C/C++中的一个,但如果没有别的办法我
我需要计算运行MacOS的计算机的机器ID,但我不知道在哪里检索信息 – 像硬盘序列号等等.我的特定应用程序的主要要求是用户必须无法欺骗它.在你开始大笑之前,我知道这很遥远,但至少,欺骗方法必须重新启动.

最好的解决方案是C/C++中的一个,但如果没有别的办法我会采用Objective-C.最佳解决方案不需要root权限.

有任何想法吗?谢谢.

解决方法

Erik建议使用system_profiler(及其底层但未记录的SystemProfiler.framework)是您最大的希望.您的基本要求是不可能的,任何没有硬件支持的解决方案都将很快被破解.但是您可以使用system_profiler和/或SystemProfiler.framework构建合理的混淆级别.

我不确定你的实际要求,但这些帖子可能有用:

> Store an encryption key in Keychain while application installation process(这与网络身份验证有关,这听起来像你的问题)
> Obfuscating Cocoa(这更像是复制保护,这可能不是你的问题)

我将在此重复我在第一篇文章中所说的内容:安全地确保只有您的客户可以与您的服务器通信是不可能的,期间,不可能的.如果这是您的基本要求,那么这不是一个可解决的问题.我将扩展它,说不可能构建你的程序,以便人们不能拿出你输入的任何支票,所以如果目标是许可,那也不是一个完全可解决的问题.上面的第二篇文章讨论了如何从业务而不是工程角度思考这个问题.

编辑:关于您要求重新启动的请求,请记住Mac OS X具有内核扩展.通过加载内核扩展,始终可以修改系统在运行时如何看到自己而无需重新启动.原则上,这将是一个Mac rootkit,从根本上说它不比Linux rootkit复杂.您需要仔细考虑攻击者是谁,但如果您的攻击者包含Mac内核黑客(这不是一个无关紧要的群组),那么即使重启要求也不合理.这并不是说你不能让大多数用户烦恼.一个相当称职的攻击者总能做到这一点.所有现代操作系统都是如此;关于Mac,这里没什么特别的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读