编辑序列号


19

正式的raspberrypi.org论坛上,主持人“ Dom”写道:

我已经弄乱了我的董事会要你的序列号

如何编辑Raspberry Pi的序列号?


5
1.为什么?为什么不?难道不是学习PI的全部内容吗?
另一个西蒙(Simon)

4
2.重新偷窃-我的时间比我节省的2磅还值钱,但是我敢肯定,您的意思是通用的“您”
另一个Simon

3
3. Dom并不是神奇的,但知识渊博。他是使用旧版HP setsys启动软盘的Pi版本,还是将数据写入GPIO引脚之一,还是其他?那是我的问题。
另一个西蒙(Simon)

3
我已经更新了答案并道歉。我们不是在这里讨论事物的道德。我们在这里提出问题并获得答案。也赞成,因为这是一个很好的问题。
文森特·P

2
为什么不编译一个可返回您喜欢的序列号的自定义内核/proc/cpuinfo?不知道是否会与解码器的斑点,但..帮助
oberstet

Answers:


9

我正在从此论坛主题复制此内容。

Dom可以访问所有源代码,Videocore调试器和许多封闭的VC专用工具。释放任何信息以允许您更改序列号将破坏编解码器许可的机制,因此永远不会发生。

此外,如线程中所述。更改序列号的唯一原因是复制并使用他人的MP4许可证。因为这就是许可的安全性。您的唯一序列已链接到MP4许可证,因此即使有人获得了您的许可证密钥,他们也将无法对其进行任何操作(除非他们可以更改Raspberry Pi的序列号。

更新:回答实际问题。我要说的是,Dom提供了实际的低级固件的来源。我以为他真的只是在更改读取串行的源代码,并强迫它返回不同的值。老实说,我怀疑它实际上已更改(我的意思是在CPU上),更像是他更改了一些固件代码以返回不同的序列。还向提问者表示歉意,我们都只是给您一个“为什么?那不是很好。您的偷窃”而不是回答问题。我的错。


2
感谢您的歉意和回答问题的尝试。“我想他是……”类型的答案非常适合讨论,但希望的答案将是“仅通过Broadcom员工可用的xyz实用程序来完成……”的形式。等
另一个西蒙(Simon),

2
令我惊讶的是,在Linux设备上如此普遍的假设是仅出于恶意目的更改序列号。我想将其切换为“为什么我应该允许第三方唯一标识我的系统”?我认为这尤其是隐私问题。为什么?那是我的事
bobstro

6

就用户空间程序而言,欺骗它们并伪造几乎任何文件的内容非常容易。例如,假设C程序正在使用/proc/cpuinfo文件来验证序列号。该程序受复制保护,并与序列绑定,我没有源代码。但是,我仍然可以运行strace program 2>&1 | grep cpuinfo,它将显示类似以下内容的内容:

open("/proc/cpuinfo", O_RDONLY) = 3

此时,我可以创建一个cpuinfo.so具有以下功能的小型库:

int open(const char *file, int flags) {
    static int (*real_open)(const char *file, int flags);
    if(!real_open) real_open = dlsym(RTLD_NEXT, "open");
    if(!strcmp(file, "/proc/cpuinfo")) file = "/tmp/cpuinfo";
    return real_open(file, flags);
}

如您所见,我正在检查库的用户是否尝试打开/proc/cpuinfo,在这种情况下,我将打开/tmp/cpuinfo

然后,我将以身份运行原始的受复制保护程序,当LD_PRELOAD=/path/to/cpuinfo.so program/proc/cpuinfo与其余文件正确配合工作时,它会很高兴地读取我的虚假文件,认为它是。

请注意,如果受复制保护的软件包含内核对象,则将更容易被愚弄,因为它可以直接访问硬件。但是,此类软件也只能与构建该软件的内核一起使用,这使其分发起来非常不切实际。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.