Modification du numéro de série


19

Sur le forum officiel de raspberrypi.org , "Dom" - un modérateur a écrit:

J'ai truqué ma carte pour avoir ton numéro de série

Comment modifier le numéro de série d'un Raspberry Pi?


5
1. Pourquoi? Pourquoi pas? Apprendre les choses n'est-il pas tout l'intérêt de l'IP?
Un autre Simon

4
2. Voler à nouveau - mon temps vaut plus que les 2 livres que j'économiserais, mais je suis sûr que vous vouliez dire le «vous» générique
Un autre Simon

3
3. Dom n'est pas magique, mais est très compétent. A-t-il utilisé une version Pi de l'ancienne disquette de démarrage HP setsys, ou écrit des données sur l'une des broches GPIO, ou autre chose? Telle est ma question.
Un autre Simon

3
J'ai mis à jour ma réponse et ajouté des excuses. Nous ne sommes pas ici pour discuter de la moralité des choses. Nous sommes ici pour poser des questions et obtenir des réponses. Votez également car c'est une très bonne question.
Vincent P

2
Pourquoi ne pas compiler un noyau personnalisé qui renvoie la série que vous souhaitez /proc/cpuinfo? Je ne sais pas si cela pourrait aider avec les taches de décodeur si ..
oberstet

Réponses:


9

Je copie ceci à partir de ce fil de discussion .

Dom a accès à tout le code source, au débogueur Videocore et à de nombreux outils spécifiques VC fermés. Et la publication de toute information pour vous permettre de modifier le numéro de série briserait le mécanisme de licence du codec, donc cela n'arrivera jamais.

En outre, tel que publié dans le fil. La seule raison de changer la série serait de copier la licence MP4 de quelqu'un d'autre et de l'utiliser. Car c'est la sécurité autour de la licence. Votre série unique est liée à la licence MP4, donc même si quelqu'un a obtenu votre clé de licence, il ne pourra rien y faire (à moins qu'il ne puisse changer le numéro de série du Raspberry Pi.

MISE À JOUR: Pour répondre à la question réelle. Je dirais que Dom a la source du firmware de bas niveau réel. J'imagine qu'il change vraiment juste le code source qui lit la série et le force à retourner une valeur différente. Je doute honnêtement qu'il ait été réellement modifié (sur le CPU, je veux dire), plus comme s'il avait changé une partie du code du firmware pour renvoyer une série différente. Je m'excuse également auprès du demandeur, nous vous avons tous donné un "Pourquoi? Ce n'est pas bien. Votre vol" au lieu de répondre à la question. Ma faute.


2
Merci pour vos excuses et votre tentative de répondre à la question. "J'imagine qu'il est ..." Les réponses de type sont idéales pour les discussions, mais la réponse acceptée sera, espérons-le, sous la forme "Cela se fait via l'utilitaire xyz qui n'est disponible que pour les employés de Broadcom ..." etc.
Un autre Simon

2
Je suis un peu surpris que l'hypothèse selon laquelle le numéro de série ne soit modifié qu'à des fins néfastes soit si répandue sur un périphérique Linux. Je voudrais le changer en "pourquoi devrais-je permettre à un tiers d'identifier mon système de manière unique"? Je le vois, entre autres, comme un problème de confidentialité. Pourquoi? C'est mon affaire.
bobstro

6

En ce qui concerne les programmes de l'espace utilisateur, il est assez facile de les tromper et de truquer le contenu de n'importe quel fichier. Par exemple, supposons qu'un programme C utilise un /proc/cpuinfofichier pour vérifier le numéro de série. Le programme est protégé contre la copie et lié à la série, et je n'ai pas le code source. Cependant, je peux toujours courir strace program 2>&1 | grep cpuinfo, ce qui révèlera quelque chose comme:

open("/proc/cpuinfo", O_RDONLY) = 3

À ce stade, je peux créer une petite bibliothèque, cpuinfo.soavec la fonction suivante:

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);
}

Comme vous pouvez le voir, je vérifie si l'utilisateur de la bibliothèque essaie de s'ouvrir /proc/cpuinfo, auquel cas j'ouvre à la /tmp/cpuinfoplace.

Ensuite, j'exécuterai le programme original protégé contre la copie en tant que LD_PRELOAD=/path/to/cpuinfo.so program, et il lira avec plaisir mon faux fichier en le pensant /proc/cpuinfo, tout en travaillant correctement avec le reste des fichiers.

Notez que si le logiciel protégé contre la copie comprend des objets du noyau, il sera beaucoup plus difficile à tromper, car il pourrait accéder directement au matériel. Cependant, un tel logiciel ne fonctionnera également qu'avec le noyau pour lequel il a été construit, ce qui rend sa distribution assez peu pratique.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.