Voir les messages sans réponses | Voir les sujets actifs Nous sommes le 23 Mai 2013 10:47



Répondre au sujet  [ 24 messages ]  Aller à la page 1, 2  Suivante
 Hack du Bios 
Auteur Message
Slt a tous je vouler cree se topic pour rassembler toute les conversation sur le hack bios . Pour savoire qui va si mettre comment vous vous si ete
pris vos conseil , astuce ,idee et se que vous en penser et puis en se moment sa se ramolie sur le forum donc voila une news qui va nous reanimer tout sa.

Donc je vais commencer par quel que chose de chiant mais je pense ne pas etre le seul a le vouloir et puis fo bien qui est kelkin ki le demande pour koi pas moi et vous pouver constater que c la premiere foi ke je demande votre aide alors que sa doit faire 4 mois ke je suis ici ,
pouver vous , vous ki ete expere de la langue anglaise de nous faire une petite traduction de http://debugmo.de/gc/gc.html .
SVP :D SVP :D SVP
Et n oublier pas service donner , service rendue 8) .


29 Nov 2003 22:58
Message 
Citation:
L'incorporation d'exemple est un appareil pour jouer des jeux. Il consiste en un CPU Powerpc-Basé fort avec quelques extensions de propriété, un noyau GPU/PERIPHERIQUE de propriété (a appelé "Flipper"), y compris un puissant 3D processeur, 24 mégaoctet de 1T-SRAM, une unité de disque de mini-DVD, plusieurs interfaces externes.

L'exemple est seulement signifié être utilisé avec les jeux originaux, et ainsi a une protection qui charge est seulement possible d'a protégé à la copie des disques. Cependant, un jeu a appelé "l'Etoile de Phantasy en ligne" a contenu une possibilité pour exploiter les jeux connectent à l'internet, ainsi permettant au code être injecté et être exécuté (http://www.gdev.com) - la scène de homebrew avait commencé!

Le problème est que le procédé de botte avec PSO prend très long chaque fois vous voulez essayer quelque chose, à peu près 1-2 minutes - vraiment pas parfait pour un cycle de développement agréable. Pour surmonter ceci, j'ai développé un bios (ou bootrom, comme or9 dirait) le remplacement, que je veux présenter ici.

LE REFUS L'information présentée est ici basée sur mon opinion qui ils aucun ne s'enfreint pas n'importe quel loi, les règles ou quoi que. S'ils font, s'il vous plaît me contacter à gc@_n0spam_debugmo.de (enlève le n0spam) et j'enlèverai la chose IMMEDIATEMENT.

LE REFUS 2 n'importe quelle information est ici fournie "comme-il". Je ne prend pas de garantie pour n'importe quoi ici, surtout si vous vous cassez l'appareil vous êtes sur votre propre. S'il vous plaît ne m'envoyer pas des connecteurs cassés, épingles cassées ou simplement "les appareils de pas-travaillant". En doute, ne pas modifier votre appareil si vous n'avez pas un autre celui jouer avec.

LE REFUS 3 De la piraterie - ne fait pas S'IL VOUS PLAIT. Ceci n'est pas de la piraterie. Il ne vous aidera pas si vous voulez lire les disques non-originaux de jeu, et je suis calme heureux du fait que la protection de copie véritable semble être faite dans le microprogramme de dvdrom. Ce projet est du développement de HOMEBREW, les modèles de demonstration et la chose. Pas de jouer a copié des jeux. La piraterie tuera la scène entière sur le jour vous pouvez charger warez sans avez un BBA ou étant obligé à charger PSO chaque fois. Si ceci arrivera, l'intérêt commercial dans warez grandira, et nintendo devra prendre des guerres légales contre tout le monde qui contourne le procédé de botte ordinaire. S'il vous plaît ne PAS CECI PERMETTRE D'ARRIVE. PAS WAREZ DE SOUTIEN, autrement nous devons chercher bientôt une autre console pour tailler.

Comme j'ai expliqué dans ce forum de dextrose poste je l'ai géré pour programmer un CPLD pour remplacer les contenus du IPL, ou BIOS, ou bootrom. La partie de matériel consiste en:

