На официальном форуме raspberrypi.org «Дом» - модератор написал:
Я выдумал свою доску, чтобы получить ваш серийный номер
Как мне отредактировать серийный номер Raspberry Pi?
/proc/cpuinfo
? Не уверен, если это поможет с каплями декодера, хотя ..
На официальном форуме raspberrypi.org «Дом» - модератор написал:
Я выдумал свою доску, чтобы получить ваш серийный номер
Как мне отредактировать серийный номер Raspberry Pi?
/proc/cpuinfo
? Не уверен, если это поможет с каплями декодера, хотя ..
Ответы:
Я копирую это из этой ветки форума .
Dom имеет доступ ко всему исходному коду, отладчику Videocore и множеству инструментов для закрытых VC. А раскрытие любой информации, позволяющей изменить серийный номер, нарушит механизм лицензирования кодеков, поэтому никогда не произойдет.
Дополнительно как размещено в ветке. Единственной причиной для изменения серийного номера является копирование чужой лицензии MP4 и ее использование. Так как это безопасность вокруг лицензирования. Ваш уникальный серийный номер связан с лицензией MP4, поэтому даже если кто-то получит ваш лицензионный ключ, он не сможет ничего с ним сделать (если только он не сможет изменить серийный номер Raspberry Pi).
ОБНОВЛЕНИЕ: Чтобы ответить на актуальный вопрос. Я бы сказал, что, поскольку у Dom есть источник для самой прошивки низкого уровня. Я полагаю, что он на самом деле просто изменяет исходный код, который читает сериал, и заставляет его возвращать другое значение. Честно говоря, я сомневаюсь, что это было действительно изменено (я имею в виду процессор), скорее, он изменил часть кода прошивки, чтобы вернуть другой серийный номер. Также извиняюсь перед тем, кто спрашивает, мы все просто дали вам «Почему? Это нехорошо. Ваше воровство» вместо того, чтобы ответить на вопрос. Виноват.
Что касается пользовательских программ, их довольно легко обмануть и подделать содержимое практически любого файла. Например, предположим, что программа 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
, и при этом будет работать правильно с остальными файлами.
Обратите внимание, что если программное обеспечение, защищенное от копирования, включает объекты ядра, его будет намного сложнее обмануть, так как он может напрямую обращаться к оборудованию. Однако такое программное обеспечение также будет работать только с ядром, для которого оно было построено, что делает его практически нецелесообразным для распространения.