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 >> Sys Linux Crackme... besoin d'aide Newtopic | Reply
poster txt
sirius_black
Inscrit le 05-07-2003
Avatar
Posté le 06-12-2005 00:42

Le crackme se trouve ici :
http://crackmes.de/users/nobody/sys_linux_crackme/

bon c'est un crackme linux pour débutant (faut bien un début à tout)... mais finalement je l'ai trouvé assez long à étudier :/
en tout cas j'aurais perdu beaucoup de temps à essayer de réverser l'algo alors qu'il faut faire un brute force

je pense être tout prêt de la solution mais mon brute force me donne une tonne de solutions possibles... donc j'aimerais bien un peu d'aide pour comprendre où ça merde...

Il y a bien une solution pour le crackme mais j'aurais préféré quelque chose de plus... en C quoi

je me suis servi de disasm.pl comme désassembleur (faudra que je teste HT...)

j'ai mis un output commenté du code ici :
http://cjoint.com/data/mgaT2pyXAc.htm

et mon brute force ça donne ça :

Code:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char *argv[])
{
unsigned int x,a,b,c,d,e;

for(x=0;x<=0xffffffff;x++)
{
a = x & 0x00ff0000;
b = x ^ 0x000f0f0f;
c = x & 0x0000ff00;
d = x ^ 0x00f0f0f0;
e = x & 0x000000ff;
b+=e;
a+=0xff9f0000;
e = e | 0x00000037;
d+=0x45;
c+=0x1f00;
e=e/0x11;
c = c ^ 0x00001e00;
b = b ^ c;
a = a ^ 0x00150000;
e+=c;
a = a ^ e;
if(a==0x00070707)
{
printf("Resultat: %x\n",x);
}
}
return 0;
}



est-ce que ça peut venir de la division en C ?
je me suis cassé les yeux dessus et je vois pas trop où ça merde...
merci pour votre aide
_________________________
d4 n3wS
profil | mail | Website | edit | quote
o.O
Inscrit le 10-07-2004
Avatar
Posté le 06-12-2005 01:26

d'après le disassembly de mattwood du site j'ai l'impression que tu t'es au moins trompé sur
Code:

d+=0x45;
c+=0x1f00;


profil | mail | Website | edit | quote
sirius_black
Inscrit le 05-07-2003
Avatar
Posté le 06-12-2005 01:38

Code:
andl    $0x45,d
andl $0x1f00,c



je dirais que non... ou alors suis bigleux.. ou trop fatigué
_________________________
d4 n3wS
profil | mail | Website | edit | quote
Aegis
Inscrit le 19-05-2003
Avatar
Posté le 06-12-2005 01:42

T'es bigleux sirius
C'est pas un add mais un and
_________________________

profil | mail | Website | edit | quote
sirius_black
Inscrit le 05-07-2003
Avatar
Posté le 06-12-2005 01:47


on va mettre ça sur le compte de la fatigue... j'aime pas avouer que mes yeux ont perdu de leur capacité à force de rester devant un écran

bon c'est pas vraiment mieux... je verrais ça demain je crois

_________________________
d4 n3wS

[ Ce Message a été édité par: sirius_black le 2005-12-06 01:50 ]
profil | mail | Website | edit | quote
sirius_black
Inscrit le 05-07-2003
Avatar
Posté le 06-12-2005 17:12

bon j'ai pas tout capté... j'entre un code il marche pas... je comprends pas pourquoi...
alors je trace tous les calculs avec gdb avec le même code... arrivé au boût ça marche...

maintenant chaque résultat du brute force a l'air de fonctionner... ce qui fait quand même une tonne de résultats possibles...

revoilà mon code final :
Code:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char *argv[])
{
unsigned int x,a,b,c,d,e;

for(x=0;x<=0xffffffff;x++)
{
a = x & 0x00ff0000;
b = x ^ 0x000f0f0f;
c = x & 0x0000ff00;
d = x ^ 0x00f0f0f0;
e = x & 0x000000ff;
b+=e;
a+=0xff9f0000;
e = e | 0x00000037;
d = d & 0x00000045;
c = c & 0x00001f00;
e=e/0x11;
c = c ^ 0x00001e00;
b = b ^ c;
a = a ^ 0x00150000;
e+=c;
a = a ^ e;
if(a==0x00070707)
{
printf("Resultat: %x\n",x);
}
}
return 0;
}



je dois vraiment être bigleux ou alors faudra que j'essaye avec la lumière allumée
ça m'aura pris du temps quand même :/
_________________________
d4 n3wS
profil | mail | Website | edit | quote
Newtopic | Reply

Online : AmeliaMaW, CraigCOG, Jamesfulse, Jeffreylib, JeffreyOwert, marco1902, MichaelFoP, Robertvioms et 96 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