Un CPLD, j'ai utilisé un Xilinx XCR3064XL, connecté entre le fragment de IPL et la Nageoire, une carte de mémoire de Répétition d'une séquence, ou n'importe quel SPI l'éclat compatible. Noter que j'ai fait n'a pas reçu un éclat de atmel pour travailler puisque il se repose sur avoir l'horloge au niveau positif pendant que les CS sont inactifs (le j'.e. haut). Une carte de mémoire normale et compatible ne travaillerait pas parce qu'ils ont besoin d'une séquence ouvrant spéciale qui n'a pas été pourtant renversé (enfin pas dans public). Quand le IPL est lu du fragment de IPL, le CPLD injecte un petit bloc de code. Le code sera lu à 0x81300000, le point d'entrée du IPL normal. Quand le code est exécuté, il charge le premier secteur de la carte de mémoire dans le b d'entaille à 0x81000000 et sauts là-bas. Le code regarde comme le suivre:. long 0x52000000 # bien qu'est le code, c'est presque un aucun-op. # ceci est l'adresse de secteur envoyée à r27
de lis de carte de mémoire, 0xcc00 # la base de chargement de registres de matériel. # comme la chauve-souris est déjà initialisée par les BS, nous # ajoute 0xC0000000 à la base 0x0C000000. li r28, 0x0880 # le fragment choisit sur pour l'entaille de memcard, mflr de vitesse bas r29 # lr contient toujours l'adresse de ce code - c.-à-d. 0x81300000 li r30, 128 # transférer 128 li d'octets r31, 7 # EXI DMA écrit do_dma à bl # fait dma, et attend lis de fin r29, 0x8100 # a lu maintenant à 0x81000000, encore 128 li d'octets r31, 3 # EXI DMA a lu mtlr r29 # la sérieL'adresse être sautée à do_dma: stmw r28, 0x6814(r27) # inaugure DMA write_wait: lmz r5, 0x6820(r27) # a lu rlwinm d'octet de statut. 0, 5, 31, 31 # l'extrait "dans le transfert" bne de morceau write_wait # l'attente jusqu'à ce qu'a éclairci blr # le dos de branche/coder

Ce code peut regarder un morceau confondant au début, mais ce devait être aussi petit que ceci, autrement il n'aurait pas la crise dans le CPLD.

Le code lui-même envoie hors au EXI. ainsi les octets envoyés sont "52 00 00 00 3f. . ..", 128 octets dans le total. La carte de mémoire prévoit un octet d'ordre, qui est 0x52 dans ce cas. après cela, il prévoit l'adresse, 00 00 00 3f dans ce cas, qui est le premier secteur, décaler 0x3F. alors il prévoit 4 octets factices, et commence à envoyant les octets de données après cela. après il atteint la fin du secteur (128 octets + 6 octets spéciaux pour ECC, mais nous pouvons les utiliser aussi),Il commence répéter le secteur. Si après avoir écrit hors 128 octets nous pouvons lire 128 octets de payload dans la mémoire. Un programme spécial changera les données vers pour qu'après 128 octets de données les premières données de notre payload bien-aimé sort, et reçoit lire dans la mémoire. Après nous avons fini le exi a lu dma, nous sautons là-bas.

Ceci était le premier bootloader d'étape. Maintenant le premier secteur de la carte de mémoire contient 128+6 octets d'un deuxième bootloader d'étape, qui lit les secteurs restant de la carte dans mem et les sauts là-bas. Nous ne pourrions pas faire ceci dès le début à cause du manque d'espace dans le CPLD. le deuxième bootloader d'étape j'ai écrit des crises exactement dans 128bytes, mais peut être optimisé probablement un morceau plus. je ne soigne pas, puisque il ajuste. Maintenant nous pouvons charger jusqu'à (presque) 512k de code d'utilisateur dans la mémoire, ainsi écrivant notre propre remplacement de IPL. J'ai commencé à faire cela, mais il manque toujours des fonctions importantes, mais peut être utilisé pour télécharger DOLs (utilisant le réseau) et les exécute (permettant de charger homebrew en quelques les secondes), et les jeux de début (utilisant un petit apploader).

L'outil de mc.c: Cet outil préparera une carte de répétition d'une séquence pour notre bootloader. Le programme est fait pour linux sur un PC, ainsi ayant besoin d'une interface à la carte de mémoire. J'ai fait la connexion suivante au printerport:

L'épingle 3 D1 - EN SERIE DANS compte sur la carte) 4 D2 - LE FRAGMENT CHOISIT compte sur la carte) 5 D3 - CLK compte sur la carte) 10 ACK - EN SERIE HORS (de la carte) 25 GND - LE SOL 3.3v - VCC de Carte Pour le pinout de la carte de mémoire, prendre un regarde embers.shaw.ca/cheezWhizzer/GCNCard.htm. Vous pourriez le port l'écrivain de carte de mémoire être couru sur l'incorporation d'exemple, mais je recommande avec force pour utiliser un PC, parce que vous pouvez le reprogrammer beaucoup de. Noter que vous ne devez pas tenter de recevoir le 3.3v du port parallèle - il ne travaillera pas. Fait attention, si vous avez un vieux PC, les niveaux au port parallèle pourraient être calmes 5v. Utiliser des tampons ou un
plus nouveau PC (avec 3.3v niveaux) alors.

