Im offiziellen Forum von raspberrypi.org schrieb "Dom" - ein Moderator:
Ich habe mein Board durcheinander gebracht, um deine Seriennummer zu haben
Wie bearbeite ich die Seriennummer eines Raspberry Pi?
/proc/cpuinfo
? Ich
Im offiziellen Forum von raspberrypi.org schrieb "Dom" - ein Moderator:
Ich habe mein Board durcheinander gebracht, um deine Seriennummer zu haben
Wie bearbeite ich die Seriennummer eines Raspberry Pi?
/proc/cpuinfo
? Ich
Antworten:
Ich kopiere dies aus diesem Forum-Thread .
Dom hat Zugriff auf den gesamten Quellcode, den Videocore-Debugger und viele geschlossene VC-spezifische Tools. Wenn Sie Informationen freigeben, um die Seriennummer ändern zu können, würde dies den Mechanismus für die Codec-Lizenzierung stören und niemals passieren.
Zusätzlich wie im Thread gepostet. Der einzige Grund, die Seriennummer zu ändern, wäre, die MP4-Lizenz einer anderen Person zu kopieren und zu verwenden. Da ist das die Sicherheit rund um die Lizenzierung. Ihre eindeutige Seriennummer ist mit der MP4-Lizenz verknüpft. Selbst wenn jemand Ihren Lizenzschlüssel hat, kann er nichts damit anfangen (es sei denn, er könnte die Seriennummer des Raspberry Pi ändern.
UPDATE: Zur Beantwortung der eigentlichen Frage. Ich würde sagen, dass Dom die Quelle für die eigentliche Low-Level-Firmware hat. Ich würde mir vorstellen, dass er wirklich nur den Quellcode ändert, der die Seriennummer liest, und ihn zwingt, einen anderen Wert zurückzugeben. Ich bezweifle ehrlich, dass es tatsächlich geändert wurde (auf der CPU meine ich), eher als hätte er einen Teil des Firmware-Codes geändert, um eine andere Seriennummer zurückzugeben. Wir entschuldigen uns auch beim Fragesteller, wir haben Ihnen alle nur ein "Warum? Das ist nicht nett. Ihr stiehlt" gegeben, anstatt die Frage zu beantworten. Mein Fehler.
Für Userspace-Programme ist es ziemlich einfach, sie zu täuschen und den Inhalt von nahezu jeder Datei zu fälschen. Angenommen, ein C-Programm verwendet eine /proc/cpuinfo
Datei, um die Seriennummer zu überprüfen. Das Programm ist kopiergeschützt und an die Seriennummer gebunden, und ich habe den Quellcode nicht. Ich kann aber trotzdem noch rennen strace program 2>&1 | grep cpuinfo
, was so etwas verrät:
open("/proc/cpuinfo", O_RDONLY) = 3
An dieser Stelle kann ich eine kleine Bibliothek cpuinfo.so
mit der folgenden Funktion erstellen :
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);
}
Wie Sie sehen, überprüfe ich, ob der Benutzer der Bibliothek versucht zu öffnen /proc/cpuinfo
. In diesem Fall öffne ich /tmp/cpuinfo
stattdessen.
Dann führe ich das kopiergeschützte Originalprogramm aus LD_PRELOAD=/path/to/cpuinfo.so program
und lese meine gefälschte Datei mit Freude /proc/cpuinfo
, obwohl ich mit den restlichen Dateien richtig arbeite.
Wenn die kopiergeschützte Software Kernelobjekte enthält, ist es sehr viel schwieriger zu täuschen, da direkt auf die Hardware zugegriffen werden kann. Solche Software funktioniert jedoch auch nur mit dem Kernel, für den sie erstellt wurde, was die Verteilung recht unpraktisch macht.