/proc/cpuinfo
?不知道是否会与解码器的斑点,但..帮助
/proc/cpuinfo
?不知道是否会与解码器的斑点,但..帮助
Answers:
我正在从此论坛主题复制此内容。
Dom可以访问所有源代码,Videocore调试器和许多封闭的VC专用工具。释放任何信息以允许您更改序列号将破坏编解码器许可的机制,因此永远不会发生。
此外,如线程中所述。更改序列号的唯一原因是复制并使用他人的MP4许可证。因为这就是许可的安全性。您的唯一序列已链接到MP4许可证,因此即使有人获得了您的许可证密钥,他们也将无法对其进行任何操作(除非他们可以更改Raspberry Pi的序列号。
更新:回答实际问题。我要说的是,Dom提供了实际的低级固件的来源。我以为他真的只是在更改读取串行的源代码,并强迫它返回不同的值。老实说,我怀疑它实际上已更改(我的意思是在CPU上),更像是他更改了一些固件代码以返回不同的序列。还向提问者表示歉意,我们都只是给您一个“为什么?那不是很好。您的偷窃”而不是回答问题。我的错。
就用户空间程序而言,欺骗它们并伪造几乎任何文件的内容非常容易。例如,假设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
与其余文件正确配合工作时,它会很高兴地读取我的虚假文件,认为它是。
请注意,如果受复制保护的软件包含内核对象,则将更容易被愚弄,因为它可以直接访问硬件。但是,此类软件也只能与构建该软件的内核一起使用,这使其分发起来非常不切实际。