elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  ¿Por qué es tan difícil hacer ingeniería inversa?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Por qué es tan difícil hacer ingeniería inversa?  (Leído 4,957 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.460


Hackentifiko!


Ver Perfil
¿Por qué es tan difícil hacer ingeniería inversa?
« en: 9 Junio 2023, 04:38 am »

Según recuerdo en el Age of Empires viejo cuando haces un escenario con más de 1 IA, sólo funciona la personalidad de 1 (por ejemplo si indicas que todas ataquen constantemente, sólo lo hace 1), o quizá es cuando se usa el cheat Gaia, pero quiero corregir el error si es posible. Para eso necesito hacer comprensible el código, supongo, de vaya a saber cual archivo, pero ¿por qué es tan difícil? ¿es tan variable lo que significan los 0s y 1s o el código hexadecimal?

Gracias.

No sé si es la sección indicada para preguntar, o las palabras indicadas, perdón si erré.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: ¿Por qué es tan difícil hacer ingeniería inversa?
« Respuesta #1 en: 10 Junio 2023, 00:53 am »

Hola!

¿por qué es tan difícil? ¿es tan variable lo que significan los 0s y 1s o el código hexadecimal?

En gral. los juegos están compilados en C/C++.

El reversing se vuelve complejo, pues al momento de compilar (convertir codigo fuente en codigo maquina), se pierde mucha información. Por ello, los decompiladores existentes sólo puede reconstruir ciertas secuencias de código.

Ahora, si estudias reversing de bajo nivel (ASM), el código se vuelve más sencillo de leer y entender.

Por supuesto, mientras más practiques, mejor podrás entender y analizar código de bajo nivel.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Tachikomaia


Desconectado Desconectado

Mensajes: 1.460


Hackentifiko!


Ver Perfil
Re: ¿Por qué es tan difícil hacer ingeniería inversa?
« Respuesta #2 en: 10 Junio 2023, 07:33 am »

¿Cómo es posible que se pierda info? Supongo que no te refieres a los comentarios. ¿Me das un ejemplo de cómo se pierde? No sé esos lenguajes pero, ponele que tengo:
V = 0
Si el jugador presiona ->
   V=1
¿Qué se pierde de eso? O dime un ejemplo más ilustrativo.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: ¿Por qué es tan difícil hacer ingeniería inversa?
« Respuesta #3 en: 10 Junio 2023, 16:42 pm »

Hola!

¿Cómo es posible que se pierda info?

Al compilar código fuente, pierdes mucha cosas:

- Los comentarios se pierden.

- Todos los nombres de función, variables, clases, etc. se perderán (aunque depende del lenguaje y del compilador y de la forma en que se generó el binario).

- El formato original del codigo fuente no existirá más. Sólo queda la lógica convertida por el compilador. Además, tienes que tener en cuenta las optimizaciones que pueda hacer el mismo al compilar.

Aprendiendo cómo funciona un compilador, puedes ver todo ésto y más.

Te dejo un link para que leas un poco sobre compilación y reversing: https://www.blackhat.com/presentations/bh-dc-07/Sabanal_Yason/Paper/bh-dc-07-Sabanal_Yason-WP.pdf

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

BloodSharp


Desconectado Desconectado

Mensajes: 814


¡ Hiperfoco !


Ver Perfil WWW
Re: ¿Por qué es tan difícil hacer ingeniería inversa?
« Respuesta #4 en: 11 Junio 2023, 18:50 pm »

Según recuerdo en el Age of Empires viejo cuando haces un escenario con más de 1 IA, sólo funciona la personalidad de 1 (por ejemplo si indicas que todas ataquen constantemente, sólo lo hace 1), o quizá es cuando se usa el cheat Gaia, pero quiero corregir el error si es posible. Para eso necesito hacer comprensible el código, supongo, de vaya a saber cual archivo, pero ¿por qué es tan difícil? ¿es tan variable lo que significan los 0s y 1s o el código hexadecimal?

Buscando en youtube hace tiempo había encontrado esta playlist:

https://www.youtube.com/watch?v=w7gBkVXuDSQ&list=PLpnX4b2uRf5-_aLRjuIpav2Zh45C4f2QH

La playlist casualmente habla del AOE 1, por lo que si ves los videos te vas a dar cuenta que tan complicado puede llegar a ser reversear un binario PE e intentar modificar el juego...


B#
En línea



Tachikomaia


Desconectado Desconectado

Mensajes: 1.460


Hackentifiko!


Ver Perfil
Re: ¿Por qué es tan difícil hacer ingeniería inversa?
« Respuesta #5 en: 16 Junio 2023, 07:09 am »

Por ahora no leeré/veré tanto, sólo algunas dudas: ¿Cómo es, en binario o (mejor) hexadecimal el archivo exe más sencillo que puede hacerse? ¿o depende del lenguaje original?

Haré unos con Macromedia Flash 5.

¡Fua! Hice uno, capaz que no el más simple porque le puse frameskip 0.01 (es el mínimo) pero le quité todo frame (por probar), pero según el HxD editor me dió unas X filas de 4096 bytes, X debe ser como 100, no sé dónde ver ni entiendo bien. ¡Es demasiado! Veo que tiene mensajes que no son parte de lo que hice, pero no me deja copiarlos. Dice por ejemplo "¿Desea anular el script?", claro, son mensajes que pueden aparecer creo, eso se genera siempre. Lo que tenía pensado es modificar 1 cosa, volver a publicar y buscar diferencias, pero siendo tanto texto paso. En Internet he visto servicios de detectar diferencias en 2 textos, pero aún así. El exe del AoE podría tener mensajes y cosas que sólo sirvan si se juega en un modo privilegiado que sólo sus programadores sabrán, paso por ahora.

Antes de volver a jugar juegos quiero aprender unas cosas que me son muy complicadas, así que parece que voy a tardar mucho en seguir con esto.
En línea

KJD


Desconectado Desconectado

Mensajes: 314



Ver Perfil
Re: ¿Por qué es tan difícil hacer ingeniería inversa?
« Respuesta #6 en: 16 Junio 2023, 22:01 pm »

tenes un lio en la cabeza.....
una cosa es ingenieria inversa y la otra es hacking de juegos.
Leete algun tutorial de cheat engine y fijate que podes hacer.
En línea

"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???
BloodSharp


Desconectado Desconectado

Mensajes: 814


¡ Hiperfoco !


Ver Perfil WWW
Re: ¿Por qué es tan difícil hacer ingeniería inversa?
« Respuesta #7 en: 16 Junio 2023, 22:33 pm »

tenes un lio en la cabeza.....
una cosa es ingenieria inversa y la otra es hacking de juegos.
Leete algun tutorial de cheat engine y fijate que podes hacer.

El hacking de juegos requiere conocimientos de ingeniería inversa mínimos en general para poder hacer algo o descubrir alguna forma de vulnerar el juego para aprovechar algún fallo y/o modificarlo...


B#
En línea



Tachikomaia


Desconectado Desconectado

Mensajes: 1.460


Hackentifiko!


Ver Perfil
Re: ¿Por qué es tan difícil hacer ingeniería inversa?
« Respuesta #8 en: 17 Junio 2023, 05:17 am »

tenes un lio en la cabeza.....
una cosa es ingenieria inversa y la otra es hacking de juegos.
Leete algun tutorial de cheat engine y fijate que podes hacer.
¿Cual es la diferencia?

Quiero que las IA del juego funcionen como se supone que deben. ¿Eso es hacking de juegos y cheats? He visto cheats que no parecen sólo modificar un valor sino impedir que un código se ejecute o modificarlo, pero en general los cheats son simplemente cambiar valores, dudo que baste con eso. Y he oído de hacks de juegos en que modifican mucho, pero en general son modificaciones de gráficos o cómo son los obstáculos, pero el comportamiento de los personajes (enemigos, aliados o neutrales) no cambia.

Cuando pueda muestro un video del problema.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines