PDA

Ver la Versión Completa : Cambiar valor estatico de un texto ya compilado


gersojn
09-10-2015, 05:27:55
Hola foro,
Veran, en la empresa estamos trabajando desde hace tiempo con un programa para hacer calculos de prediccion que se desarrollo en el 2010, el problema es que no hay codigo fuente, es un software interno.

El tema es que se debe cambiar un parametro en el software, el cual se encuentra en un Edit no enable, recuerdo que en delphi se podia realizar esto, con una funcion PE. He estado intentando dar con ella, pero no la encuentro, pues con esta se puede cambiar un valor de un Edit ya compilado.
Me salvarian la vida con esta ayuda. Espero alguien pueda ayudar con esto, la idea es tener este software en mano, para no pasar por este problema mas adelante.
Gracias por el apoyo.
Saludos.

ecfisa
09-10-2015, 06:13:00
Hola gersojn.

Para hacerlo desde Delphi, revisa este enlace: Buscar cadena en un archivo binario (http://www.clubdelphi.com/foros/showthread.php?t=86833)

También podrías usar un editor hexadecimal, uno bueno y gratuito: HxD - Freeware Hex Editor and Disk Editor (http://mh-nexus.de/en/hxd/)

Saludos :)

gersojn
09-10-2015, 08:06:56
Hola ecfisa,
Gracias por el apoyo. Me parece muy bien, encontre varios editores hexadecimales. El detalle es que el sistema lo utiliza personal, con pocos conocimientos de informatica, y eso no hace muy viable la solucion.

Lo que plantearon, fue crear una aplicacion, la cual le permite modificar el valor de prediccion. Es decir, se establece el valor en la app 1, esta, habre en modo lectura/escritura el ejecutable(cabe mencionar no lo ejecuta aun) compara el valor ingresado por el usuario, si es distitno, cambia el valor del Edit en dicho sistema, posteriormente lo ejecuta.

Recuerdo que en un blog en ingles vi eso hace ya bastante tiempo, pero no encuentro ni el codigo fuente, y menos el blog. Solo recuerdo que el tema esta relacionado con PE.
Seguire investigando, cualquier ayuda o apoyo es bienvenido.
Gracias!

Neftali [Germán.Estévez]
09-10-2015, 11:09:31
Yo primero intentaría hacerlo de forma manual con un editor hexadecimal, tal y como ha comentado ecfisa.
Si eso te funciona y es lo que necesitas (que no lo tengo claro), entonces puedes crear un ejecutable que te haga ese trabajo de forma automática.

Se trata de cargar el EXE como un fichero binario y modifiar los bytes concretos. Revisa la ayuda de la clase TFileStream, que creo que te puede servir para hacerlo.

ecfisa
09-10-2015, 15:26:08
Hola gersojn.

¿ Y no te sirvió el código del primer enlace (http://www.clubdelphi.com/foros/showpost.php?p=482905&postcount=10) ?

Solo tendrías que cambiar las constantes de texto por unos edits.

Saludos :)

roman
09-10-2015, 16:23:39
Yo lo que haría es abrir el ejecutable con un editor de recursos, buscar el Edit correspondiente y poner en true su propiedad Enabled. De esta manera el cambio se hace una sóla vez y el operador del software ya podrá escribir el parámetro que quiera a su gusto cada vez que quiera.

Esto que digo lo acabo de probar y funciona, al menos si el ejecutable fue hecho con delphi.

// Saludos

Neftali [Germán.Estévez]
09-10-2015, 18:28:30
Yo lo que haría es abrir el ejecutable con un editor de recursos, buscar el Edit correspondiente y poner en true su propiedad Enabled.

Pues también.
A veces lo más sencillo es lo que no se nos ocurre... :o

escafandra
09-10-2015, 19:12:00
Si no puedes hacerlo editando los recursos, como te indica roman, puedes echar un vistazo a este hilo (http://clubdelphi.com/foros/showthread.php?t=88921) para modificar cadenas en tiempo de ejecución pero ¡ojo!, cambiarás todas las cadenas que coincidan.

Saludos.

gersojn
09-10-2015, 23:07:32
Hola,
Muchas gracias a todos, ya realice el proceso con el editor de recursos como indica Roman y quedo perfecto, me han salvado la vida, gracias.
Coincido en esto "A veces lo más sencillo es lo que no se nos ocurre..." llevaba ya tiempo tratando se solucionar el problema.
Nuevamente gracias por la ayuda.
Saludos.