L'étude de la protection DENUVO.

Vous avez un problème pour cracker ou vous souhaitez parler de reversing en général...

Re: L'étude de la protection DENUVO.

Messagepar eabcdx » 03 Septembre 2016, 17:49

baboon a écrit:Un nom de cible en tête ?


Tu as B0ttl3Fi3ld Ouane, qui est en bêta libre actuellement sur Or1g1n jusqu'à la fin du week-end je pense, 7-8Go à DL.
Bon après y'a la surcouche EA à virer, on voit pas Denuvo directement au démarrage.

C'est le seul que je connais et qui est gratuit, tout le reste est payant de mémoire.
eabcdx
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 131
Inscription: 03 Novembre 2012, 14:44

Re: L'étude de la protection DENUVO.

Messagepar baboon » 04 Septembre 2016, 14:36

Ça ne me dérange pas de payer un peu...
Le problème de la béta c'est que le jeu ne pourra probablement plus être lancé facilement une fois la béta finie donc si je mets quelques mois à me motiver...
L'idéal serait un jeu récent, pas trop cher, jouable sans connexion internet.
Newbie mais ayant soif d'apprendre et étant motivé
Avatar de l’utilisateur
baboon
Modérateur
Modérateur
 
Messages: 3279
Inscription: 08 Juillet 2005, 17:49

Re: L'étude de la protection DENUVO.

Messagepar eabcdx » 05 Septembre 2016, 11:32

baboon a écrit:Ça ne me dérange pas de payer un peu...
Le problème de la béta c'est que le jeu ne pourra probablement plus être lancé facilement une fois la béta finie donc si je mets quelques mois à me motiver...
L'idéal serait un jeu récent, pas trop cher, jouable sans connexion internet.


Hmm, sans connexion internet, je ne sais pas. Généralement ces sont les jeux EA qui utilisent cette protection, il y a la surcouche Origin.
Après j'en connais 1 qui utilise la surcouche Steam, très simple à virer mais massivement MP.

Après la plupart des jeux ont une campagne solo mais tous requiert une connexion avec Origin ou Steam ou UPlay pour simplement vérifier que tu possèdes bien la licence.

J'en reviens un peu à VMProtect, je commence à comprendre un peu mieux comment on peut déterminer s'il s'agit grossièrement d'un VM_PUSH, VM_POP, comment obtenir la valeur du registre dans lequel PUSH/POP etc...

Je me suis largement inspiré du code de VMPDBG qui liste une 20taines de routines VMProtect avec son équivalence. C'est là que je me suis aperçu qu'il y avait bien 50% de junk code dans une routine.
Du coup je suis en train de me monter mon propre VMPDBG histoire de comprendre comment ça fonctionne.

En revanche, sur la cible que je traite, il ne semble pas y avoir de clé de chiffrement (celle qui est tenue par EBX/RBX) du coup j'ignore son utilité. Avez-vous déjà rencontré une cible qui utilise une clé de chiffrement ?
eabcdx
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 131
Inscription: 03 Novembre 2012, 14:44

Re: L'étude de la protection DENUVO.

Messagepar SVz » 06 Septembre 2016, 10:20

baboon a écrit:Ça ne me dérange pas de payer un peu...
Le problème de la béta c'est que le jeu ne pourra probablement plus être lancé facilement une fois la béta finie donc si je mets quelques mois à me motiver...
L'idéal serait un jeu récent, pas trop cher, jouable sans connexion internet.


Tu as "Inside", très bon jeu au demeurant (il a été cracké par CONSPIR4CY).
Avatar de l’utilisateur
SVz
Visiteur
Visiteur
 
Messages: 17
Inscription: 14 Août 2006, 12:33

Re: L'étude de la protection DENUVO.

Messagepar baboon » 06 Septembre 2016, 12:37

Tant qu'à faire, j'aimerai un jeu qui n'ait pas déjà été cracké :P
Je pense que je vais m'orienter vers DOOM.
Après ne vous attendez pas à des résultats dans les prochaines semaines... Ça sera dans mon temps libre qui est quelque peu restreint :P

[EDIT] Au fait, ton dernier post date d'il y a 10 ans ?! On ne peut pas dire que tu sois très bavard :P
Newbie mais ayant soif d'apprendre et étant motivé
Avatar de l’utilisateur
baboon
Modérateur
Modérateur
 
