Rétro-ingénierie.
|
09-10-2013, 21h20
(Modification du message : 09-10-2013, 21h24 par Kiwazaru.)
Message : #1
|
|
Kiwazaru
![]() Padawan d'un super escargot ![]() Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012 |
Rétro-ingénierie.
Yop tout le monde,
Il y a sûrement des personnes ici qui désirent apprendre l'Assembleur (ASM). Alors les documentations c'est bien, la pratique de crack me/keygen me aussi, mais il m'est venu une idée qui n'est pas nouvelle loin de là, mais qui n'est jusqu'à présent pas utilisé sur le forum. La rétro-ingénierie, oui c'est ça qu'on utilise pour résoudre un keygen me par exemple, le but étant de comprendre le fonctionnement d'un système sans avoir les sources officielles. Le seul bémol de mon point de vue est que les crack me/keygen me sont toujours dans le même style ou bien ne demande pas réellement de savoir traduire le code Assembleur vers un langage haut niveau. Mon idée serait donc d'introduire un genre de "recode moi" si vous voulez, dans des challenges proposé (comme les programmation contre la montre par exemple). Du coup, le but serait de recoder un programme donné en exécutable le plus précisément possible pour retrouver son fonctionnement initial dans un langage plus haut niveau, c'est-à-dire C/C++ pour la généralité d'entre vous je pense, mais tant que ça reste un programme compilé (pas de semi-compilé comme Java ou .NET ça enlève le principe je trouve) c'est accepté. Avec ça, on pourrait apprendre beaucoup de chose en Assembleur notamment les fonctionnement de base que l'ont peut voir comme "lambda" en C par exemple, mais qui l'est moins en Assembleur. Par exemple (j'espère ne pas me tromper): Quand on fait: Code C :
if (telle condition && telle condition) Chaque condition revoit une valeur binaire 0 ou 1. Si la condition est vérifiée, la condition renvoie 1 sinon elle renvoie 0. Le && est au final l'équivalent de & soit d'un ET Logique. Ainsi on peut retraduire le if par: Code C :
if(1 && 1) Ici , 1 AND 1 = 1, notre condition est donc vraie. Quand vous avez compris ça, on peut comprendre qu'en Assembleur cela se traduit par: TEST ?, ? (TEST effectue un ET Logique) qui modifie donc le flag ZF (Zero flag) pour laisser place à un Jump conditionnel ensuite du type JE/JZ/JNZ/JNE. Laissez moi vos avis sur cette proposition !
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
|
|
09-10-2013, 21h53
Message : #2
|
|
supersnail
![]() Éleveur d'ornithorynques ![]() ![]() ![]() ![]() ![]() ![]() ![]() Messages : 1,616 Sujets : 73 Points: 466 Inscription : Jan 2012 |
RE: Rétro-ingénierie.
Ye, ça peut être amusant comme principe (d'ailleurs c'est +/- le principe des keygenme, recoder la routine de génération du serial).
Après c'est sûr que c'est pas très utile si on a un keygenme qui se pète à coup de serial fishing :').
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
09-10-2013, 22h38
Message : #3
|
|
notfound
![]() #!/usr/bin/env bash ![]() Messages : 687 Sujets : 47 Points: 272 Inscription : Sep 2012 |
RE: Rétro-ingénierie.
Pas mal du tout cette idée ! Je trouve ça fun.
|
|
09-10-2013, 23h22
(Modification du message : 09-10-2013, 23h23 par Kiwazaru.)
Message : #4
|
|
Kiwazaru
![]() Padawan d'un super escargot ![]() Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012 |
RE: Rétro-ingénierie.
supersnail : C'est pas exactement ça le keygen me, il faut comprendre une logique parfois aussi, pas simplement recoder le bordel. Là ça serait réellement un programme avec plusieurs notions dedans en fait, comme par exemple ceux qui reversent les drivers pour Linux
![]() Bon là c'est pas des drivers qu'on va demander, pas un programme aussi gros, mais pour les challenges plus complexes, ça pourrait bien être un programme complet ! Un keygen on code l'inverse de l'algorithme du keygen-me parfois par exemple, là ce n'est pas le but recherché. Ici c'est vraiment de recoder le truc presque à l’exactitude ![]()
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
|
|
10-10-2013, 00h07
Message : #5
|
|
Yttrium
![]() Membre actif ![]() Messages : 106 Sujets : 14 Points: 48 Inscription : Jul 2012 |
RE: Rétro-ingénierie.
Je trouve l'idée vraiment intéressant, dans mon cas j'ai souvent essayer de faire cela, mais en codant moi même le programme cible, ce qui enlève tout le gout de la surprise ...
Je suis impatient de voir ce que cela donnera ! |
|
10-10-2013, 19h23
Message : #6
|
|
Kiwazaru
![]() Padawan d'un super escargot ![]() Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012 |
RE: Rétro-ingénierie.
Je vais sûrement proposer un challenge demain ou ce soir mais pas sûr vu que j'ai le PONG à faire
![]() Donc très certainement demain, histoire de voir les retours et si ça intéresse du monde ![]()
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
|
|
11-10-2013, 23h00
Message : #7
|
|
Creepy_p0ney
![]() chef des poneys voodoo ![]() Messages : 146 Sujets : 9 Points: 24 Inscription : Dec 2011 |
RE: Rétro-ingénierie.
Pas mal comme idée !
Penser que coder est coder explique-t-il la recursion ?
http://p0neyland.wordpress.com/ |
|
12-10-2013, 10h29
(Modification du message : 12-10-2013, 10h30 par fr0g.)
Message : #8
|
|
fr0g
![]() NTEuNDI2MzcsLTEuNzc4NDg4 ![]() ![]() ![]() ![]() Messages : 348 Sujets : 22 Points: 56 Inscription : Aug 2011 |
RE: Rétro-ingénierie.
J'adhère au principe , une bonne idée qui te rapporte un pouce vert , merci de ta contribution dude
![]() |
|
12-10-2013, 11h01
Message : #9
|
|
ark
![]() Psyckomodo! ![]() ![]() ![]() ![]() ![]() Messages : 1,033 Sujets : 48 Points: 317 Inscription : Sep 2011 |
RE: Rétro-ingénierie.
Yep, j'aime ce concept, et c'est d'ailleurs pas un exercice facile. Surtout quand il s'agit de reconstruire le fonctionnement d'un programme qui utilise des structures, ca peut prendre la tête un certain bout de temps
![]() |
|
12-10-2013, 13h36
Message : #10
|
|
Kiwazaru
![]() Padawan d'un super escargot ![]() Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012 |
RE: Rétro-ingénierie.
Le projet est en cours d'élaboration. Je posterais un post officiel sur le sujet dans la journée
![]()
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
|
|
« Sujet précédent | Sujet suivant »
|
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)