Agregar mas carácteres de los declarados en un binario

Iniciado por WHK, 8 Mayo 2009, 08:43 AM

0 Miembros y 1 Visitante están viendo este tema.

WHK

Hola, estaba intentando editar un stub ya compilado donde tengo como flag el string "{script}" el cual es de 8 carácteres. esto queda impreso en el programa y no me cuesta editarlo desde un editor hexadecimal pero si intento agregarle uno mas como por ejemplo 9 entonces el ejecutable se corrompe.

He visto que el reshack puede modificar recursos, carácteres y cosas sin iomportar su longitud asi que supuse que de alguna forma hexadecimalmente también debía poderse pero no se como.

La idea es implementar esto en la edición del stub en un editor gráfico para el proyecto BHC.

si alguien sabe le agraderecía muchisimo que me expicara ya que busqué en otros lados pero no pude encontrar infromación al respecto.

Eternal Idol

El problema es que seguramente eso esta en una sección de datos, y tras esa cadena hay otros datos que jodes al sobreescribirlos, no entiendo exactamente que es lo que queres hacer pero tal vez una solucion sea declarar la variable con un tamaño mayor al "real" (asumiendo que el ejecutable lo generaste vos), por ejemplo:

char s[256] = "{script}";
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

WHK

Si lo habia pensado pero de esa forma limitas el script hasta los 256 carácteres y nunca se sabe que tan largo podrá ser un script, por eso la idea de como inflar esa variable.

Pude ver herramientas como el topo pero no se si servirán para variables aunque tampoco se como se podría lograr esto manualmente ya que no se como trabaja el topo, talves si pudiera entenderlo lograría inflar el tamaño de esa variable.

Eternal Idol

#3
En ese caso yo haria esto:

A. Aprovechando el formato PE exportaria la variable como un puntero (nulo o a un valor que quieras, tipo 0xFF00FF00 o 0xDEADDEAD) a caracter y compilaria el programa normalmente.

B. Crearia otro programa que haga los siguiente pasos a grandes rasgos:

1. Abre el ejecutable generado
2. Guarda el EOF en una variable
3. Escribe el script desde el final del archivo existente (y guarda el nuevo EOF si queres agregar mas cosas despues)
5. Abre el ejecutable pero ahora mappeado en memoria
6. Busca la variable exportada, la localiza en memoria y cambia el puntero al antiguo EOF

Se necesitaria codigo para manejar el PE con lo cual seria una solucion mas costosa de implementar pero me parece que quedaria muy limpia, generica y facil de extender: queres agregar otra cosa, simplemente exportas otra variable.

PD. No esta paso por paso, tenes que cerrar el archivo antes de mappearlo, etc.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

bizco

directamente usa recursos y puedes incluso añadir mas de 1 script de tamaño variable, tienes api para manipular recursos.

Eternal Idol

Y si ... ya lo menciona el mismo en el primer mensaje pero no parece querer hacerlo de esa manera ... sino MSDN.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón