Submitter
File Information
- Submitted: févr. 19 2012 03:45
- Last Updated: févr. 19 2012 03:45
- File Size: 2,67 Mo
- Views: 83
- Downloads: 17
Download Payloads du Cobra et du True Blue
Les irréductibles réfractaires aux dongles DRM tels que le Cobra USB ou le True Blue risquent de bientôt pouvoir se consoler de ne pas pouvoir profiter des avantages proposés par ces dongles. Un développeur, sous le pseudonyme de Shadoxi, s'est penché sur les tréfonds de ces deux petites bêtes et a réussi à apporter un viatique plus qu'important à la scène PS3. En effet, ses recherches (pas encore finalisées, c'est-à-dire en "Work In Progress") lui ont permis d'aboutir à des découvertes plus que fascinantes.
Tout d'abord, un des ses premiers exploits consiste à être parvenu à trouver l'endroit où se terrait le payload des dongles dans le firmware et dans la mémoire PS3, même s'il n'a pas été le premier à le faire. Sa seconde trouvaille est plus une explication relevant de la théorie. Dans celle-ci, on découvre de quelle manière il est possible d'implanter dans un firmware les deux payloads, pour pouvoir de cette façon exploiter les fonctionnalités offertes comme notamment le lancement des jeux 3.6+ et ce donc sans dongle.
Pour ceux qui seraient acculés par certains mots, des explications quant à leur sens s'imposent :
? DRM (Digital Rights Management) : se traduit par "Gestion des Droits Numériques". Dans le cas des dongles PS3, cela permet de vérifier que le dongle est bien présent pour ainsi, les fonctions du CFW puissent être débloquées.
? Payload : traduisible par "Charge utile". On pourrait donner comme définition générale : partie utile d'un message, par opposition à la partie servant pour assurer la transmission. Dans le cadre de la PS3, cela signifie : micro-programme chargé d'exécuter sur le firmware les actions pour lesquelles il est programmé, comme par exemple lancer un syscall contenu dans son code.
? Syscall : donne en français "Appel système". Il permet d'accomplir de multiples actions sur le système d'exploitation comme entre autres ouvrir, lire ou encore écrire sur les systèmes de fichiers. En d'autres termes, avoir un accès direct aux syscalls est un grand plus car cela ouvre pas mal de portes. Sur la PS3, le syscall 159 permet d'initialiser le SPU du sysètme, le syscall 348 permet d'allouer de la mémoire, le syscall 386 de la console permet de contrôler l'allumage des LED... Pour la petite histoire, depuis l'OFW 3.55, Sony a corrigé les restrictions de la région mémoire et les permissions d'accès en lecture et en écriture. C'est pour cette raison que le lv1 peek (lv2_lv1_peek - graf_chokolo) et le lv1 poke(lv2_lv1_poke - graf_chokolo) avaient été créés.
? LV1/LV2 : kernels contenus dans le dev_flash du disque dur interne de la PS3. Ils sont au format .self (Signed Executable and Linkable Format), à peu près l'équivalent du .exe sous Windows.
Voici les propos tenus par Shadoxi :
I have figured out where the payload is located of the TB and Cobra dongles. You can find it at offset @360000 in lv2_kernel and 7f0000 in PS3 memory. According to the PS3 Developer Wiki (ps3devwiki.com/index.php/ReDRM_/_Piracy_dongles) the LV2 dump payload at 0x7f0000 has also been decrypted @ LV2 dump 0x7f0000 (pastebin.com/3VG76HQs)
Drag and drop payload in IDA and load it in Binary file mode, Processor type PPC.Press "C" to convert in ASM code.
First of all you need to edit the header of lv2_kernel.self (from CFW TrueBlue) at offset 0x1D, replace 36 1A 00 by 4C FC F0. And decrypt it with unself tool from fail0verflow. Open lv2_kernel.elf with IDA Pro (in binary file mode), go to offset 360000 and press "C" to convert to asm code.
TrueBlue use some HVCALL:
- lv1_insert_htab_entry
- lv1_undocumented_function_114
- lv1_undocumented_function_115
- lv1_allocate_device_dma_region
- lv1_map_device_dma_region
- lv1_net_start_tx_dma
- lv1_net_control
- lv1_panic (shutdown ps3 when TB is unplugged)
This payload do some HVCALL:
- lv1_insert_htab_entry (map lv1)
- lv1_allocate_device_dma_region (?)
- lv1_map_device_dma_region (?)
- lv1_net_start_tx_dma (?)
- lv1_net_control (?)
- lv1_panic (shutdown ps3 when TrueBlue dongle is unplugged)
- lv1_undocumented_function_114 (map lv1)
- lv1_undocumented_function_115 (unmap lv1)
We needed to dump lv2 and lv1 memory when the dongle is plugged in, so I created a modified TB CFW with peek and poke syscall. It works fine !
Ces deux dongles vont-ils nonobstant cela toujours autant faire flore ? Certains diront que ce serait ubuesque de penser le contraire, d'autres deviendront plus optimistes et confiants pour la suite de cette quête à l'abolition des DRM. Dans tous les cas, cette avancée devrait porter ses fruits dans les jours ou semaines qui vont suivre. Nous verrons bien ce que l'avenir nous réserve.
Il n'est pas possible d'avoir les fonctionnalités du Cobra ou du True Blue en injectant un des payloads ci-dessous sur n'importe quel dongle (PS3Key, X3MAX, etc.) !











