logo

Knowledge Is Power

 
 

- Reinit des nouveaux posts -

- Recherche -

Messages Privés - Derniers posts
S'enregistrer - Login - Liste des membres
Vous logger : Login Pass

Reverse Engineering >> [Niv 1 - Resolu] **Reverse Me 1** par Kharneth Newtopic | Reply
1 | 2 | Page suivante
poster txt
Kharneth
Inscrit le 22-07-2004
Posté le 26-08-2004 15:12

Salut!

Voici un type d\'exercice différent des habituels crackme.
Ici, une parfaite compréhension du code est primordiale, ce qui implique de savoir programmer un minimum, de connaitre les apis windows et bien sûr l\'assembleur!
Le but est de modifier ou d\'ajouter des fonctionnalités à un programme.

On commence donc en douceur avec un petit crackme à modifier:
http://kharneth.free.fr/NewFFR/ReverseMe.zip

Le programme affiche d\'abord une MsgBox puis demande un mot de passe. (Bref un crackme classique quoi!:p)
Le but est de supprimer toutes les MsgBox et de faire en sorte que le programme affiche le bon serial dans le champ texte lorsque l\'on click sur le bouton.
Les plus motivés d\'entre vous peuvent faire en sorte que le bon serial s\'affiche dans le champ texte dès le lancement du programme.

Je ne veux pas de mot de passe écrit en clair dans le code.
La routine de cryptage est extrèmement simple mais on va dire, pour l\'exercice, qu\'on a la flemme de calculer. C\'est pour ça qu\'on veut modifier le programme, pour qu\'il nous décrypte le mot de passe!

Tout ce dont vous avez besoin est votre Debugger préféré, voire un éditeur hexa si la fonction n\'est pas présente dans le debugger.

Voilà, j\'espère avoir été assez clair, si vous n\'avez pas compris quelque chose, si vous avez besoin d\'informations, n\'hésitez pas à demander!!

Ceux qui savent coder avec les apis devraient y arriver facilement, les autres... Ben il serait tant de s\'y mettre!!

Amusez-vous bien![ Ce Message a été édité par: Kharneth le 2004-08-26 15:14 ]

[ Ce Message a été édité par: elooo le 2004-08-29 15:29 ]
profil | Website | edit | quote
hyatus
Inscrit le 25-08-2001
Avatar
Posté le 26-08-2004 15:41

merci je m\'ennuyais justement
_________________________
Car la liberte n'est pas un Droit mais un Devoir, et que le savoir apporte la Liberte,alors la TAZ est ce qu'elle est, le reflet de la societe qui nait de ce qu'elle sait... ( hyatus copyleft )
profil | mail | Website | edit | quote
elooo
Inscrit le 19-05-2003
Avatar
Posté le 26-08-2004 16:11

Je t\'envois un lien vers ma solution en mp Kharneth.
Je matterai ce soir après le taf pour la version qui s\'affiche direct au lancement et pas en cliquant sur Valider

Là je file je suis à la bourre

----- edit -----
AH tiens je viens de voir un bug, si tu cliques plein de fois à la suite sur Valider, après ça foire :> Ca marche que la 1ere fois pour la solution que je t\'ai envoyée... je corrigerai ça ce soir aussi

[ Ce Message a été édité par: elooo le 2004-08-26 16:17 ]
profil | mail | Website | edit | quote
DooMeeR
Inscrit le 14-08-2004
Avatar
Posté le 26-08-2004 16:27

J\'v m\'y mettre, j\'ai jamais fait de reverse ça pourrait être intéressant J\'ai pas entièrement compris les règles (pas de sérial en clair?... que le programme nous décrypte le mot de passe?... je crois voir ce que tu veux dire; ça implique entre autres qu\'on n\'a pas le droit de mettre notre propre sérial? ) mais c pas grave

J\'ai aussi un 3e crackme de prêt mais on va attendre un peu ^^
_________________________
DooM shall never die, only the players. ©Ray Davis
profil | Website | edit | quote
Kharneth
Inscrit le 22-07-2004
Posté le 26-08-2004 16:29

Pour le bug c\'est normal puisque la chaine est cryptée à chaque fois donc c\'est pas vraiment un bug! Une fois que t\'as le passe c\'est fini

Quote:

elooo a écrit :
...je sens que je vais etre bien nulle sur des ReverseMe...



Alors tu vois que c\'était pas compliqué!!!
Alala... Quelle défaitiste c\'te meuf!


DooMeeR :
Disons que tu as un crackme classique avec un mot de passe à trouver. Ce mot de passe est crypté et pour ne pas s\'embêter à faire les calculs, on modifie le programme pour qu\'il décrypte le serial!

EDIT2:
Pour ceux qui n\'auraient pas compris le principe de l\'exercice, voici un exemple concret (Bien que le crackme de l\'exemple soit plus complexe):
http://kharneth.free.fr/_Tutorials_/crackme_jB_01/crackme_jB_01.htm


[ Ce Message a été édité par: Kharneth le 2004-08-26 16:44 ]
profil | Website | edit | quote
DooMeeR
Inscrit le 14-08-2004
Avatar
Posté le 26-08-2004 18:54

Ok, bon bah j\'ai réussi le \"mode facile\" (cliquer sur valider affiche le pass dans l\'edit, et le message du début n\'apparaît pas). Enfin si j\'ai bien compris ce qu\'il fallait faire ^^
C\'était pas si dur, par contre c\'est normal qu\'olly s\'emmele les pinceaux dans les patchs? Je veux dire, il rassemble les différents patch sans demander et sans logique apparente, et parfois on patch et il oublie de noter le patch qq part (du coup faut le réécrire à chaque fois)

Autre questions sous olly: comment on fait pour ajouter un call d\'une api facilement? Là j\'ai dû aller regarder plus loin dans le prog pour chercher l\'adresse de l\'api dont j\'avais besoin ^^
_________________________
DooM shall never die, only the players. ©Ray Davis
profil | Website | edit | quote
Kharneth
Inscrit le 22-07-2004
Posté le 26-08-2004 19:55

Oui cet exercice est plus une introduction au Reverse qu\'un véritable défi. Juste histoire de bien comprendre le principe!
De plus, afficher le pass dès le début n\'est pas vraiment plus compliqué! C\'était juste pour proposer un truc de plus!

Donc ta solution n\'est pas mal, DooMeeR \"Le roi du NOP\"!

Je ne comprend pas bien ton histoire de pinceaux mais lorsque tu patches, c\'est seulement en mémoire. Donc il faut modifier les octets à chaque nouveau chargement du programme. Pour que ce soit permanent (enregistrer dans le fichier), il faut faire :
Click droit --> \"Copy to executable\" --> \"All modification\" --> \"Copy All\"
Dans la nouvelle fenêtre: Click droit --> \"Save file\".

Ctrl+N et tu as les adresses de toutes les apis importées par le programme. Donc il suffit de faire un Call \"adresse\".
profil | Website | edit | quote
DooMeeR
Inscrit le 14-08-2004
Avatar
Posté le 26-08-2004 19:58

Oui je sais comment enregistrer les modifications, c\'est juste que dans la fenêtre patch, si j\'ai patché 10 fois par exemple, ben j\'ai que 4 lignes dans la fenêtre patch.
Par exemple la 1ere ligne correspond à 3 de mes patchs regroupés, la 2e à 2, la 3e à 1 et la 4e à 2. Donc reste 2 modifs qui sont pas affichées et donc qui disparaissent dès que je recharge l\'exe (les autres j\'ai juste à faire \"espace\" pour chaque ligne de la fenêtre \"patch\")

Sinon merci pour Ctrl+N

Et j\'avous que j\'aime bien nopper ce qui m\'em...bête ^^
_________________________
DooM shall never die, only the players. ©Ray Davis
profil | Website | edit | quote
Kharneth
Inscrit le 22-07-2004
Posté le 26-08-2004 20:09

Merci à toi!!
Je ne connaissais pas la fenêtre patch!!
Je sais pas pourquoi, je l\'ai zappée!
profil | Website | edit | quote
elooo
Inscrit le 19-05-2003
Avatar
Posté le 26-08-2004 21:25

Je te mets ma 2eme solution en mp Kharneth : le pass s\'affiche au lancement et comme le bouton Valider servait plus à rien j\'en ai fait un bouton Quitter
profil | mail | Website | edit | quote
DooMeeR
Inscrit le 14-08-2004
Avatar
Posté le 28-08-2004 01:48

Ben moi j\'ai remplacé le bouton valider par... un appel à la fenêtre \"bravo\" Mais sans tester le pass Pas très propre mais c déjà ça ^^ C\'est amusant à faire J\'v ptet rédiger une solution ^^

_________________________
DooM shall never die, only the players. ©Ray Davis