Messages: 3279
Inscription: 08 Juillet 2005, 17:49

Re: L'étude de la protection DENUVO.

Messagepar eabcdx » 06 Septembre 2016, 13:12

baboon a écrit:Je pense que je vais m'orienter vers DOOM.
Après ne vous attendez pas à des résultats dans les prochaines semaines... Ça sera dans mon temps libre qui est quelque peu restreint :P


Ah bah tu me déçois, moi qui attendait à ce que tu fasses tout le boulot et vite !
Évidemment je plaisante, c'est aussi cette cible que j'aurais regardée en premier. J'ai la chance d'avoir un ami qui me partage sa bibliothèque de jeux et qui le possède :p
Peut-être dans quelques mois...

Bon courage !
eabcdx
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 131
Inscription: 03 Novembre 2012, 14:44

Re: L'étude de la protection DENUVO.

Messagepar SVz » 08 Septembre 2016, 08:12

Trop tard pour Doom :wink:

PS : RDV dans 10 ans :lol:
Avatar de l’utilisateur
SVz
Visiteur
Visiteur
 
Messages: 17
Inscription: 14 Août 2006, 12:33

Re: L'étude de la protection DENUVO.

Messagepar baboon » 08 Septembre 2016, 09:48

Ouais... il va falloir que je me cherche une cible un peu moins intéressante :)
Newbie mais ayant soif d'apprendre et étant motivé
Avatar de l’utilisateur
baboon
Modérateur
Modérateur
 
Messages: 3279
Inscription: 08 Juillet 2005, 17:49

Re: L'étude de la protection DENUVO.

Messagepar dionosis » 13 Septembre 2016, 19:28

Salut,

baboon a écrit:J'ai prévu de me remettre sérieusement au RE de protections logicielles ces prochains mois suivant mes disponibilités et si tout va bien je rouvrirai mon blog pour l'occasion :)

Bonne nouvelle ! :D

baboon a écrit:(non, je n'ai pas rompu avec ma copine :P)

Zut tu m'as vu venir ! :lol:

eabcdx a écrit:Du coup je suis en train de me monter mon propre VMPDBG histoire de comprendre comment ça fonctionne.

Ah bah t'as fini par trouvé. :D
J'ai pas encore regardé ce que ça donne moi.

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: L'étude de la protection DENUVO.

Messagepar eabcdx » 17 Septembre 2016, 17:13

Salut,

je repasse par ici quelques minutes le temps d'avoir une connexion Internet et un PC au même moment.
J'ai bien avancé, mon VMPDBG a fait son boulot, il est capable de sortir la liste des instructions en se basant simplement sur le VM bytecode mais aussi la liste des valeurs à chaque instruction, donc analyse statique et dynamique.

Maintenant je dois réduire tout ça pour espérer obtenir un code x86 compréhensible. D'après la personne qui a fait ce devirtualize-me, ses fonctions originales faisaient environ 20 instructions originale, VMProtect a converti tout ça en 553 instructions !

J'ai encore du boulot mais bon, ça avance quand même, c'est rassurant :)

A+
eabcdx
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 131
Inscription: 03 Novembre 2012, 14:44

Re: L'étude de la protection DENUVO.

Messagepar dionosis » 19 Septembre 2016, 01:31

Salut,

eabcdx a écrit:D'après la personne qui a fait ce devirtualize-me, ses fonctions originales faisaient environ 20 instructions originale

Je ne sais pas si on parle du même mais si oui alors je suis presque sûr que le listing des instructions originales est dispo, ce qui peut carrément aider.
Je te le chercherai si tu ne l'as pas déjà (faudra que je me souvienne où j'avais vu ca, sur t4y je crois).

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: L'étude de la protection DENUVO.

Messagepar eabcdx » 19 Septembre 2016, 20:19

Salut,

oui ne t'en fais pas, je les ai déjà récupérés :p C'est bien grâce à ça que j'avance d'ailleurs.
eabcdx
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 131
Inscription: 03 Novembre 2012, 14:44

Re: L'étude de la protection DENUVO.

Messagepar eabcdx » 23 Octobre 2016, 21:28

Salut,

