Welcome Anonymous !FaceBookGoogle +TwitterChaine YoutubeFlux Rss

LE site francophone de référence sur le Hack de vos PlayStations
 

L'intégrale des patchs True Blue JB2 / BR / 3.41 / 3.55

Chargement ...

Panneau de modération ]

Infos sur les protections COBRA USB par Jaicrab

Venez discuter ici de tout ce qui concerne les Modchips et les Dongles

Modérateurs: Correcteurs, Correcteurs à l'essai, Traducteur, Référents correcteurs, Dev.ps3a, Newser, Newsers à l'essai

Infos sur les protections COBRA USB par Jaicrab

Messagepar Neverlost » Ven 8 Juil 2011 16:46

Jaicrab diffuse de nouvelles informations sur certaines protections du dongle Cobra USB.

Image


Extrait de son blog :

Flynn m'a envoyé ce texte expliquant cette protection du Cobra, j'espère que cela servira à ceux intéressés par un reverse dump.

COBRA RTOC TRICK EXPLAINED

Le JIG Cobra possède différentes mesures de protection pour s'assurer que son code ne puisse pas être utilisé correctement en cas de Dump.

Cette protection dans le registre RTOC est la première utilisée, en plus de compliquer l'analyse.

Le registre RTOC est initialement sauvegardé dans la pile pour conserver le RTOC du LV2 et pouvoir le récupérer postérieurement.



# =============== S U B R O U T I N E


cobra_syscall_sm_shutdown_hook: # CODE XREF: syscall_379 j

.set arg_20, 0x20
.set arg_28, 0x28
.set arg_30, 0x30
.set arg_38, 0x38
.set arg_40, 0x40

mflr %r0
std %r0, arg_20(%sp)
std %rtoc, arg_28(%sp)

A ce stade, expliquons ce qu'est le DELTA OFFSET.
Le DELTA OFFSET est une méthode utilisée sur l'x86, avec comme création "originale" certains virus informatiques, pour calculer l'adressage de la mémoire dans la RAM.
Aux origines, un virus informatique ne connaissait pas, lors de son exécution, à quel endroit il se trouvait dans un exécutable. Dépendant de l'exécutable, il pouvait se situer en zone initiale de démarrage...ou ailleurs..., c'est pour cette raison que fut inventé le DELTA OFFSET.


Le DELTA OFFSET peut être utilisé sur n'importe quel système, la procédure est la suivante :

- En utilisant le registre qui indique la direction actuelle d'exécution (ou la suivante, dépendant du système)
- En soustrayant la taille du code précédemment utilisé à cette valeur obtenue depuis le registre.

Sachant cela, et en prenant l'exemple du processeur x86, dont le registre EIP ne peut pas être lu directement, le "trick" a été inventé, d'appeler une "subfonction" qui est simplement la ligne suivante de l'appel fonction :


call x
x:
pop eax


L'instruction call en x86, garde dans la partie supérieure de la pile, la direction de l'instruction qui la suit.
De cette façon, en utilisant pop, nous extrayons de la partie supérieure de la pile, cette valeur, et nous la conservons dans eax, par exemple, en ayant déjà l'adresse de la mémoire.
A ce point, il suffirait de soustraire la valeur antérieure, pour obtenir le calcul exact.


Sur PowerPPc, nous pouvons utiliser cette techique, en utilisant l'instruction équivalente BL (BRANCH LINK), laquelle pointe sur une "subfonction" mais en conservant dans le registre LR l'adresse suivante à BL. .



bl _delta_offset

_delta_offset:

A ce stade, nous voyons le "truc" utilisé pour la création du RTOC du Cobra à ce moment.
Remarquez que r0 et RTOC sont à 0 :


li %r0, 0
li %rtoc, 0

Postérieurement, nous donnons la valeur 0x11DE0 à rtoc:



oris %rtoc, %rtoc, 1
ori %rtoc, %rtoc, 0x1DE0

A r0 on donne la valeur 0x920:


oris %r0, %r0, 0
ori %r0, %r0, 0x920

On soustrait à r0 la valeur de rtoc:


subf %r0, %r0, %rtoc

