![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Una vez logre decompilar un proyecto delphi del que había perdido su código, lo malo es que no recuerdo si era para delphi 4 o 6, y peor no recuerdo el nombre del decompiler.
|
|
#2
|
|||
|
|||
|
Como que ya murio yo descompile aller un programa con el, solo descarguenlo y pruebenlo veran que no es cuento
, a mi me funciona solo que la ultima version cuesta unos 100 dolares pero el que lo quiere lo compra busca el crack. Tampoco es perfecto pero sirve mucho.![]() |
|
#3
|
|||
|
|||
|
Código:
procedure Unknown_2();
begin
{ '40D348
loc_0040D348: test edx, edx
loc_0040D34A: jz 40D352h
loc_0040D34C: xchg edx, eax
loc_0040D34D: mov ecx, [eax]
loc_0040D34F: call [ecx]
loc_0040D351: ret
}
end;
Con tiempo y informacion reconstruir el programa. (emularlo) como quieran llamarle.Eso si mucha calma y mucha concentracion. Alguna que otra herramienta para que nos ayude con el asm. Un Saludo. |
|
#4
|
||||
|
||||
|
A mi no me la pegan con eso de que quieren descompilar un software porque perdieron las fuentes...cualquier programador promedio siempre tiene un respaldo de su trabajo y si no, pues no es programador.
Resulta muy interesante el querer aprender a base de ver que hacen otros o como le hicieron los de tal empresa para hacer esa ventanita redondeada y cosas así. Vamos, eso viene desde la época del MS-DOS. Yo mismo "cree" una versión del famoso e indispensable PC-Tools en supuesto español que no era otra cosa que traducir vilmente las cadenas que aparecían en el exe con la ayuda de un editor hexadecimal. E incluso el mismo Turbo Pacal 3.0 circulaba en mi Uni traducido al español. Afortunadamente para amuchos es imposible descompilar un software porque en primer lugar habremos de saber en que lenguaje se hizo y posteriormente hay mil y una variables que desde que este tema se ha manejado (allá por los 80s) nunca ha sido resuelto. Quienes conocen ensamblador saben que a veces una solo instrucción ASM equivale a muchísimas variantes de código fuente además de que cada compilador le pone su propio sabor al código que genera por lo que la cosa se complica bastante. Además si el programador se tomó la molestia de hacer cosas "raras" en su código pues la cosa va de mal en peor. Por ejemplo, ¿Sabían que la mayor parte de las cadenas literales que ocupamos en Delphi son perfectamente visibles (y modificables) vía un editor hex? Ejemplo: Código:
Cadena_Visible := 'Hola Mundo'; Cadena_invisible := $48 + $6F + $6C + $61 + $60 + $4D + $75 + $6E + $64 + $6F; Para concluir, si de verdad la necesidad es recuperar las fuentes, es mejor y más rápido partir de ceros (de paso se optimiza un poco de código) que ponerse a descubrir el hilo negro y además seguir siempre la regla de oro: "¡RESPALDA!".
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
#5
|
|||
|
|||
|
Hola AzidRain.
Entiendo tu punto y estoy muy de acuerdo en que algunos dicen querer recuperar un codigo perdido y en realidad quieren ver uno que alguien mas creo.Algunos creen que es facil, pero pronto se topan con una pared muy alta que pocos pueden escalar.( por suerte). Pero yo me pregunto quien no se a robado aunque sea un .gif para su web? o miro el codigo de alguna pagina web para aprender algo de html? Que tire la primera piedra quien este libre de pecados. Retomando tu comentario anterior, una intrucion asm solo puede ejecutar lo que se le pidio.. ahora si dentro de ella misma se le pide que tome diferentes rutas de acuerdo a alguna condicion.Eso sigue siendo una sola intrucion asm. El procesador entiende "call" y donde lo mandas "mov" y lo que quieres mover y a donde. En pocas palabras assamble es assamble y solo cambia si cambias el cpu. En cuanto al lenguaje en el que fue creado un exe eso solo detiene a los novatos. No respaldo la idea de decopilar exe. Tampoco critico a quien lo quiera hacer. Solo comente porque el hilo esta interesante y el tema caliente. ![]() ![]() ![]() Un Saludo. PD: Decopilando no se aprende.. solo se practica y es tarea de quien algo ya aprendio. |
|
#6
|
||||
|
||||
|
Cita:
|
|
#7
|
||||
|
||||
|
Cita:
Lamento contradecirte pero no es así, primero que Cadena_invisible no es una cadena sino un número, la suma de todos los hexadecimales que enumeras, si fuera una cadena tendría que ser: Código:
Cadena_invisible := #$48 + #$6F + #$6C + #$61 + #$20 + #$4D + #$75 + #$6E + #$64 + #$6F; Lo que comentas es un recurso que he utilizado alguan vez en VisualBasic que demostraba la pobresa del compilador, no resolviendo las constantes en timpo de compilación. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#8
|
||||
|
||||
|
si es cierto, se me olvidó ponerle el "#" ...pero el caso es que efectivamente funciona.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
#9
|
||||
|
||||
|
Lo probé recién en Delphi 7 y hace lo que digo, puedes encontrar tranquilamente el texto "Hola Mundo".
PD: Obviamente que si defines la constante y no la utilizas en ningún sitio esta no aparecerá, pues no es compilada. PD2: En tu cadena el espacio no tiene el valor correcto. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|