Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: rhp07 en 20 Noviembre 2014, 15:11 pm



Título: Cambiar un String dentro de un ejecutable .exe a uno de mayor tamaño. Corrupto??
Publicado por: rhp07 en 20 Noviembre 2014, 15:11 pm
Hola, estoy intentando cambiar un String dentro de un ejecutable PE .exe usando XVI32. Sin embargo el string que quiero insertar es mayor que el original y descuadra totalmente el direccionamiento dentro del ejecutable y lo deja corrupto, más específicamente deja corrupta la ImportTable (Encuentra una RVA inválida en LordPE).

Hay alguna forma de reparar la tabla de direccionamiento o el ejecutable o alguna forma de modificar el String sin dejar corrupto el ejecutable?

Más detalle a lo que intento hacer:
El programa usa una llamada a Media Interface mediante comandos String tipo "cdaudio start" (Que empezaría reproducir la música de un CD insertado en el lector), sin embargo intento hacerlo funcionar sin tener que usar un CD usando "waveaudio!nombredelwave.wav" en vez de "cdaudio".

Aquí está el archivo de antes y después de ser modificado, sin embargo el segundo sale cómo corrupto. Alguna solución a ello? Un saludo.
https://mega.co.nz/#!gc1FDDpL!mEMQb8xYrhJc6YcgNQ0ceUyhut0zxQNs-X1Um8scobw


Título: Re: Cambiar un String dentro de un ejecutable .exe a uno de mayor tamaño. Corrupto??
Publicado por: MCKSys Argentina en 20 Noviembre 2014, 16:08 pm
Hola!

No he visto el ejecutable, pero si no puedes cambiar el string, podrias buscar la parte del codigo que hace referencia al mismo y parchearla para que apunte a otro lugar de la sección .data. En ese lugar colocas tu string.

Con eso deberia funcionar...  :)

Saludos!


Título: Re: Cambiar un String dentro de un ejecutable .exe a uno de mayor tamaño. Corrupto??
Publicado por: rhp07 en 20 Noviembre 2014, 17:55 pm
Gracias eso era.
Para los que tienen el mismo problema aquí un tutorial bastante bueno para hacerlo on OllyDbg..
http://nn.nachtwolke.com/dev/ref/strreloc/