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!
Version imprimable
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
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.
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:
CordialementCode:
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 } //---------------------------------------------------------------------------
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.Citation:
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 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 :lol: .
Merci à tous:D