No hay un 'método' genérico (por decirlo de alguna manera) que esté demarcado, cada caso sigue sus propias pautas, aunque estas si son genéricas.
Si dispones del código fuente, la modificación del mismo, no podrá llamarse 'hacking' si no programación. Y en ese sentido, 'reconocer el lenguaje en que está escrito', obviamente será preciso conocerlo si no sabes programar en tal lenguaje poco podrás hacer.
El paso básico es usar desemsambladores (de diversa índole), que básicamente te ayudan a identificar el punto exacto donde uno quiera 'meter mano' y desde ahí se requieren los conocimientos necesarios para hacer la modificación pertinente que a uno le interese. Al desemsamblar, no importa el lenguaje en que originalmente se escribió el código, normalmente el proceso de compilación suele dificultar al extremo de hacer imposible recuperar el código fuente original incluso sabiendo el lenguaje en que fue escrito, porque noralmente el compilador realiza optimizaciones que anulan el reconocimiento de la semántica de un supuesto lenguaje fuente.
Además, el caso se complica dado la diversidad de plataformas de destino... al hablar de videojuegos, necesariamenter hay que incluir las diversas plataformas que ofrecen las consolas, luego puede complicarse en exceso si el interesado desconoce por completo el hardware y el ensamblador destino donde corre el videojuego.
Aunque lo habitual es asumir que se corre en un pc...
Cada programador/equipo de programación, diseña sus propias estrategias, por lo que fácilmente un 'método' seguido para desentrañar las traducciones para un videojuego, pueden ser inútiles al tratar de aplicarlo a otro. Es esa diversidad, junto con las plataformas de destino lo que lo complican, así como el paso del tiempo (se actualizan conociendo que un sistema ha sido vulnerado, intentarán (se supone), alterarlo para hacerlo más complicado (sea o no efectivo), aunque eso lleva tiempo y varios títulos del mismo equipo, pued epor tanto seguir pautas apenas divergentes.
Tus primeras tareas serían: conocer por encima el hardware destino, comocer el ensamblador destino, conocer los programas que puede haber (o crear tus propias herramientas, algo necesario cuando no encuentres nada al respecto) para abrir, estudiar y modificar el código, conocer la estructura y organización de los videojuegos (si sabe sprogramar videojuegos, serás capaz de reconocer o interpretar como se ha hecho qué o dónde, en qué punto debería encontrarse una llamada a...)... por ejemplo si no sabes qué es un sprite y como se guardan tales imágenes, el intento de querer cambiar una imagen específica podrá darte dolores de cabezas.
Es un mundo bastante amplio, d ela noche a la mañana, desde luego no podrás seguir un 'método', cual si fueran pasos (salvo que se refiera a un juego específico y determinado para el cual se hayan señalado los pasos para hacer tal o cual modificación... mucha gente empieza así, operando con un juego más o menos simple que le sirva de modelo para iniciarse y empezar a aplicar ingeniería inversa con sus conocimientos).
Recomiendo como algo exigible para la ingeniería inversa, conocer ensamblador y luego según en qué rama... conocimientos específicos a la misma (ingeniería inversa de videojuegos, pués conocimientos específicos sobre videojuegos, idem para S.O., ejecutables, drivers, etc...), de otro modo es perder el tiempo jugando a 'voy a cambiar esto a ver qué pasa...'
...que es la técnica más pobre y a veces la única cuando no hay info disponible de ningún tipo (caso por ejemplo de plataformas obsoletas décadas atrás y de las que no se ha conservado gran cosa o de plataformas de muy reciente aparición).
Si dispones del código fuente, la modificación del mismo, no podrá llamarse 'hacking' si no programación. Y en ese sentido, 'reconocer el lenguaje en que está escrito', obviamente será preciso conocerlo si no sabes programar en tal lenguaje poco podrás hacer.
El paso básico es usar desemsambladores (de diversa índole), que básicamente te ayudan a identificar el punto exacto donde uno quiera 'meter mano' y desde ahí se requieren los conocimientos necesarios para hacer la modificación pertinente que a uno le interese. Al desemsamblar, no importa el lenguaje en que originalmente se escribió el código, normalmente el proceso de compilación suele dificultar al extremo de hacer imposible recuperar el código fuente original incluso sabiendo el lenguaje en que fue escrito, porque noralmente el compilador realiza optimizaciones que anulan el reconocimiento de la semántica de un supuesto lenguaje fuente.
Además, el caso se complica dado la diversidad de plataformas de destino... al hablar de videojuegos, necesariamenter hay que incluir las diversas plataformas que ofrecen las consolas, luego puede complicarse en exceso si el interesado desconoce por completo el hardware y el ensamblador destino donde corre el videojuego.
Aunque lo habitual es asumir que se corre en un pc...
Cada programador/equipo de programación, diseña sus propias estrategias, por lo que fácilmente un 'método' seguido para desentrañar las traducciones para un videojuego, pueden ser inútiles al tratar de aplicarlo a otro. Es esa diversidad, junto con las plataformas de destino lo que lo complican, así como el paso del tiempo (se actualizan conociendo que un sistema ha sido vulnerado, intentarán (se supone), alterarlo para hacerlo más complicado (sea o no efectivo), aunque eso lleva tiempo y varios títulos del mismo equipo, pued epor tanto seguir pautas apenas divergentes.
Tus primeras tareas serían: conocer por encima el hardware destino, comocer el ensamblador destino, conocer los programas que puede haber (o crear tus propias herramientas, algo necesario cuando no encuentres nada al respecto) para abrir, estudiar y modificar el código, conocer la estructura y organización de los videojuegos (si sabe sprogramar videojuegos, serás capaz de reconocer o interpretar como se ha hecho qué o dónde, en qué punto debería encontrarse una llamada a...)... por ejemplo si no sabes qué es un sprite y como se guardan tales imágenes, el intento de querer cambiar una imagen específica podrá darte dolores de cabezas.
Es un mundo bastante amplio, d ela noche a la mañana, desde luego no podrás seguir un 'método', cual si fueran pasos (salvo que se refiera a un juego específico y determinado para el cual se hayan señalado los pasos para hacer tal o cual modificación... mucha gente empieza así, operando con un juego más o menos simple que le sirva de modelo para iniciarse y empezar a aplicar ingeniería inversa con sus conocimientos).
Recomiendo como algo exigible para la ingeniería inversa, conocer ensamblador y luego según en qué rama... conocimientos específicos a la misma (ingeniería inversa de videojuegos, pués conocimientos específicos sobre videojuegos, idem para S.O., ejecutables, drivers, etc...), de otro modo es perder el tiempo jugando a 'voy a cambiar esto a ver qué pasa...'
...que es la técnica más pobre y a veces la única cuando no hay info disponible de ningún tipo (caso por ejemplo de plataformas obsoletas décadas atrás y de las que no se ha conservado gran cosa o de plataformas de muy reciente aparición).