logo Homepage
+  NewbieContest
|-+  Programmation» Langages compilés» Beware of the movfuscator!
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: Beware of the movfuscator!  (Lu 7211 fois)
Pech
Profil challenge

Classement : 34/54280

Membre Junior
**
Hors ligne Hors ligne
Messages: 83


Voir le profil
« le: 22 Juin 2015 à 17:16:23 »

(désolé pour le titre tout pourri :$)

Je viens de tomber sur un outil assez rigolo : c'est un "compilateur" qui transforme du brainf**k en assembleur qui a la particularité de n'utiliser (presque) que des "mov".
Bon, soyons honnêtes, ça n'a pas d'utilité en pratique (je sais, je ne serais pas très bon en tant que commercial ^^) mais c'est original.

Il y a un GitHub : https://github.com/xoreaxeaxeax/movfuscator
Vous y trouverez des slides (beaucoup) qui expliquent le pourquoi du comment ça fonctionne.
Pour ceux qui veulent se frotter au résultat final, il y a aussi un crackme.

Si vous voulez juste un petit aperçu du résultat (le début de la section .text du crackme en question) :

Code:
08048230 <.text>:
 8048230:       a1 b0 1c 0e 08          mov    0x80e1cb0,%eax
 8048235:       8b 04 85 a4 1c 0e 08    mov    0x80e1ca4(,%eax,4),%eax
 804823c:       c7 00 01 00 00 00       movl   $0x1,(%eax)
 8048242:       c7 05 b0 1c 0e 08 00    movl   $0x0,0x80e1cb0
 8048249:       00 00 00
 804824c:       a1 a0 1c 0e 08          mov    0x80e1ca0,%eax
 8048251:       a3 94 1c 0d 08          mov    %eax,0x80d1c94
 8048256:       b8 9c 1c 0e 08          mov    $0x80e1c9c,%eax
 804825b:       8b 15 ac 1c 0e 08       mov    0x80e1cac,%edx
 8048261:       a3 c4 1c 0e 08          mov    %eax,0x80e1cc4
 8048266:       8b 04 95 c0 1c 0e 08    mov    0x80e1cc0(,%edx,4),%eax
 804826d:       8b 15 9c 1c 0e 08       mov    0x80e1c9c,%edx
 8048273:       8b 92 c8 ff fe ff       mov    -0x10038(%edx),%edx
 8048279:       89 10                   mov    %edx,(%eax)
 804827b:       a1 9c 1c 0e 08          mov    0x80e1c9c,%eax
 8048280:       8b 15 ac 1c 0e 08       mov    0x80e1cac,%edx
 8048286:       a3 c4 1c 0e 08          mov    %eax,0x80e1cc4
 804828b:       8b 04 95 c0 1c 0e 08    mov    0x80e1cc0(,%edx,4),%eax
 8048292:       8b 15 94 1c 0d 08       mov    0x80d1c94,%edx
 8048298:       89 10                   mov    %edx,(%eax)
 804829a:       89 f8                   mov    %edi,%eax
 804829c:       a3 94 1c 0d 08          mov    %eax,0x80d1c94
 80482a1:       b8 9c 1c 0e 08          mov    $0x80e1c9c,%eax
 80482a6:       8b 15 ac 1c 0e 08       mov    0x80e1cac,%edx
 80482ac:       a3 c4 1c 0e 08          mov    %eax,0x80e1cc4
 80482b1:       8b 04 95 c0 1c 0e 08    mov    0x80e1cc0(,%edx,4),%eax
 80482b8:       8b 15 9c 1c 0e 08       mov    0x80e1c9c,%edx
 80482be:       8b 92 c8 ff fe ff       mov    -0x10038(%edx),%edx
 80482c4:       89 10                   mov    %edx,(%eax)
 80482c6:       a1 9c 1c 0e 08          mov    0x80e1c9c,%eax
 80482cb:       8b 15 ac 1c 0e 08       mov    0x80e1cac,%edx
 80482d1:       a3 c4 1c 0e 08          mov    %eax,0x80e1cc4
 80482d6:       8b 04 95 c0 1c 0e 08    mov    0x80e1cc0(,%edx,4),%eax
 80482dd:       8b 15 94 1c 0d 08       mov    0x80d1c94,%edx
...

--
EDIT :
Je viens de tomber sur un wiki avec d'autres détails. Entre autres, ainsi que dionosis l'avait pressentit ça se décode facilement. => http://wiki.yobi.be/wiki/MoVfuscator_Writeup
Pour ceux qui se demandent comment je trouve des trucs pareils, c'est entre autres sur Reddit : http://www.reddit.com/r/ReverseEngineering/
« Dernière édition: 10 Août 2015 à 17:27:52 par Pech » Journalisée
pixis
Administrateur

Profil challenge

Classement : 16/54280

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 664


Voir le profil WWW
« #1 le: 22 Juin 2015 à 19:38:33 »

Ça aurait fait une belle épreuve (ou pas) ! Rigolo le concept. Ya vraiment des gens tordus
Journalisée

Newbie Contest Staff :
Pixis
Statut :
Administrateur
Blog :
hackndo
Nodulaire

Profil challenge

Classement : 489/54280

Néophyte
*
Hors ligne Hors ligne
Messages: 20

Troll Harder, live longer


Voir le profil
« #2 le: 23 Juin 2015 à 14:54:47 »

Génial comme concept  ! 
J'ai déjà une idée d'application du principe. Les forensics risquent de piquer 
Journalisée
dionosis

Profil challenge

Classement : 29/54280

Membre Junior
**
Hors ligne Hors ligne
Messages: 94


Voir le profil
« #3 le: 26 Juin 2015 à 13:12:37 »

Salut,

Intéressant, merci pour l'info.

En revanche faut voir ce que ça donne côté perfs, à mon avis (sans avoir testé !) c'est vraiment très loin d'être satisfaisant.
Par contre pour offusquer un petit bout de code ça peut être pas mal. A voir parce que sans junk ça doit se décoder relativement facilement vu que les paterns ont l'air suffisamment explicites.

En attendant la première chose à laquelle ça m'a fait penser c'est ça :
https://www.youtube.com/watch?v=Dyx4v1QFzhQ

++
Journalisée
Pech
Profil challenge

Classement : 34/54280

Membre Junior
**
Hors ligne Hors ligne
Messages: 83


Voir le profil
« #4 le: 29 Juin 2015 à 12:43:17 »

L'auteur de ce concept bizarre le confirme à la fin des slides : niveau perfs c'est catastrophique.
Vu la quantité d'instructions que ça ajoute, c'est clairement pas destiné à une utilisation IRL.
Sauf peut-être, ainsi que tu le dis, l'appliquer sur un petit bout de code.
Quant à la désobfuscation, aucune idée, je n'y ai pas du tout réfléchi.

En attendant la première chose à laquelle ça m'a fait penser c'est ça :
https://www.youtube.com/watch?v=Dyx4v1QFzhQ
Je l'avais pas entendue depuis longtemps celle-là et ça me manquais pas du tout.
=> je te déteste
Journalisée
dionosis

Profil challenge

Classement : 29/54280

Membre Junior
**
Hors ligne Hors ligne
Messages: 94


Voir le profil
« #5 le: 01 Juillet 2015 à 13:02:01 »

Salut,

Citation de: Pech
L'auteur de ce concept bizarre le confirme à la fin des slides : niveau perfs c'est catastrophique.
Ok, merci pour la précision (j'avoue que je n'ai pas encore pris le temps de les lire même si ça se fera bientôt).

Citation de: Pech
Je l'avais pas entendue depuis longtemps celle-là et ça me manquais pas du tout.
=> je te déteste

T'es pas le seul apparemment parce qu'elle n'est plus dispo à l'heure qu'il est.

++
Journalisée
Pech
Profil challenge

Classement : 34/54280

Membre Junior
**
Hors ligne Hors ligne
Messages: 83


Voir le profil
« #6 le: 01 Juillet 2015 à 15:05:55 »

Salut,

Citation de: Pech
L'auteur de ce concept bizarre le confirme à la fin des slides : niveau perfs c'est catastrophique.
Ok, merci pour la précision (j'avoue que je n'ai pas encore pris le temps de les lire même si ça se fera bientôt).

Je te conseille de lire avant le papier "mov is Turing-complete" (dans les références) parce que sinon les slides seront peut-être durs à digérer... (ils sont très minimalistes niveau explications)
Bon après je dis ça mais je n'ai pas essayé sérieusement de les comprendre (sérieusement = ailleurs qu'au taf que chez moi )
Journalisée
dionosis

Profil challenge

Classement : 29/54280

Membre Junior
**
Hors ligne Hors ligne
Messages: 94


Voir le profil
« #7 le: 01 Juillet 2015 à 20:39:38 »

Salut,

Yep, merci !
C'est justement par là que j'ai prévu de commencer.

++
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: