Bonjour à tous!
J'aimerais savoir s'il était possible de récuperer l'environnement exact dans lequel un executable fait en C++Builder a été developpé. En gros, le code de l'executable.
Merci à vous!
Bonjour à tous!
J'aimerais savoir s'il était possible de récuperer l'environnement exact dans lequel un executable fait en C++Builder a été developpé. En gros, le code de l'executable.
Merci à vous!
Salut peut-être que se site peut t'aider, il parle des désassembleurs: http://fr.wikipedia.org/wiki/D%C3%A9sassembleur
- Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
- Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
- Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon
Bonjour,
Apprends d'abord ce qu'est un désassembleur (lien indiqué par Crayon). Le soucis c'est que le code généré est de l'assembleur qui reste incompréhensible vu que C++ est un langage haut niveau. Si tu connais l'asm, le code permet de comprendre le comportement en général du programme mais pas de connaître le code exact.
Ce que tu cherches est donc un décompilateur qui traduit un .exe en son code d'origine, si le prog a été écrit en C++, on doit le traduire en C++ pour avoir la traduction la plus appropriée mais que je pense qu'à 50 % identique:
Delphi to C++ Builder 1.5: http://www.cleansofts.com/softdownlo...C_Builder.html
Ce lien peut être mort mais je te conseille dans ce cas de chercher un décompilateur gratuit sur google.
randriano.dvp.com
Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).
Bonjour
le décompilateur décrit dans le post précédent <Delphi and C++Builder Decompiler 2.56 n'a guerre d'utilité
en effet il n'est capable que de sortir uniquement les appels de fonctions de visibilité __published: // IDE-managed Component exemple
toutes les membres Privé sont ignorés de même que les classes et fonctions non VCL
Ex:
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 //extrait du .H #ifndef Unit3H #define Unit3H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <CheckLst.hpp> #include <Buttons.hpp> #include <ComCtrls.hpp> #include <Menus.hpp> #include <ThemeMgr.hpp> //--------------------------------------------------------------------------- class TForm3 : public TForm { __published: // IDE-managed Components TCheckListBox *Clb; TGroupBox *GroupBox1; TBitBtn *BitBtn1; TBitBtn *BitBtn2; TBitBtn *BitBtn3; TStatusBar *StatusBar1; TGroupBox *GroupBox2; TEdit *Edit1; TSpeedButton *SpeedButton1; TLabel *Label1; TLabel *Label2; TLabel *Label3; TMainMenu *MainMenu1; TMenuItem *Aide1; TMenuItem *AProposde1; TMenuItem *Configuration1; TMenuItem *Ouvrir1; TMenuItem *Sauvegarder1; TMenuItem *N1; TMenuItem *Quitter1; TThemeManager *ThemeManager1; TMenuItem *ChoixRepertoire1; void __fastcall Button1Click(TObject *Sender); void __fastcall FormDestroy(TObject *Sender); void __fastcall Button2Click(TObject *Sender); void __fastcall SpeedButton1Click(TObject *Sender); void __fastcall AProposde1Click(TObject *Sender); void __fastcall Quitter1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm3(TComponent* Owner); }; //--------------------------------------------------------------------------- // le .cpp #include <vcl.h> #pragma hdrstop #include "Unit3.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm3 *Form3; //--------------------------------------------------------------------------- __fastcall TForm3::TForm3(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm3::Button1Click(TObject *Sender) { // Address $401BD0 } //--------------------------------------------------------------------------- void __fastcall TForm3::FormDestroy(TObject *Sender) { // Address $4020F8 } //--------------------------------------------------------------------------- void __fastcall TForm3::Button2Click(TObject *Sender) { // Address $402230 } //--------------------------------------------------------------------------- void __fastcall TForm3::SpeedButton1Click(TObject *Sender) { // Address $402238 } //--------------------------------------------------------------------------- void __fastcall TForm3::AProposde1Click(TObject *Sender) { // Address $40259C } //--------------------------------------------------------------------------- void __fastcall TForm3::Quitter1Click(TObject *Sender) { // Address $4025AC } //---------------------------------------------------------------------------
vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
je vous en souhaite une excellente lecture ...
A lire : Les règles du forum
Bonjour,
En fait, il n'y a pas de décompilateur parfait ! C'est presque impossible à faire surtout avec de la programmation orientée objet.
En fait, ne cherche pas à obtenir le code original d'un .exe , même les crackeurs (travail malhonnête) ne vont pas jusqu'à étudier tout le code mais seulement une partie et à comprendre le fonctionnement général !
En réponse à
Je dirais que c'est possible à 60 % sauf s'il y a des outils capables de le faire à 100 % que je ne connais pas.J'aimerais savoir s'il était possible de récuperer l'environnement exact dans lequel un executable fait en C++Builder a été developpé. En gros, le code de l'executable.
randriano.dvp.com
Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).
Merci pour toutes vos réponses. C'est gentil de vouloir m'aider.
En tout cas ce que j'ai appris avec vous c'est que ce n'est pas vraiment possible, je ne le savais pas .
Merci à tous
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager