(Consulta) ¿Cómo hace Cheat Engine para acceder a toda la memoria RAM?

Iniciado por Seyro97, 9 Julio 2015, 19:16 PM

0 Miembros y 2 Visitantes están viendo este tema.

Seyro97

Hola, muy buenas.

La duda viene de que supuestamente un programa no puede acceder a la memoria RAM que no use el programa en sí (por el tema del procesador con modo de protección). Partiendo de aquí, como hace Cheat Engine para poder visualizar e incluso cambiar los valores de cualquier parte de la memoria RAM?

Gracias
Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!

engel lex

el programa directamente no puede acceder... sin embargo por las API del sistema operativo si se puede, ya que esto es necesario para algunas aplicaciones y para el sistema operativo en si mismo...

aquí una de las API involucradas

https://msdn.microsoft.com/en-us/library/windows/desktop/ms680553(v=vs.85).aspx
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Seyro97

¿En serio Windows es quien lo permite? Había oido que era inseguro en algunos sentidos, pero hasta este punto... No creo que sea así en Linux, ¿o si?
Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!

engel lex

linux si lo permite (con fork si no me equivoco)... no es unicamente inseguro, es necesario para aplicaciones XD solo que necesitas privilegios de acuerdo al programa accesado
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Seyro97

¿Pero para que puede ser necesario? ¿Uno podría sabiendo ensamblador modificar el código de un programa cargado en la RAM? No estoy seguro de esto porque aun estoy en los inicios de aprendizaje de ensamblador
Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!

MCKSys Argentina

Cita de: Seyro97 en  9 Julio 2015, 19:30 PM
¿Uno podría sabiendo ensamblador modificar el código de un programa cargado en la RAM?

Claro. Incluso, no hace falta reemplazar todo el programa: basta con allocar mem en el proceso, escribirle nuestro código y agregarle un thread que lo ejecute.
Siempre y cuando tengas los permisos, no?

Saludos!
MCKSys Argentina

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


Seyro97

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!