Vous devez appeler. /mc avec un fichier binaire comme un argument. Ce doit être un fichier relié à 0x81000080, avec l'entrée désigne le début. Mon makefile produira un fichier appelé "main_boot.bin", qui est convenable pour ceci. Prendre le soin que le numéro de pages utilisées ne dépasse pas le numéro de pages a lu dans la mémoire par le deuxième bootloader d'étape. Vous pouvez increse les comme vous aimez.

Le remplacement de IPL Mon remplacement de IPL est toujours au loin d'est parfait. Cependant, il soutient déjà: Différencier de la plupart de parties de matériel, comme le coussin, dvd,.. Lowmem intialisation Télécharge de DOLs (jusqu'à 4 mégaoctet plus
ou moins) et les HUCHES (a chargé à 0x80003000) sur le port 4000 chargement de jeux (appuie sur "A"-button) la Note que vous devez ajuster les adresses de IP directement dans le code. Prendre un examine le "réseau.c". Ainsi c'est presque n'importe quoi
vous avez besoin de pour un cycle de développement rapide.

LES CHARGEMENTS Le remplacement de IPL, y compris le mc.c d'outil d'écrivain de carte de mémoire. Le code de CPLD, utilisable pour Xilinx ISE (WebPack le fera).

Les images (a détaillé soudant l'information suivra) Le ROM/RTC/.. L'EN SERIE_HORS-rembourrer La connexion de
carte de mémoire de répétition d'une séquence La carte de mémoire de répétition d'une séquence avec le
connecteur de pc Le CPLD devant l'incorporation d'exemple Premier screenshot de mon remplacement de IPL - oui,
très laid.


C'est pas génial mais j'ai fais ça avec un traducteur donc forcément c'est une traduction mot à mot :P .


30 Nov 2003 9:10
Message 
Merci a toi tu a fai l effort est c sa le principale


30 Nov 2003 11:06
Message 
J'ai pas tout lu sur ton lien mais je ne comprends pas trop à quoi celà sert de modifier le bios de la gamecube...


30 Nov 2003 11:11
Message 
le but est de booter la console sans passer par pso pour envoyer des données pour un gain de temps si tu veux tester des prog :)


Dernière édition par KilGore le 30 Nov 2003 22:12, édité 1 fois.



30 Nov 2003 11:30
V.I.P
V.I.P
Avatar de l’utilisateur

Inscription: 18 Juin 2003 17:19
Messages: 610
Message 
Ca sert a lancer des .dol sans PSO...

_________________
Image


30 Nov 2003 11:31
Profil
Message 
Ok merci. :D


30 Nov 2003 13:41
Message 
J'ai commencer à traduire mais c'est un peu laborieux(notamment pour trouver des équivalences entre Anglais et Francais ds le langage technique)
Si tu veux comprendre comment ca fonctionne c'est vraiment pas compliqué

Tout d'abords un peu de vocabulaire et d'abréviation
CPLD : [Lien vers une definition pour Complex Programmable Logic Device]. Ca va lui servir à balancer le code de son choix en courcircuitant le lien entre le processeur et le bios
IPL(C'est le chip qui contient le code de boot/bios de la console).
AR : Action Replay, je le cite notamment pour la carte memoire qui est vendu avec (et qui est une carte memoire non officielle)


Tout d'abords il utilise une carte mémoire AR qui contient son bios de remplacement(Une carte memoire AR et pas une officielle car il y a une protection qu'on a pas encore compris qui protege l'écriture dans les cartes officiels) .Il utilise aussi un CPLD qui courcircuite la liaison entre le gecko et l'IPL.

Au démarage de la consolle, le CPLD va envoyer au gecko le petit bout de programme asm qui est ds sa page à la place du code du BIOS.
Ce programmeva lire dans le premier secteur de la carte memoire du slot B, le copier en memoire et l'exécuter.(Pour comprendre le programme, il faut avoir une petite expérience de l'asm et lire un peu sur le bus EXI)(Regardez son post sur Dextrose ou recherchez il y a aussi un excellent papier sur le Bus Exi)

Ce premier secteur memoire contient une seconde partie du loader qui lui va charger toute la carte memoire(il ne pouvait pas le faire autrement car il n'avait pas la place ds le CPLD d'écrire le code necessaire au chargement de la carte memoire toute entière.)


