Faut avoir un bon éditeur hexadécimal, savoir utiliser google (de maniére un peu avancé), dépoussiérer ses bouquins de maths sur les probabilités, aller regarder la gueule d'un micro-code d'un truc connue genre un truc comme PIC. Savoir ce que veut dire instruction encoding et regarder des exemples.
A partir de là faut trouver le max d'info publique sur le net, taille des registres, fixed size instruction word, taille des instructions word, ... les reviews un peu poussé fait par les sites de gamer ont pas mal d'infos.
Il faut ensuite regarder le truc en hexadecimal, genre tu sais que le packed 0xAD sert à écrire le register 0x1034 bah tu cherche en hexa les occurences de AD et parmis elles tu cherches celle ou tu vois 0x1034 pas loin c'est alors très probablement le code qui t'interesse. Après c'est utiliser les probas, tu sais que l'instruction la plus commune c'est mov, et tu sais la taille des instruction donc tu fais une recherche d'un word qui est le plus répété et partir de la tu te dis que c'est mov. Apres le plus courrant ca doit etre ADD, puis SUB, ou SHL, ... bref faut deviner beaucoup et plus tu regardes plus tu penses comprendre et plus tu penses comprendre plus tu peux voir si ce que tu penses comprendre pour une fonction à un endroit te permet de comprendre une autre fonction à un autre endroit si c'est le cas c'est probablement que tu as bien deviner.
Il me semble qu'un des types de nouveau a fait des posts de blogues sur le reverse engineering des firmware nvidia. C'est le même principe.
[^] # Re: comment faire ?
Posté par glisse . En réponse à la dépêche Entretien avec Jérôme Glisse, développeur des pilotes graphiques radeon pour Red Hat. Évalué à 10.
Faut avoir un bon éditeur hexadécimal, savoir utiliser google (de maniére un peu avancé), dépoussiérer ses bouquins de maths sur les probabilités, aller regarder la gueule d'un micro-code d'un truc connue genre un truc comme PIC. Savoir ce que veut dire instruction encoding et regarder des exemples.
A partir de là faut trouver le max d'info publique sur le net, taille des registres, fixed size instruction word, taille des instructions word, ... les reviews un peu poussé fait par les sites de gamer ont pas mal d'infos.
Il faut ensuite regarder le truc en hexadecimal, genre tu sais que le packed 0xAD sert à écrire le register 0x1034 bah tu cherche en hexa les occurences de AD et parmis elles tu cherches celle ou tu vois 0x1034 pas loin c'est alors très probablement le code qui t'interesse. Après c'est utiliser les probas, tu sais que l'instruction la plus commune c'est mov, et tu sais la taille des instruction donc tu fais une recherche d'un word qui est le plus répété et partir de la tu te dis que c'est mov. Apres le plus courrant ca doit etre ADD, puis SUB, ou SHL, ... bref faut deviner beaucoup et plus tu regardes plus tu penses comprendre et plus tu penses comprendre plus tu peux voir si ce que tu penses comprendre pour une fonction à un endroit te permet de comprendre une autre fonction à un autre endroit si c'est le cas c'est probablement que tu as bien deviner.
Il me semble qu'un des types de nouveau a fait des posts de blogues sur le reverse engineering des firmware nvidia. C'est le même principe.