Редагування серійного номера


19

На офіційному форумі raspberrypi.org "Дом" - модератор написав:

Я побив мою дошку, щоб мати ваш серійний номер

Як редагувати серійний номер Raspberry Pi?


5
1. Чому? Чому ні? Чи не вивчає речі вся суть ІП?
Ще один Саймон

4
2. Перекрадаю - мій час коштує більше, ніж 2 фунти, які я би заощадив, але я впевнений, що ти мав на увазі загальне "Ти"
Ще один Саймон

3
3. Дом не чарівний, але дуже обізнаний. Чи користувався він версією Pi старої дискети для завантаження дискета HP, чи записував дані на один із штифтів GPIO чи щось інше? Це моє запитання.
Ще один Сімон

3
Я оновив свою відповідь і додав вибачення. Ми не тут, щоб обговорити моральність речей. Ми тут, щоб задати питання та отримати відповіді. Крім того, піднесуть заявку, оскільки це дуже гарне питання.
Вінсент П

2
Чому б не скласти користувацьке ядро, яке повертає будь-який серійний файл, який вам подобається /proc/cpuinfo? Не впевнений, чи допоможе це краплями декодера ..
oberstet

Відповіді:


9

Я копіюю це з теми форуму .

Дом має доступ до всіх вихідних кодів, налагоджувального пристрою Videocore та безлічі закритих інструментів VC. І видача будь-якої інформації, яка дозволить вам змінити серійний номер, порушила б механізм ліцензування кодеків, тому це ніколи не відбудеться.

Додатково як розміщено в потоці. Єдиною причиною зміни серіалу було б скопіювати чужу ліцензію MP4 та використовувати її. Оскільки це безпека навколо ліцензування. Ваш унікальний серійний зв’язок пов’язаний з ліцензією MP4, тому навіть якщо хтось отримав ваш ліцензійний ключ, він не зможе нічого з цим зробити (якщо тільки вони не зможуть змінити серійний номер Raspberry Pi.

ОНОВЛЕННЯ: Щоб відповісти на актуальне запитання. Я б сказав, що в Dom є джерело фактичної прошивки низького рівня. Я б міг уявити, що він насправді просто змінює вихідний код, який читає серійний і змушує його повернути інше значення. Я чесно сумніваюся, що це насправді було змінено (на процесорі я маю на увазі), більше, як він змінив частину коду вбудованого програмного забезпечення, щоб повернути інший серійний. Також вибачте запитувача, ми просто дали вам "Чому? Це не приємно. Ваша крадіжка" замість того, щоб відповісти на питання. Моє ліжко.


2
Дякую за вибачення та вашу спробу відповісти на запитання. "Я б міг уявити, що він ..." відповіді типу чудово підходять для обговорення, але, сподіваємось, відповідь буде у формі "Це робиться через утиліту xyz, доступну лише працівникам Broadcom ..." і т. д.
Ще один Саймон

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, працюючи правильно з іншими файлами.

Зауважте, що якщо програмне забезпечення, захищене від копіювання, включає об’єкти ядра, його дурити буде набагато складніше, оскільки він може отримати доступ до обладнання безпосередньо. Однак таке програмне забезпечення також працюватиме лише з ядром, для якого він був побудований, що робить його досить недоцільним для розповсюдження.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.