#SoH on irc.geeknode.org
Vous n'êtes pas identifié.
Langage: C
Système: FreeBSD
Plop les gens.
Que je vous explique la chose ![]()
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 :
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.
Hors ligne
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.
Hors ligne
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.
Hors ligne