PDA

Ver la Versión Completa : ¿Como parcho con delphi 7?


JXJ
20-08-2005, 06:04:19
Tengo el siguiente problema, tengo un programa, que esta en varias
maquinas, y quiero solo cambiarle, en cada maquina, unos detalles,
Los edits que tienen valores puestos en tiempo de diseño
. otras imagenes,

¿No saben como puedo hacer un programita que parchee, y meta
otro texto en los edits del que tiene, , y otras configuraciones, a los componentes
indy. tcp, ?

Vale gracias.

Crandel
20-08-2005, 06:57:04
Si el programa ya es un ejecutable instalado en las otras máquinas, vas a tener que reemplarlo con la nueva versión.

Hacer lo que quieres es mucho mucho más complicado.

JXJ
21-08-2005, 03:24:58
ha caray. yo crei que seria mejor, ... el metodo que plantee.

Pero ¿si, se puede, hacer modificaciones a un ejecutable. especificas
desde otro. ejecutable.?

Por ejemplo cambiarle el contenido de un Tedit. . labels, imagenes dentro
de un Timage.

dec
21-08-2005, 10:46:05
Hola,

¿Y porqué no tener para cada aplicación un archivo de configuración (INI ó similar) que siempre te sería más sencillo actualizar? U otra forma... cualquiera que no sea la que planteas, puesto que, o me equivoco, o es no poco complicado llevar a cabo algo como lo que quieres conseguir.

No sé. Por la información que das, lo del archivo de configuración me parece lo más razonable a bote pronto: las aplicaciones leen el archivo en cuestión y presentan los datos que sean menester en los controles adecuados. Datos que no tienen porqué coincidir, puesto que podrían variar de un archivo de configuración a otro.

JXJ
23-08-2005, 00:25:25
Me agrada más el poder meterle esos datos, via parche.

y ya con más tiempo. poder hacer mi programa parchador.
como los comerciales. encontre por ahi uno
que se ve bueno. el unico pero que le encuentro ,es que necesita de
archivo dcu.. donde se toman los datos a parchar.
Me gustaria más hacerlo a modo de inyeccion directa sin tener que tomar un
archivo los datos. sino que se tomen los datos,. desde el ejecutable parchador.
y este los meta en el exe. a parchar....

lafirma
23-08-2005, 00:40:33
puedes parchar por ejemplo cadenas haciendo uso de recursos, la API de Windows tiene varias funciones para ese fin... esto es si usas las cadenas como recursos y solo puede hacerlo cuando el ejecutable no esta en uso (no esta corriendo), pero de verdad quieres complicarte tanto y no considerar las opciones que te mencionan antes?

JXJ
23-08-2005, 02:17:03
Si... quiero complicarme tanto,,, hasta ahora no encuntro codigo, de ejemplo.
y ando a tientas.

Crandel
23-08-2005, 07:23:30
Ya que quieres la versión dificil, te tiro algo para que empieses.

(Aclaro que yo nunca lo hice ;) por lo que no se la solución, son solo ideas para empesar)

Abri el ejecutable como si fuera un archivo binario. Luego tenes que buscar la posición de la palabra que queres reemplazar, para poder saber su ubicación. Ahi reemplazas con la palabra que quieras.

Para probar esto sin escribir código, agarra un editor hexadecimal y abri tu ejecutable y hacelo manualmente, una vez que te funcione lo haces por código.

Nos vas comentando

Comenzo el hacking :D

lafirma
23-08-2005, 17:55:07
...como si fuera un archivo binario. Luego tenes que buscar la posición de la palabra que queres reemplazar, para poder saber su ubicación. Ahi reemplazas con la palabra que quieras.

Para probar esto sin escribir código, agarra un editor hexadecimal...
y yo que hablaba de complicarse...

JXJ, si utilizas recursos puedes usar las siguiente secuencia:
1. LoadLibrary para cargar el ejecutable.
2. FindResource y LoadResource
3. LockResource
4. BeginUpdateResource
5. UpdateResource
6. EndUpdateResource.
los nombres de las funciones son bastante explicativas o por lo menos te dan una idea... busca en la documentacion del API de Windows.
Con estas funciones (extraidas de la MSDN Library) podes modificar cualquier recurso que se encuentre en tu ejecutable.
visita esta direccion (http://delphi.about.com/od/objectpascalide/l/aa113099a.htm) para una introduccion sobre recursos...

Julià T.
24-08-2005, 03:36:43
quizá este program te ayude en tu misión

http://www.angusj.com/resourcehacker/

sirve para extraer recursos de ejecutables y librerias, además permite guardar los cambios que vayas haciendo