begin process at 2012 05 29 05:38:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

Extraction hexadécimale d'un éxécutable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Extraction hexadécimale d'un éxécutable

jeudi 16 juillet 2009 à 11:54:51 | Extraction hexadécimale d'un éxécutable

Nixeus

Bonjour les amis,

Je souhaiterai faire une extraction d'une partie de code, depuis un exécutable , et ce, en c++.

En fait, je possède un exe , qui contient, deux exe en un.
Je connais les adresses de début et de fin.

Je souhaiterai en c++ pouvoir extraire ce "bout de code" de cet exe avec mon adresse de début, et mon adresse de fin, puis en faire un nouvel exécutable.

Avez vous quelques infos à ce sujet ?

Merci bcp :)


Nixeus'

jeudi 16 juillet 2009 à 12:22:42 | Re : Extraction hexadécimale d'un éxécutable

rt15

Membre Club Administrateur CodeS-SourceS

Salut,

Bin pas de difficulté particulière...
En C++ tu peux utiliser un ifstream pour lire et un ofstream pour écrire.

seekg() pour te déplacer au début de l'exe, puis read() dans un buffer de la bonne taille.

Aide de seekg avec exemple ici, aide du reste pas loin.

jeudi 16 juillet 2009 à 14:18:14 | Re : Extraction hexadécimale d'un éxécutable

Nixeus


Merci beaucoup, je regarde cela !

Nixeus'

vendredi 17 juillet 2009 à 12:22:03 | Re : Extraction hexadécimale d'un éxécutable

Nixeus


Bonjour,


Je viens de regarder à cela et en effet cela devrait faire l'affaire. En revanche je cherche un exemple de syntaxe en utilisant des adresses et offset HéxaDécimaux avec Seekg, je n'en trouve pas.

Si je souhaite me positionner à l'adresses 0x000E00A1 :

cela me fera quelquechose, comme ca ?

is.seekg (0x000E00A1);
ou
is.seekg ($00E00A1);

Encore merci :)

Nixeus'

vendredi 17 juillet 2009 à 14:06:46 | Re : Extraction hexadécimale d'un éxécutable
vendredi 17 juillet 2009 à 15:16:10 | Re : Extraction hexadécimale d'un éxécutable

Nixeus



Merci à toi rt15,

La lecture semble mal se dérouler.

En fait ce que je veux c'est lire mon éxécutable courant (mon programme), et extraire une partie du code.
[code]
int length;
char * buffer;
char szExeName[256]; //Buffer qui va contenir le nom du fichier
GetModuleFileName (NULL, szExeName, 256);

ifstream is;
is.open (szExeName, ios::binary );

// Récupère le longeur du fichier
is.seekg (0, ios::end);
length = is.tellg();
is.seekg (0, ios::beg);

// Allouer mémoire pour le buffer
buffer = new char [length];

// Je me positionne, et je lit
is.seekg (0x00000111);
is.read (buffer,85010);
is.close();

ofstream objetfichier;
objetfichier.open("monfichier.exe", ios::out); //on ouvrre le fichier en ecriture
if (objetfichier.bad()) //permet de tester si le fichier s'est ouvert sans probleme
MessageBox("Erreur","ok");
objetfichier <<buffer<< endl;//*
objetfichier.close(); //on ferme le fichier pour liberer la mémoire
delete[] buffer;


[/code]



Au final, mon fichier de sortie " Monfichier.exe" fais 4 octets :(

Aurais tu une piste ? Merci

Nixeus'

vendredi 17 juillet 2009 à 16:04:35 | Re : Extraction hexadécimale d'un éxécutable

rt15

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

C'est qu'il écrit "buffer", donc ton pointeur qui fait quatre octets, pas buffer[0] ->buffer[length], c'est à dire les valeurs pointées.

Fait une boucle ou utilise write.

Petite remarque : inutile d'allouer un buffer plus grand que ce que tu lis.

vendredi 17 juillet 2009 à 16:10:48 | Re : Extraction hexadécimale d'un éxécutable

Nixeus

Merci beaucoup, tout fonctionne avec le write :)


Nixeus'

lundi 20 juillet 2009 à 19:14:20 | Re : Extraction hexadécimale d'un éxécutable

vecchio56

Administrateur CodeS-SourceS

Alors là chapeau si tu arrives a extraire du code C à partir de ton exe, j'aimerais bien savoir comment tu fais.

_____________________________________
Un éditeur de ressources gratuit pour Windows

mardi 21 juillet 2009 à 09:10:17 | Re : Extraction hexadécimale d'un éxécutable

rt15

Membre Club Administrateur CodeS-SourceS

Bah c'est facile avec un décompilateur.

Nan mais en fait, il extrait simplement un .exe d'un .exe.
Genre il a fait :

Code :
copy /B 1.exe+2.exe 12.exe


Et maintenant il veut récupérer 2.exe, pour pouvoir l'exécuter par exemple.



Cette discussion est classée dans : exe, extraction, éxécutable, souhaiterai, hexadécimale


Répondre à ce message

Sujets en rapport avec ce message

modification d'un fichier .exe [ par jackky ] salut je voulais savoir comment faire un fichier .exe en c++(crack) pour changer un saut dans un fichier .exeexemple00401595 7416 je 004015ADCHANGER lance un exe avec des paramètres en c sous nt [ par max ] salut à tousJe voudrais lancé un exe avec des paramètres dans mon fichier C et récuperer l'arret de l'exe.Je voudrais savoir comment faire.merci erreur cl.exe [ par Synhok ] Je suis un programmeur debutant en C++ et j'utilise Visual C++, j'essaie de faire une application toute simple ("Hello World"), il est impossible qu'i creer un .exe qui ouvre une fenetre internet explorer [ par dany ] bonjourj'aimerais avoir le source pour creer un fichier.exe a mettre sur un cd et qui ouvre un fichier .htmen c++ (avec dev-c++)merci d'avance Pb avec Glut sous Visual C++ [ par Yoann ] Bonjour !Je viens de me mettre à OpenGL avec Glut, mais j'ai un petit problème. En effet, quand je compile un exemple, j'ai l'erreur suivante :TestGlu Salut je voudrai savoir comment faire pour lancer une appl. en C/C++ [ par jarodx64 ] comment faire pour lancer une application en C/C++ sur : - Win32: j'ai commencer un programme et je voudrai lancer une application externe Win16/32 (m Lancement d'exe [ par fg ] Je cherche a lancer un .exe créé sous visual C++, à partir d'un autre projet.Merci d'avance C++ recuperer les icones d'un exe ou d'une application [ par rerebozo ] BonjourComment faire pour charger les icones d'une application ou d'un exe Merçi extraction du contour d'une image BMP [ par juliette ] On a une image en noir et blanc et on souhaiterait extraire son contour.Les images sont sous le format BMP.Extraire le contour d'une image consiste à Probleme sur une methode [ par kild ] Bonjourje desire crée un exe ki execute via le choix de l'utilisateur un autre executable dont g po les sources et ki utilise des commandes en ligne d


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,357 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales