Редактирование серийного номера

19

На официальном форуме raspberrypi.org «Дом» - модератор написал:

Я выдумал свою доску, чтобы получить ваш серийный номер

Как мне отредактировать серийный номер Raspberry Pi?

Другой Саймон
источник
5
1. почему? Почему нет? Разве изучение вещей - не весь смысл ПИ?
Еще один Симон
4
2. Повторное воровство - мое время стоит больше, чем 2 фунта, которые я бы сэкономил, но я уверен, что вы имели в виду общее «Вы»
Другой Симон
3
3. Дом не волшебный, но очень знающий. Использовал ли он версию Pi старой загрузочной дискеты HP setsys, или записывал данные на один из выводов GPIO, или что-то еще? Это мой вопрос.
Еще один Симон
3
Я обновил свой ответ и добавил извинения. Мы здесь не для того, чтобы обсуждать мораль вещей. Мы здесь, чтобы задавать вопросы и получать ответы. Также upvote, так как это очень хороший вопрос.
Винсент П
2
Почему бы не скомпилировать собственное ядро, которое возвращает тот сериал, который вам нравится /proc/cpuinfo? Не уверен, если это поможет с каплями декодера, хотя ..
oberstet

Ответы:

9

Я копирую это из этой ветки форума .

Dom имеет доступ ко всему исходному коду, отладчику Videocore и множеству инструментов для закрытых VC. А раскрытие любой информации, позволяющей изменить серийный номер, нарушит механизм лицензирования кодеков, поэтому никогда не произойдет.

Дополнительно как размещено в ветке. Единственной причиной для изменения серийного номера является копирование чужой лицензии MP4 и ее использование. Так как это безопасность вокруг лицензирования. Ваш уникальный серийный номер связан с лицензией MP4, поэтому даже если кто-то получит ваш лицензионный ключ, он не сможет ничего с ним сделать (если только он не сможет изменить серийный номер Raspberry Pi).

ОБНОВЛЕНИЕ: Чтобы ответить на актуальный вопрос. Я бы сказал, что, поскольку у Dom есть источник для самой прошивки низкого уровня. Я полагаю, что он на самом деле просто изменяет исходный код, который читает сериал, и заставляет его возвращать другое значение. Честно говоря, я сомневаюсь, что это было действительно изменено (я имею в виду процессор), скорее, он изменил часть кода прошивки, чтобы вернуть другой серийный номер. Также извиняюсь перед тем, кто спрашивает, мы все просто дали вам «Почему? Это нехорошо. Ваше воровство» вместо того, чтобы ответить на вопрос. Виноват.

Винсент П
источник
2
Спасибо за ваши извинения и вашу попытку ответить на вопрос. Ответы типа «я представляю, что он…» отлично подходят для обсуждения, но мы надеемся, что принятый ответ будет в форме «Это делается с помощью утилиты xyz, которая доступна только для сотрудников Broadcom ...» и т. д.
один Симон
2
Я немного удивлен, что предположение, что серийный номер будет изменен только для гнусных целей, так распространено на устройстве Linux. Я хотел бы переключить это на «почему я должен позволять третьей стороне уникально идентифицировать мою систему»? Я вижу в этом, помимо прочего, проблему конфиденциальности. Почему? Это мое дело.
Бобстро
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, и при этом будет работать правильно с остальными файлами.

Обратите внимание, что если программное обеспечение, защищенное от копирования, включает объекты ядра, его будет намного сложнее обмануть, так как он может напрямую обращаться к оборудованию. Однако такое программное обеспечение также будет работать только с ядром, для которого оно было построено, что делает его практически нецелесообразным для распространения.

Дмитрий Григорьев
источник