Cita:
Empezado por rugido_37
genere mi aplicacion usando el ide delphi 7.2 personal edition
|
Bienvenido al Club.
(1) No me suena esa versión de Delphi.
Yo te recomendaría también que revisaras
la Guía de estilo del club.
Cita:
Empezado por rugido_37
...luego le pase el DEDE y este ultimo me genero los archivos fuente del ejecutable ,
|
He usado DEDE alguna vez y esto que comentas es INCORRECTO (lo digo para que alguien que no lo haya usado no se asuste). Delphi compila y linka los programas, lo que significa que traduce el código fuente escrito en Delphi en un lenguage intermedio que luego es ejecutado por la máquina. Eso quiere decir que en un ejecutable generado en Delphi NO ESTÁ EL CÓDIGO FUENTE, por lo tanto es imposible extraerlo.
Lo que hace DEDE (en cuanto al código) es enseñar el código ASM e intentar presuponer qué bloques de código corresponden a una estructura Delphi.
Por ejemplo, un evento que has programado en Delphi, te lo devolverá como esto:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender : TObject);
begin
(*
00401F18 55 push ebp
00401F19 8BEC mov ebp, esp
00401F1B B907000000 mov ecx, $00000007
00401F20 6A00 push $00
00401F22 6A00 push $00
00401F24 49 dec ecx
00401F25 75F9 jnz 00401F20
00401F27 8955E0 mov [ebp-$20], edx
00401F2A 8945FC mov [ebp-$04], eax
00401F2D 33C0 xor eax, eax
00401F2F 55 push ebp
00401F30 6823224000 push $00402223
***** TRY
|
00401F35 64FF30 push dword ptr fs:[eax]
00401F38 648920 mov fs:[eax], esp
00401F3B 8D45F8 lea eax, [ebp-$08]
* Possible String Reference to:
|
00401F3E BA38224000 mov edx, $00402238
* Reference to: rtl60.@System@@LStrLAsg$qqrpvpxv()
|
00401F43 E810F1FFFF call 00401058
00401F48 8D45F4 lea eax, [ebp-$0C]
* Possible String Reference to: 'skjh < ghh < gsd''
|
00401F4B BA58224000 mov edx, $00402258
* Reference to: rtl60.@System@@LStrLAsg$qqrpvpxv()
|
00401F50 E803F1FFFF call 00401058
00401F55 8D55DC lea edx, [ebp-$24]
00401F58 8B45FC mov eax, [ebp-$04]
* Reference to control TForm1.Edit1 : TEdit
|
00401F5B 8B80F4020000 mov eax, [eax+$02F4]
* Reference to: vcl60.@Controls@TControl@GetText$qqrv()
|
00401F61 E882F6FFFF call 004015E8
00401F66 8B45DC mov eax, [ebp-$24]
00401F69 8D55F0 lea edx, [ebp-$10]
* Reference to: rtl60.@Sysutils@Trim$qqrx17System@AnsiString()
|
00401F6C E85FF2FFFF call 004011D0
00401F71 8B45F8 mov eax, [ebp-$08]
00401F74 8B155C534000 mov edx, [$40535C]
00401F7A 8B12 mov edx, [edx]
...
Como puedes ver, realmente lo que hace DEDE es enseñarte código ASM y "suponer" qué hace cada bloque, pero esto último es sólo una suposición.
Cita:
Empezado por rugido_37
...no se supone que cuando generas un programa este debería convertir el código fuente a código maquina o algo así?, o al menos eso es lo que dicen en los libros, lo mas extraño es que después de descompilar se podían ver los nombres de los componentes y variables usados, ¿hay alguna forma de prevenir esto?
|
Justamente es lo que hace.
El problema es que estás mezclando 2 cosas. Una es el código fuente, que se convierte a código máquina como bien has dicho, y otra cosa son los recursos del programa (imágenes, cadenas, formularios,...).
Si te fijas, he puesto que entre los recursos están los formularios, porque Delphi guarda como recursos, de ahí que puedas recuperarlos (el DFM) con DEDE, pero en realidad sólo recuperas el diseño, NO EL CÓDIGO.
Si realmente te preocupa que tu programa se pueda "decompilar" o incluso "debuggar" sea con DEDE o con cualquier otra herramienta, puedes usar utilidades específicas para ello. Hay "cyrpters" en el mercado (algunos freeware) que te permitirán hacerlo en un sólo paso.
Un saludo.