| Neftali [Germán.Estévez] |
14-03-2005 14:10:21 |
Cita:
Empezado por nachete
...alguine sabe como hacerlo o algun programa que me decomprima un ejecutable y pueda ver el codigo fuente entero
|
Para un programa compilado y linkado (como los que genera Delphi) es imposible extraer el código fuente tal y como se progamó, porque no se encuentra en el programa. En su lugar está el código de "bajo nivel" que lo sustituye, y hasta ahora no es posible generar código de "alto nivel" a partir de código de "bajo nivel" :D.
Puedes extraer del ejecutable "casi todo" lo que no sea código, eso si, desde imágenes, cadenas, recursos, menús, formularios,... etc, etc, etc,
Lo dicho, lo más que vas a obtener "decompilando" el programa es código similar a éste:
Traducción del código:
Código Delphi [-]
var
Direct:string;
op:TSelectDirOpts;
begin
SelectDirectory('Seleccionar directorio', 'c:\', direct);
Edit1.Text := Direct;
SelectDirectory(Direct, [], 0);
Te puedes entretener un rato, es bastante instructivo...
Código:
00466310 55 push ebp
00466311 8BEC mov ebp, esp
00466313 83C4F0 add esp, -$10
00466316 33C9 xor ecx, ecx
00466318 894DF8 mov [ebp-$08], ecx
0046631B 8955F4 mov [ebp-$0C], edx
0046631E 8945FC mov [ebp-$04], eax
00466321 33C0 xor eax, eax
00466323 55 push ebp
* Possible String Reference to: 'é«Úùÿëð‹å]Ã'
|
00466324 6878634600 push $00466378
***** TRY
|
00466329 64FF30 push dword ptr fs:[eax]
0046632C 648920 mov fs:[eax], esp
0046632F 8D4DF8 lea ecx, [ebp-$08]
00466332 BA88634600 mov edx, $00466388
* Possible String Reference to: 'Seleccionar directorio'
|
00466337 B898634600 mov eax, $00466398
|
0046633C E8CFF7FFFF call 00465B10
00466341 8B55F8 mov edx, [ebp-$08]
* Reference to Form1
|
00466344 8B45FC mov eax, [ebp-$04]
* Reference to control TForm1.Edit1 : TEdit
|
00466347 8B80F4020000 mov eax, [eax+$02F4]
* Reference to: controls.TControl.SetText(TControl;System.String);
|
0046634D E83E93FDFF call 0043F690
00466352 8D45F8 lea eax, [ebp-$08]
00466355 33C9 xor ecx, ecx
00466357 8A15B0634600 mov dl, byte ptr [$4663B0]
* Reference to: filectrl.SelectDirectory(System.AnsiString;TSelectDirOpts;System.Longint):System.Boolean;overload;
|
0046635D E89EF5FFFF call 00465900
00466362 33C0 xor eax, eax
00466364 5A pop edx
00466365 59 pop ecx
00466366 59 pop ecx
00466367 648910 mov fs:[eax], edx
****** FINALLY
|
* Possible String Reference to: '‹å]Ã'
|
0046636A 687F634600 push $0046637F
0046636F 8D45F8 lea eax, [ebp-$08]
|
00466372 E889E0F9FF call 00404400
00466377 C3 ret
00466378 E9ABDAF9FF jmp 00403E28
0046637D EBF0 jmp 0046636F
****** END
|
0046637F 8BE5 mov esp, ebp
00466381 5D pop ebp
00466382 C3 ret
|