Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Hakkimen en 31 Diciembre 2016, 03:33 am



Título: DUDA: Traducir un juego
Publicado por: Hakkimen en 31 Diciembre 2016, 03:33 am
Buenas, he paseado un rato por este foro y debo admitir que es uno de los más completos y activos que he visto desde hace mucho tiempo en la internet. Mis felicitaciones, no es fácil mantener una comunidad hoy día y menos en referente a programación.

Dicho esto, procedo con la duda.

Durante mi período de estudio en la U. me quise tomar un descanso de mi carrera, pero sin olvidar conceptos básicos de la misma, (que soy de ese tipo de personas que le dan 2 semanas de vacaciones y hace un reset cerebral a todo lo aprendido en tiempo anterior)
así que decidí empezar a jugar Simuladores de Economía.

Entre tanto buscar, encontré uno que simplemente me encantó: Capitalism 2
Como su nombre indica, está en inglés, y las traducciones que he buscado son ultra mediocres, por tanto intenté traducir yo mismo el juego.

Pasa que cuando intenté hacerlo como lo hacía con otros juegos me encontré con esta joya:

(https://s28.postimg.org/5bod3opgp/traducalv.jpg) (https://postimg.org/image/5bod3opgp/)

En mi vida había visto algo similar, así que recurro a ustedes para saber qué ayuda podéis proporcionarme, pues el juego me gusta muchísimo, y es una joya en cuanto a simuladores de economía.  
Este juego me impulsó a querer traducirlo, así tarde 100 años. Éste juego los merece.

Saludos, y muchísimas gracias de ante mano a cualquier ayuda que puedan prestarme!!

* Edito: Cabe resaltar que no tengo mucha experiencia -por no decir casi ninguna- en programación, así que cualquier tutorial que puedan facilitarme se los agradeceré eternamente :D


Título: Re: DUDA: Traducir un juego
Publicado por: engel lex en 31 Diciembre 2016, 03:41 am
abrir el exe con un editor de texto especialmente uno con tan poca potencia como notepad raramente es buena idea XD

fijate esto es un post caido en otro lugar pero en caché de google se obtiene algo

http://webcache.googleusercontent.com/search?q=cache:VEOQ6QXdGd0J:www.capitalismlab.com/forum/viewtopic.php%3Ff%3D22%26t%3D1273+&cd=1&hl=es-419&ct=clnk&gl=ve (http://webcache.googleusercontent.com/search?q=cache:VEOQ6QXdGd0J:www.capitalismlab.com/forum/viewtopic.php%3Ff%3D22%26t%3D1273+&cd=1&hl=es-419&ct=clnk&gl=ve)

está este que tambien intenta traducir

http://www.taringa.net/comunidades/juegostycoon/2168467/Traduccion-Espanol-Capitalism-II---Traductores.html (http://www.taringa.net/comunidades/juegostycoon/2168467/Traduccion-Espanol-Capitalism-II---Traductores.html)


puedes es descargarte una traducción ver que contienen los archivos e intentarlo tu


Título: Re: DUDA: Traducir un juego
Publicado por: tincopasan en 31 Diciembre 2016, 06:11 am
No tengo idea que tipo de juego es, pero depende de como este hecho hay varias posibilidades:
1)abrir el exe  con un editor hexadecimal(tipo ultraedit o winhex) y buscar las cadenas
2) abrir el exe con un editor de recursos(tipo resource hacker o exescope) y buscar las cadenas
3)usar ollydgb y buscar las direcciones de las cadenas a modificar
4) aveces las cadenas no están en el exe sino en algún archivo de recursos(dll,ocx,etc)
5)otras veces simplemente no se ven las cadenas por estar protegido o las cadenas se dibujan sin estar como recursos


Título: Re: DUDA: Traducir un juego
Publicado por: Hakkimen en 31 Diciembre 2016, 09:00 am
Vale, gracias por responder!! Pero sigo con la misma interrogante.

Hay algunos archivos que son medianamente legibles para mí como esto:

(https://s23.postimg.org/b9kv2oqdz/notealv.jpg) (https://postimg.org/image/b9kv2oqdz/)

y luego están estas cosas que para mí están escritas en mandarín, pues ni sé qué es:

(https://s30.postimg.org/h7s0k6spp/traducalv2.jpg) (https://postimg.org/image/h7s0k6spp/)

Me descargué el block de notas ++ y no sé qué hacer o cómo traducir :(


Título: Re: DUDA: Traducir un juego
Publicado por: apuromafo CLS en 1 Enero 2017, 05:50 am

en resumen lo que te comenta tinconpasan es lo mas indicado:

1)abrir el exe  con un editor hexadecimal(tipo ultraedit o winhex) y buscar las cadenas

esto implica buscar la string,pero requiere que el tamaño sea el indicado, si te pasas requerirás modificar desde el lenguaje del programa


2)2) abrir el exe con un editor de recursos(tipo resource hacker o exescope) y buscar las cadenas
puedes modificar el programa con recursos, pero dependerá si no está comprimido

3)usar ollydgb y buscar las direcciones de las cadenas a modificar
casi todos los programas de 86bytes pueden ser depurados con ollydbg, lo cual debes buscar las referencias, modificar y guardar los cambios, y saber bien si son carácteres Unicode y ascii

4)4) aveces las cadenas no están en el exe sino en algún archivo de recursos(dll,ocx,etc)

en este caso es necesario encontrar el formato el cual tambien trabaja con el tema de editor hexadecimal, se suele usar herramientas codeadas de forma personal o bien inclusive editores como 010 editor

 5)otras veces simplemente no se ven las cadenas por estar protegido o las cadenas se dibujan sin estar como recursos

en este caso muchas veces hay imagenes, solo es tema de reemplazar y cambiar..dependiendo del lenguaje que estén



si te gusta saber como es una realidad , realmente es mucho mas facil que aprendas inglés a que traducir sin saber como funciona un programa sin conocimiento...te sugiero leer el faq del sitio (de foro el hacker sección de ing.inversa)

ahora bien pensando cuando termines de leer el faq, como algo mas específico


entiendo la necesidad de aprender a traducir programas, pero no seria mas facil aprender el lenguaje inglés para no tener que tocar el tema?bueno entiendo que quieres traducirlo si o si

los enlaces de taringa estan vivos, por lo que veo que no quieres bajar algo traducido y verificar que han hecho, si modificaron los recursos, si modificaron un exe, o bien si solo cambiaron algunos archivos...

1) los programas no son textos, tienen un formato desde pe/header configurado por windows, todo depende del sistema operativo, una vez que lees el faq y depuras programas comprenderás que lo más rapido para ver como esta hecho un programa es con un editor hexadecimal, dado que no confundiran los espacios ni simbolos raros..todo tendrá con su formato hexadecimal, por otro lado..aunque sepas donde modificar (cambiar por ejemplo mode por modo) hay palabras mas breves o abreviadas que requerirán otro esfuerzo mayor ejemplo "die" se traduce en morir, deceso etc, entonces podemos decir que si modificas hexadecimalmente tendras 3 valores en vez de las 5 que necesitas, para ello pueden usar un editor de recursos y verás que hay cadenas asociadas

el recurso ejemplo 1 tiene direcciones 4010 que dice "die",3 , puedes modificar por "morir",5 haciendo una traduccion mas o menos de alcance, el tema es que cualquier editor de recurso requiere que el programa no esté empacado/protegido


entonces para ello volvemos al mismo discurso, como se puede saber que está o no protegido?, con un programa que analiza el pe/header para verificar si tiene alguna signatura conocida de packer, para esto usan rdg detector o PID, luego de ello si tiene algo conocido ,basta leer del tema para saber que hacer


ahora bien, pensamos que leiste el faq, practicaste reversing a nivel inicial, sabrás usar un depurador y usar el lenguaje assembler a nivel básico que sabras cambiar aunque sea una instruccion jne a je o jmp a nop  entre otras


te darás cuenta que en un depurador puedes manipular cualquier direccion, puedes crear a gusto, y dependerás de nuevas herramientas ( editores que permitan agregar secciones) entre otras

entonces luego puedes mirar básicamente que una string que dice die realmente es algo asi

push 425055  "die"

puedes en tu codigo colocar una string llamada morir y luego eso está en 481055

cambias la instruccion de Push 425055 a push 481055  y listo , guardas los cambios y estás listo...

pero si el programa está empacado, no guardará los cambios dado que estás en runtime, puedes usar herramientas para usar parches/inline y tambien lograr el resultado esperado


esto está al nivel de cualquier persona, cuando te lo propones, el tema real es que no todos disponemos del mismo tiempo e interés

modificar un archivo con notepad ++ es como mirar  un documento de zip con un block de notas y no con winzip/winrar/7zip, algo ilegible cuando no usas su "formato " en que fue creado o que se usará


saludos Cordiales
Apuromafo