Ainsi il peut charger en memoire toute la carte memoire(512k) qui contient le bios de remplacement (qu'il n'a pas fini mais qui permet d'uploader directement des dols sans passer par Pso (mais toujours via le Bba) et de les executer en qq secondess , et aussi de lancer les jeux.



le programme MC-Tools est un programme qui permet en faisant un bidouillage avec ta carte Mémoire et le port parallele (il te donne toutes les pins de branchements) d'uploader sa seconde partie de code de loader ainsi que son bios de remplacement.


Avec ceci, les photos et les sources qu'il fournit tu devrais avoir trouvé consistance à comprendre son modchip.
(C'est peut etre un trop brouillon ma réponse mais j'ai suivit exactement l'ordre de sa page web)


Dernière édition par jalv le 30 Nov 2003 19:52, édité 4 fois.



30 Nov 2003 13:55
Message 
Merci a toi , mais la tu fai toi ou d autre personne ?


30 Nov 2003 17:32
Message 
Je reprends exactement et scrupulusement la page http://debugmo.de/gc/gc.html


Maintenant si tu veux une vision plus globale :
IPL : C'est le bios

Normallement
IPL <========>Gekko
Le gekko a son démarrage va rechercher le code de boot dans l'IPL
Lui, il a mis un CPLD entre le Gekko et l'IPL.
IPL <===CPLD<>Gekko
Dans ce CPLD, il aurait pu mettre directement son propre code de boot. Malheuresement , un CPLD c'est trés trés limité en capacité memoire et donc pas assez grand pour y construire un bios de remplacement.
Donc il a décider de mettre son code dans une carte memoire.

voici ce qui se passe avec son shema
Il allume sa consolle
le processeur boot et va chercher le bios de la GameCube(celui qui contient la belle animation de notre consolle) dans l'IPL
Le CPLD intercepte l'appel vers l'IPL et renvoit en reponse un petit programme qui va charger et executer le code contenu dans le premier secteur de la carte Memoire B.
Le petit truc difficile a saisir, c'est qu'il a mis un deuxieme loader dans ce premier bloc de carte memoire car il n'avait pas assez de place dans le CPLD pour faire un programme qui charge toute la carte memoire.
Bref aprés celà, la carte memoire qui contient son bios de remplacement est chargé. Plus besoin de Pso pour charger ces demos.

Maintenant si il y a tjs un truc que tu comprends pas dans sa page si tu veux je t'explique(dans la limite de mes compétences) mais précise bien quoi.(ta question par exple je l'ai pas compris)


30 Nov 2003 19:39
Message 
...
Je crois quand mm que je ne suis pas assez synthétique dans mes explications :P :P :P


30 Nov 2003 19:54
Confirmé
Confirmé
Avatar de l’utilisateur

Inscription: 01 Nov 2003 11:30
Messages: 468
Localisation: France
Message 
non moi j'ai lu je dit merci :) et bravo :)


30 Nov 2003 21:03
Profil
Message 
oooo je pense ke t est expliquation son bien pe etre compliquer pour certaine personne mais je pense qu elle sen aideron plus d un mais si vous comprener l anglais aller kan meme sur le site il est beaucoup plus
compler mais merci a tous jalv je te remerci au nom de tous (enfin je pende lol).


30 Nov 2003 21:47
Message 
Je reviens à la charge (si je répond aussi bien aussi sur le sujet c'est qu'il m'interesse :-) :-) !!!)
Euh tout d'abords deux remarques:
1. Le source du programme du cpld me semble incomplet, il me semble qu'il manque les fameux xors qui servent de clés au cryptage du bios dans la fonction insert string (ou alors son bios est déja en xor avec la clé de Nintendo)
2. J'y pense mais cette solution est vraiment une solution de hackeur qui pourrait avoir plusieurs variantes :
En effet, on peut trés bien imaginer par exemple de ne pas utiliser une carte memoire AR pour contenir le bios (il faudrait créer un prog Gc pour que la consolle elle meme mette en memoire le fameux Bios)(contrainte : il faudrait utiliser Pso pour mettre la premiere fois le fameux bios dans la carte)
On pourrait tout aussi bien imaginer carrement se passer de carte memoire et d'utiliser un autre composant qu'un CPLD qui puisse aussi stocker de la memoire(ou alors utiliser un CPLD couplé avec de l'Eeprom)

Quoiqu'il en soit faut reconnaitre que son shéma dans une solution de devellopement est trés flexible (grace à sa carte AR modifié, il lui trés trés rapide de modifier et de tester son bios)


03 Déc 2003 20:38
Message 
oula je suis pas sur ke ta solution marche pour la stocke dans la memoire de la GC car des kon lancerer un iso en streaming il doi vider la memoire et la re remplir des nouvelle donner de l iso et il risquerer de suprimer ton hack bios mais ji connai pas grand chose c une suposition.


04 Déc 2003 19:51
Afficher les messages postés depuis:  Trier par  
Répondre au sujet   [ 24 messages ]  Aller à la page 1, 2  Suivante

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.
Traduction par phpBB-fr.com