A la différence du x86, en PowePPC le registre LR peut se lire directement avec l'instruction mflr, nous mettons dans le rtoc la valeur obtenue par le delta offset :


mflr %rtoc

Pour calculer le delta offset final, nous soustrayons les opérations antérieures effectuées au delta offset, à savoir 4, c'est-à-dire 16 bytes :


addi %rtoc, %rtoc, -0x10

Finalement, nous additions la valeur de r0 au rtoc final du delta offset, en gardant le résultat dans le rtoc, étant le rtoc cobra adéquat pour ce "hook".


add %rtoc, %rtoc, %r0

En ayant le cobra rtoc, on garde dans la pile les 3 arguments que le "hook" a reçu :


std %r3, arg_30(%sp)
std %r4, arg_38(%sp)
std %r5, arg_40(%sp)

On appelle la fonction du Cobra où se vérifiera le premier argument à la recherche de la commande 0x8202 (une commande spéciale comme d'habitude... :


bl cobra_syscall_sm_shutdown

Après avoir fait le nécessaire avec le Cobra, on récupère de la pile le rtoc original, de même que les arguments reçus par le "hook", on exécute l'instruction originale qui a été réécrite dans l'entrée du syscall 379 (dans ce cas), pour avoir notre "hook", et on appelle la syscall originale du LV2 :



ld %rtoc, arg_28(%sp)
ld %r3, arg_30(%sp)
ld %r4, arg_38(%sp)
ld %r5, arg_40(%sp)
mfcr %r12
bl original_syscall_sm_shutdown

Au retour, on récupère le LR original depuis la pile, et on retourne à ce qu'il pointe :



ld %r0, arg_20(%sp)
mtlr %r0
blr

# End of function cobra_syscall_sm_shutdown_hook

Source : jaicrab via demonhades
PS3 Slim 640 Go samsung spinpoint --- CFW 3.55 Kmeaw --- Multiman
Xbox 360 Jtag Falcon V3 Elite 120 Go --- Kinect---FreestyleDash
Avatar de l’utilisateur
Neverlost
Interessé
 
Messages: 117
Inscription: Jeu 19 Mai 2011 16:57

Re: Infos sur les protections COBRA USB par Jaicrab

Messagepar Bhaal » Ven 8 Juil 2011 18:33

meme si j'ai rien compris, je suppose que les devs savent quoi en faire, en tout cas merci pour le taf effectue pour la trad
Je ne réponds pas aux demandes de SAV et de support par MP, je ne fais plus partit de la team PS3A
Avatar de l’utilisateur
Bhaal
Ex Administrateur
 
Messages: 5392
Inscription: Lun 7 Sep 2009 20:31

Re: Infos sur les protections COBRA USB par Jaicrab

Messagepar Neverlost » Ven 8 Juil 2011 18:36

Bhaal a écrit:meme si j'ai rien compris, je suppose que les devs savent quoi en faire, en tout cas merci pour le taf effectue pour la trad


:D , ben pour être franc..., j'ai pas compris grand-chose non plus TT ..., après...j'ai essayé de faire au mieux pour la trad..., pour les dévs qui parlent pas espagnol.... ;)
PS3 Slim 640 Go samsung spinpoint --- CFW 3.55 Kmeaw --- Multiman
Xbox 360 Jtag Falcon V3 Elite 120 Go --- Kinect---FreestyleDash
Avatar de l’utilisateur
Neverlost
Interessé
 
Messages: 117
Inscription: Jeu 19 Mai 2011 16:57

Re: Infos sur les protections COBRA USB par Jaicrab

Messagepar Protoman_X » Ven 8 Juil 2011 22:06

Meme si ceci est incorporé dans les CFW qu'es que sa nous rapporte ?
Avatar de l’utilisateur
Protoman_X
Expert
 
Messages: 322
Inscription: Jeu 20 Jan 2011 21:00


Réponse Rapide

 

Retourner vers News Modchips et Dongles

Qui est en ligne

  • Au total il y a 0 utilisateur en ligne :: 0 enregistré, 0 invisible et 0 invité (basées sur les utilisateurs actifs des 15 dernières minutes)
  • Le record du nombre d’utilisateurs en ligne est de 875, le Lun 17 Jan 2011 21:13
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités