¿Cómo actúan los programas como Cheat Engine?

Iniciado por mester, 7 Junio 2015, 22:29 PM

0 Miembros y 1 Visitante están viendo este tema.

mester

¿Qué es lo que hacen para editar los valores de un programa que esta en ejecucion?
¿Cuál sería el esquema que utilizan?
Justicia es dar a cada uno lo que se merece

tincopasan

Basicamente deberías conocer que es y como funciona un debugger o depurador, para ello también tendrías que conocer el uso de las apis y su estructura y parametros. Como algo fácil te diré que lo que hace es unirse a un proceso en ejecución (DebugActiveProcess),se obtiene la información del proceso con por ejemplo Process_information  y un vez hecho esto le hace trampa controlando los eventos con una función (WaitForDebugEvent) se implementa un manejador de eventos y se obtiene el estado de los registros, threads (etc) y una vez obtenidos la dirección de dichos eventos y registros se modifican en memoria (WriteMemory).
Esa es la versión super resumida de lo que hace.

Regexp

Hace un tiempo estuve investigando por el tema. La api de windows ofrece diversas opciones para sobrescribir la memoria de otros programas. Hay ejemplos de ésto por internet también, al final de la respuesta dejaré algunos enlaces. Debes tener cuidado con éstos menesteres en caso que decidas utilizarlos.

Algunas funciontes: DebugActiveProcess(), ReadProcessMemory(), WriteProcessMemory(). En las páginas de microsoft hay información detallada acerca de esto.

Tres formas de inyectar tu código en otro proceso
http://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces

Acá una excelente respuesta de una pregunta relacionada con la tuya en StackOverflow
http://stackoverflow.com/questions/6016156/accessing-memory-of-other-applications-c

Otros programas como WPE Pro http://foro.elhacker.net/ingenieria_inversa/tutorial_wpe_pro_captura_modifica_y_envia_paquetes_tcp_cheats_juegos-t405121.0.html también se utilizan con el fin que propones en el post. Respecto a ésto, quizá te interese http://libtins.github.io/

Saludos.
No todo el que deambula está perdido