Spirit Of Hack

#SoH on irc.geeknode.org

Vous n'êtes pas identifié.

Annonce

Ouverture du wiki SoH, Contactez-nous pour toute remarque :)

#1 21/06/2010 12:36:30

dilem
Membre
Date d'inscription: 11/11/2008
Messages: 274

Calcul d'un hash MD5 ou autre en C

Langage: C
Système: FreeBSD

Plop les gens.

Que je vous explique la chose smile

En gros, je suis en train de dev une appli en C / SDL pour les cours. Cette appli doit afficher un popup en SDL. Etant donné que de base, la SDL ne le permet pas, j'ai fait deux binaires. Le premier étant mon application en elle même, le second étant juste une initialisation de la SDL + la création d'une fenêtre de 250 x 100 px (le popup quoi).

Quand j'ai besoin d'appeler le binaire qui fait le popup, j'utilise un execve en lui donnant comme paramètre le binaire qui s'occupe du popup, ainsi qu'une chaine de caractères qui sera le message à afficher dans le popup.

Bien, ça fonctionne, cependant, au niveau de la sécurité, c'est moyen. Si une personne remplace mon ./popup avec un system("/bin/sh"); il récupère un shell avec les privilèges de l'utilisateur qui a lancé le premier programme.

Je souhaite donc faire ceci :

Code:

Appel_popup:
          Si md5(./popup) == "Chaine hardcodé"
               exec("./popup", "chaine de caractère a afficher dans le popup")
          Sinon
               exit(EXIT_FAILURE)

Ma question étant : La fonction md5 (ou autre fonction de hashage) est-elle présente de base dans la libc. Je ne trouve rien d'autre que la fonction crypt(), et elle ne fait pas du tout ce que je veux (normal, spa son utilité).

Merci d'avance.


http://webdilem.com

Hors ligne

#2 21/06/2010 23:02:54

berga
Administrator
Date d'inscription: 10/01/2008
Messages: 221
Site web

Re: Calcul d'un hash MD5 ou autre en C

L'algorithme md5 n'est pas lourd et libre, tu devrais facilement en trouver des implémentations en C. Il existe également des bans de tests officiels te permettant de vérifier ton implémentation.

Pour ce qui est de ta solution, attention : une chaîne codée en dur, c'est potentiellement une chaîne modifiable en éditant ton bianire avec un simple éditeur hexadécimal par exemple.


Toute science est essentiellement un moyen vers un but.
Le moyen est la connaissance, le but est le contrôle.
Au delà de ceci demeure une seule question: Qui sera le bénéficiaire?

Hors ligne

#3 22/06/2010 03:12:54

dilem
Membre
Date d'inscription: 11/11/2008
Messages: 274

Re: Calcul d'un hash MD5 ou autre en C

Yes, totalement d'accord avec toi, mais là, c'est juste pour passer une soutenance pour le projet. C'est de brutes, mais surtout des feignasses les mecs qui nous corrige. Donc aucun souci la dessus. Mais oui, j'y avais effectivement pensé.

Ouais, ça me faisais un peu chié d'avoir l'implémentation complète de md5 dans le projet. Ils vont me prendre la tête en me sortant que j'utilise un bazooka pour flinguer une mouche. Donc j'aurais adoré avoir un petit truc tout prêt :p

Mais merci pour le reply.


http://webdilem.com

Hors ligne

Pied de page des forums

© Copyright 2002–2005 Rickard Andersson