Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Commande >>> Buffer [ Archives / Au secours ] (Stormy)

lundi 11 avril 2005 à 16:18:54 | Commande >>> Buffer

Stormy

Salut à tous,

Je cherche une solution afin de charger dans un Tampon une suite de commande ASM ou l'ensemble d'un code appartenant à une fonction C (comme avec une fonction strcat par exemple). En d'autres termes, serait-il possible qu'une portion d'un code compilé soit pointé et copié dans un Buffer. Lors du développement, on situe facilement les différents corps, par contre c'est difficile une fois compilé. Je voudrais éviter l'usage d'une espèce de ShellCode en Hexadécimal. Bien qu'il s'agissent d'une fantaisie absolue, je vous livre une explication de ce que je recherche :

char Tampon[MAX];

Fonction Exemple()
{
   Bla Bla Bla;
}

void Main (void)
{
  strcat( Tampon, [code de fonction exemple] );
 
( ( void (*)( void) ) &Tampon )();
  return;
}

Merci à tous ++

lundi 11 avril 2005 à 21:27:17 | Re : Commande >>> Buffer

Arnaud16022

Membre Club
heu... en C++ je vois pas.... je sais meme pas si c'est possible de seulement accéder a l'adresse d'un call
par contre si tu interfaces ton prog principal avec de l'assembleur (que tu peux inclure directement dans ton .cpp) ca doit pouvoir se faire, les commandes asm ca fait 3 bytes en général.(ou 2 ... tu mets tout ton buffer a zéro au début pr pas avoir de pb), tu y accède par leur adresse , tu enregistre le byte correspondant, et puis tu l'éxécute qd tu veux (remarques rien que pour ca, il faudra l'écrire au bon endroit ca doit pas etre de la tarte)
je me renseigne
++
ad



_______________________
Omnia vincit labor improbus

mardi 12 avril 2005 à 09:11:36 | Re : Commande >>> Buffer

BruNews

Administrateur CodeS-SourceS
Salut,

à part écrire le code à récupérer dans un fichier asm, je ne vois pas d'autre solution.
Il faut (offsetFin - offsetDebut) pour avoir la taille de code à mettre dans le buffer, en asm no problème on met un label sous le bloc et on peut calculer aisément. En C c'est obtenir l'offsetFin qui pose problème, on ne sait pas comment le compilo va optimiser et réorganiser le code.
Arnaud16022 > la taille des instructions varie suivant l'instruction et le nbr d'opérandes (de 0 à 3 opérandes).

ciao...
BruNews, MVP VC++

mardi 12 avril 2005 à 13:52:57 | Re : Commande >>> Buffer

Stormy

je m'en doutais sérieusement. Il ne me reste plus que l'ption du traditionnel ShellCode en Hexadécimal (ou AlphaNumérique) dans un Tampon avec un pointeur dessus :
( ( void (*)( void) ) &Tampon )();
.En attendant, merci les gars pour la confirmation. Bon code à tous et ++

mardi 12 avril 2005 à 21:09:14 | Re : Commande >>> Buffer

Arnaud16022

Membre Club
"Arnaud16022 > la taille des instructions varie suivant l'instruction et le nbr d'opérandes (de 0 à 3 opérandes)."
oui je sais que le nbre varie... mais ya quoi comme instruction qui prend 0 parametres?
_______________________
Omnia vincit labor improbus

mardi 12 avril 2005 à 21:46:08 | Re : Commande >>> Buffer

BruNews

Administrateur CodeS-SourceS
RDTSC par exemple, la 1ere qui me vient à l'esprit.

ciao...
BruNews, MVP VC++



Cette discussion est classé dans : buffer, fonction, commande, void, tampon


Répondre à ce message

Sujets en rapport avec ce message

Pb CreateThreadddd !!!!!!!!!!! [ par neub ] Salut à tous, j'ecris un module de visionnement d'image etje souhaiterai pouvoir stopper ma fonction OnPlay au moment voulu mais j'ai un pb a la creat utiliser une fonction d'une lib C dans une classe c++ [ par snook ] Bonjour,j'aimerais savoir comment doit on proceder pourappeler une fonction d'une librairie ecrite en C dansmon programme C++?exemple: ma lib possede allegro+probleme de creation de buffer dans une fonction [ par xboxut ] salut je suis en train de monter mon moteur 2D avec allegro et j ai un bleme au niveau d une fonction.void buffscroll(BITMAP *bmp) //la c la fonction ecrire dans un fichier [ par bellionl ] salut,voila depuis une semaine je tente de conprendre le c++ avec borland c++ builderle problème est quand je veut écrire dans un fichier.création du fonction signal en C++ sous unix (g++) [ par seblegaulois ] Bonjour,En c, j'arrive à faire :void toto(int) {...}...signal(SIGUSR2,toto);Et en C++, je n'y arrive pas, j'ai fait :class toto {...void toto(int) { . Pointeur sur fonction envoyé par dll [ par MoDDiB ] Voila ce que j'ai fais mais ca ne marche pas :Dll :#include BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){ retu CDialog + Sockey ? [ par mickeydisn ] je suis entrin de realiser une application un a serveur Socket en Consol . L'application console pas de PB . Le clien j'ai cree une forme avec un edit Pointeur vers une fonction dans une classe ... [ par MoDDiB ] Supposons que j'ai la fonctionvoid Fonction(int test,int t);appartenant a la classe Cclass.Quelle est la syntaxe pour creer un pointeur vers cette fon variable globale ou non [ par fcbouan ] quel es la bonne approche , utiliser par exemple une variable globale de buffer gMonbuffer[TAILLE] et l utiliser dans une fonction ( ecriture dans un RS232 [ par th62d ] Bonjour,J'essaie de faire communiquer mon pc via le port serie RS232.....Quand je lance le programme TestCOM.c j'ai l'erreur suivante à la compilation


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.