Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)
Autor
|
Tema: Modificar cadenas en programa compilado en Delphi (Leído 3,320 veces)
|
registrymaster
Desconectado
Mensajes: 6
|
Hola a todos los foreros Lo primero presentarme, pues soy nuevo en el foro. Veréis tengo un problema al traducir un programa compilado en Delphi. Ya he traducido todas las pantallas, pero me falta por traducir los mensajes de error o advertencia que muestra el programa en su ejecución. Por ejemplo intento traducir el siguiente texto: "MAME XML file not set or found!" por "¡No se encontró o no se estableció el archivo XML de MAME!" La pregunta es: ¿Como puedo añadir mas bytes para traducir todos esos mensajes que no te muestran los editores de recursos, tipo Resource Hacker o Restorator 2007? Aquí pantallazo:  Muchas gracias
|
|
|
|
|
En línea
|
|
|
|
LSL
Desconectado
Mensajes: 239
Cls
|
puedes buscar espacio vacio o añadirle mas bytes o sección con http://foro.elhacker.net/programacion_general/add_pe_bytes_v011-t272401.0.htmlen el nuevo espacio, escribes el texto de los mensajes, y con el Ollydbg en el programa desensamblado cuando utiliza la llamada a la direccion offset del mensaje original, cambias esa dirección por la del offset del mensaje traducido. Quizás tambien tengas que cambiar antes de la llamada, el tamaño hexadecimal de la cadena a leer, ...
|
|
|
|
|
En línea
|
Saludos.
LSL.
|
|
|
|
karmany
|
Totalmente de acuerdo con LSL, yo haría lo mismo. Yo cambiaría el puntero con OllyDBG de ese mensaje y lo pondría en otro sitio que cupiera, así además tampoco modificas las restantes cadenas.
Y ese programa también me gusta (Add PE bytes) jaja. Muy bueno....
|
|
|
|
|
En línea
|
 - "Tu sitio para aprender, enseñar y compartir"
|
|
|
registrymaster
Desconectado
Mensajes: 6
|
Gracias por vuestras respuestas.
Hasta ahora lo que había hecho era traducir sin tener que añadir más bytes. Esto es nuevo para mí, y me gustaría saber como hacerlo con el Ollydbg. Lo he instalado y bueno, ya he localizado la cadena del ejemplo anterior. ¿Cómo se cambia la dirección del offset? y ¿donde hay que añadir más bytes?
Soy novato en esto, pero siempre que me he encontrado con un archivo compilado en Delphi he tenido el mismo problema.
|
|
|
|
|
En línea
|
|
|
|
MCKSys Argentina
Desconectado
Mensajes: 1.222
Diviérte crackeando, que para eso estamos!
|
|
|
|
|
|
En línea
|
--------------------- MCKSys Argentina
"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
|
|
|
|
apuromafo
Desconectado
Mensajes: 640
|
modificar cadena
veamos 401000 hola
si la cadena se muestra gracias a mov eax,401000 puedo colocar 40102 y dira: "la"
ahora para modificar una cadena debes diferenciar 2 cosas, es Unicode o es Ascii? esta comprimido o no?
hay muchas variables que se van aprendiendo en el camino, lo que te comparten es la teoria y luego la practica llega sola, ahora vamos denuevo
que pasa si coloco mov eax,500000
pues envio a otra parte, por ende si tu cadenas es mas larga que la original , pues aprovechas eso,
te apuesto que puedes hacer el primer tutorial de PE , creado por izhelion, donde muestra un mensaje, intenta cambiar el valor del messagebox y de ahi aprenderas como hacerlo..
ahora el como y donde encontrar justo el momento indicado es porque debes aprender a leer..debes leer todo lo escrito y luego opinar .muchos bajan toda la informacion y ni la leen, y despues dicen , pero si ahi estaba.
animo saludos Apuromafo
|
|
|
|
|
En línea
|
|
|
|
registrymaster
Desconectado
Mensajes: 6
|
Gracias por la respuesta Apuromafo. A qué tutorial te refieres para poder estudiarlo?
|
|
|
|
|
En línea
|
|
|
|
|
karmany
|
Apuromafo se refiere a este tutorial que me he encontrado de casualidad  : DescargaPD. Es muy trabajoso modificar el lenguaje de un programa, lo digo por experiencia. Y si dentro de unos días el programa se modifica, ¿Volverías a modificarlo? Personalmente pienso que el autor tendría que poner algún archivo de lenguaje porque si no dentro de 3 versiones más puedes estar un poco harto de traducir... En el tutorial donde digo: Le pongo 1000 bytes por section alignment... quiero decir, le pongo 1000 bytes por ser múltiplo de File alignment Espero te sirva, un saludo. karmany
|
|
|
|
« Última modificación: 7 Octubre 2010, 22:29 por karmany »
|
En línea
|
 - "Tu sitio para aprender, enseñar y compartir"
|
|
|
LSL
Desconectado
Mensajes: 239
Cls
|
vaya lujo de detalles, me lo pillo. aunque yo pocos programas voy a traducir, pero seguro que me servirá para hacer injertos "inline patching".  gracias karmany.
|
|
|
|
|
En línea
|
Saludos.
LSL.
|
|
|
|
|
botticheli
Desconectado
Mensajes: 1
|
Muy buenas,
Karmany, tengo una pregunta sobre el tutorial. Está muy bien hecho, por cierto, aclara muchas dudas... pero en mi caso no existe ningún "push dirección" (ej: push 640f12) cuando busco "All referenced text string".
Sale directamente esto: ASCII "File" sin comentarios ni nada.
Hay alguna manera de poder modificar el texto añadiendo una plabra con más caracteres?
(Si lo edito en binario lo puedo modificar, y funciona siempre que no añado más de 4 caracteres)
|
|
|
|
« Última modificación: 12 Septiembre 2011, 22:10 por botticheli »
|
En línea
|
|
|
|
.:UND3R:.
Desconectado
Mensajes: 1.960
Ingeniería inversa
|
Y ese programa también me gusta (Add PE bytes) jaja. Muy bueno....
¬¬
|
|
|
|
|
En línea
|
|
|
|
apuromafo
Desconectado
Mensajes: 640
|
¬¬
karmany es autor tambien de esa tool xD es bueno aveces recordar post antiguos, pero igual es importante, que uno puede leer las string por wdasm,IDA y mas editores hexadecimales  saludos Apuromafo
|
|
|
|
|
En línea
|
|
|
|
|
|