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
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 (https://msdn.microsoft.com/en-us/library/windows/desktop/ms680553(v=vs.85).aspx)
¿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?
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
¿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
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!
Vale, gracias!