je relance un peu si jamais des personnes sont intéressées.
Je continue de regarder Denuvo quand j'ai le temps (le train c'est bien pour ça :p). Effectivement, beaucoup de similitudes avec VMProtect dans l'ensemble (tout du moins sur le jeu que j'étudie et le peu que j'ai étudié).
Je ne cherche pas pour le moment à passer particulièrement la première "fonction protégée", je ne sais même pas comment caractériser cela, je suis plutôt sur un parser de code qui me sortirait la liste des adresses de chaque handler et l'état de la VM Stack, VM Context, etc...
Si jamais ça avance un de ces jours, je repasserai ici :)

A+
eabcdx
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 131
Inscription: 03 Novembre 2012, 14:44

Re: L'étude de la protection DENUVO.

Messagepar dionosis » 07 Novembre 2016, 12:30

Salut eabcdx,

eabcdx a écrit:Je ne cherche pas pour le moment à passer particulièrement la première "fonction protégée", je ne sais même pas comment caractériser cela, je suis plutôt sur un parser de code qui me sortirait la liste des adresses de chaque handler et l'état de la VM Stack, VM Context, etc...

Ca me semble être la bonne approche.
La protection étant vmisée, faut d'abord éclaircir tout ça pour pouvoir y voir quelque chose. :)

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: L'étude de la protection DENUVO.

Messagepar eabcdx » 16 Janvier 2017, 22:17

Salut,

ça fait un moment que je n'avais pas replongé dans cette protection mais j'ai finalement décidé de m'y remettre !
J'ai passé ces 2 dernières semaines durant mon temps libre à écrire un dumper de VM ainsi qu'un analyseur statique.
Ayant tout perdu de mes précédentes recherches, j'ai dû repartir de 0 mais ce n'est pas plus mal pour que ce soit frais dans mon esprit.

J'ai plutôt bien avancé pour un début, un total de 8 "sous-VMs" ont été dumpées.
Voici ce que je constate jusqu'à présent (attention, je peux me tromper, mon analyse est purement hypothétique) :
1) Denuvo semble utiliser plusieurs VMs, chacune est différente (j'en ai vu 2 pour le moment dans le même programme)

2) Pour chaque VM, il y a X "sous-VMs" (X étant aléatoire, je n'ai dumpé que la première VM pour le moment)

3) Chaque "sous-VM" utilise le même bytecode x86 pour réaliser une opération, la signature trouvée pour une "sous-VM" permet de retrouver l'opération pour toutes les "sous-VMs" de la VM "mère" (VM_POP, VM_PUSH, etc...)

4) Chaque "sous-VM" utilise sa propre méthode de calcul pour réaliser une opération
Typiquement pour calculer le registre où sera stocké le résultat d'un VM_POP pourrait être écrit de la façon suivante pour la "sous-VM1":
Code: Tout sélectionner
mov al, byte ptr [rsi]
xor al, bl
add al, 34
not al
neg al
; AL contient le résultat final


Alors que pour la même opération de la "sous-VM2" (mais appartenant à la même VM "mère") on aurait :
Code: Tout sélectionner
mov al, byte ptr [rsi]
xor al, bl
sub al, 23
rol al, 1
add al, 78
; AL contient le résultat final


5) Chaque opération est généralement retranscrite une dizaine de fois pour chaque "sous-VM" (c'est à dire 10 implémentations différentes de VM_POP par exemple)

6) A la fin d'une "sous-VM", il se peut que du code purement x86 soit appelé, ou pas...

7) D'après ce que j'ai constaté, il y a pas mal d'anti-debug tricks à base de NtSetInformationThread et autres fonctions NT qui cachent un flag montrant que le programme tourne sous debugger (là encore, je suis loin, bien loin de tout connaître)

8) J'ai remarqué que l'opération VM_ENTER est toujours placée au même endroit pour chaque "sous-VMs". Ce n'est pas le cas de l'opération VM_LEAVE, du coup il est difficile de déterminer à quel moment une "sous-VM" se termine.

Je m'arrête ici pour le moment, j'ai pas beaucoup plus d'informations. Je n'ai pas analysé en profondeur le dump de chaque "sous-VM", je doute d'ailleurs que les teams qui ont crackées Denuvo ce soient amusées à recréer le code x64 original de chaque VM, ce serait beaucoup trop long.
A mon avis, elles ont simplement patché les X anti-debug tricks et sûrement fait quelques optimisations.

A+ !
eabcdx
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 131
Inscription: 03 Novembre 2012, 14:44

PrécédenteSuivante

Retourner vers Reversing

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot] et 2 invités