Asm dans prrogramme c

Résolu/Fermé
chuko - 4 juil. 2008 à 18:14
 tata - 9 févr. 2009 à 10:36
Bonjour,a tous ma question et simple comment faire executer du code asm en l'occurence un sehll code dans un programme c .Quel fonction ou commande doije utiliser car je copier le shellcode dans un buffer mais je voudrai que ce dernier soit executer y a til un moyen de le faire par exemple ave eip?merci d'avance

2 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
4 juil. 2008 à 18:26
Salut,

Oui tu peux sauter dedans comme si c'était une fonction.
Si ton buffer de shellcode est le suivant: char *shellcode;

Alors tu prépares un pointeur de fonction basique qui ne prend pas d'argument et qui ne retourne rien, tu le fais pointer vers ton buffer puis tu l'executes:
typedef (void)(*typefuncvoid)(void);
typefuncvoid ptrfunc = (typefuncvoid) shellcode;
ptrfunc(); //Appel du code dans le buffer

L'inconvénient c'est comme c'esst un appel de fonction, tu fais un call, donc en plus de sauter dans le shellcode, tu push aussi eip dans la pile mais ça n'a pas beaucoup d'importance...
1
merci beaucoup aurai du y pense merci encore de ton aide
0
Salut dsl de faire remonter ce topic mais sinon pour executer un shellcode il y a plus simple:


char shellcode[] = "[ici ton shell]";

asm("jmp %esp");



voici un petit site sur des exemples de shellcode http://www.shell-storm.org/asm/

coridalement,
0