[ Ce Message a été édité par: DooMeeR le 2004-08-28 01:49 ]
profil | Website | edit | quote
randiox
Inscrit le 20-05-2003
Posté le 29-08-2004 10:50

Salut, ben j\'ai envoyé a Karneth un solution, (2 en fait), la plus aboutie affiche le Sérial au démarrage, en réutilisant la routine de du programme.
J\'imagine que c\'est ce que tu voulais Kharneth.

Ben voilà c\'est en MP

++
_________________________

profil | edit | quote
OllyView
Inscrit le 26-08-2004
Posté le 29-08-2004 11:28

ben moi j\'ai fais ce qui était demandé, sans +
-> en MP
profil | Website | edit | quote
Kharneth
Inscrit le 22-07-2004
Posté le 29-08-2004 12:37

Salut!
Je suis content de voir que cet exercice a intéressé plusieurs personnes!
J\'ai donc une excellente solution de elooo
un tut de DooMeeR
un tut de randiox
et OllyView doit corrigé un petit truc pour que ce soit bon.
Dès que c\'est fait, je poste les solutions.
Ceci n\'était qu\'une introduction, un premier défi devrait arriver rapidement.
Merci à tous les participants!


----
On ne peut pas éditer le titre du post? Ni les précédents messages?

[ Ce Message a été édité par: Kharneth le 2004-08-29 12:39 ]
profil | Website | edit | quote
Kharneth
Inscrit le 22-07-2004
Posté le 29-08-2004 15:08

Bon ben apparemment, je ne peux pas éditer mon message alors j\'en poste un nouveau!!

Donc voici les solutions:
http://kharneth.free.fr/NewFFR/SolutionsReverseMe01.zip

Merci à elooo, DooMeeR, Randiox et OllyView.

To be continued...
profil | Website | edit | quote
elooo
Inscrit le 19-05-2003
Avatar
Posté le 29-08-2004 15:33

Cool
Non Kharneth tu ne peux pas éditer le titre du 1er post ni tes anciens messages (enfin y\'a un time-limit qui t\'interdit l\'édition au bout d\'un moment :> )
Je m\'en suis chargée Si tu voulais faire autre chose, demande
profil | mail | Website | edit | quote
Kharneth
Inscrit le 22-07-2004
Posté le 30-08-2004 08:30

Ok ben on fera sans!
Merci elooo, c\'est parfait!
profil | Website | edit | quote
OllyView
Inscrit le 26-08-2004
Posté le 30-08-2004 16:30

Merci pour ce petit reverse-me

Je trouve ca sympa (surtout que c\'est le premier reverse-me que je fais) Et puis ca aide bien a comprendre l\'asm

Si t\'en a d\'autres du meme style ...
profil | Website | edit | quote
Chalk
Inscrit le 14-07-2004
Posté le 20-01-2005 15:49

J'ai un pti pb ...
Comment on enregistre les changements que l'on fait par exemple dans la partie ressource de la mémoire ?
Parce que les changements sur le code avec copy to executable ca marche mais là j'ai pas trouvé ...
Sinon c'est sympa le reverse
profil | Website | edit | quote
elooo
Inscrit le 19-05-2003
Avatar
Posté le 21-01-2005 03:16

Tu sélectionnes dans ton dump mémoire la partie que tu as modifiée, tu fais clique-droit sur la fenetre de dump -> copy to executable. Ca doit marcher
_________________________

profil | mail | Website | edit | quote
Newtopic | Reply 1 | 2 | Page suivante

Online : bafRaste, Carolbiada, Charlesspoon, Deedslecy, DennyPoits, egecoowasa, eifyekoremo, eikoolevuha, ezinuxux, HamidHes, ikjgowly, ixozamoceu, LeifLido, Maistbads, MusJouppynime, nwtRaste, RicardoSance, sbhuNavy, SonjaOrigh, ubenufo, useguete, uvijivalumih, varaben, Viesinvign, WalterFlozy, Zeraoptocoupt et 55 Guests


Retour Index NewFFR Repository : http://taz.newffr.com
Cagades à Stick : http://alcane.newffr.com
Forum HTML et Archive -> ici
ForumFR Sql/Xml (2006/04) (SF pas à jour du tout...) - Alive since 2001 Newffr.com
Pour toute plainte ou problème -> Contacter Borax, Hyatus, Tweakie ou Stick par message privé (ou Gueulez sur le forum :) )
Retour haut de page