# Haciendo trampa en Open Surge con ScanMem ScanMem es una poderosa herramienta de búsqueda y edición de variables, se puede usar como un motor de trucos para cualquier tipo de juegos. **¡Entonces veamos cómo usarlo!** Lo primero es lo primero, ScanMem solo está disponible para Linux por ahora, por lo que si usa Windows, puede probarlo con [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10) (Subsistema de Windows para Linux), tenga en cuenta que estoy ejecutando scanmem desde Linux, por lo que aún no lo he probado con WSL, le recomendaría que engañe los juegos de consola instalados en WSL (le recomiendo un juego de rol basado en consola llamado Zangband) hasta que Microsoft lance una versión WSL que admita la ejecución de programas de Linux desde ella pero que muestre la GUI en el escritorio de Windows. También puede intentar instalar un entorno de escritorio ligero como XFCE, LXDE o MATE; un servidor vnc como x11vnc server y un cliente VNC para Windows para que pueda iniciar el entorno de escritorio en WSL y conectarse a él a través de VNC desde la misma computadora. ### Instalación Para usar esta herramienta, puede elegir entre dos opciones, instalarla desde el repositorio de apt o compilarla desde la fuente. Puede instalar scanmem desde el repositorio principal de apt de las distribuciones basadas en Debian y Ubuntu. Solo ejecuta el típico: ```bash sudo apt install scanmem ``` Si desea construir scanmem desde la fuente, puede leer las instrucciones en el archivo README de su [repositorio de GitHub](https://github.com/scanmem/scanmem). ### Vamos a descifrar un juego Teóricamente puedes hacer trampa en cualquier juego con esta herramienta, pero a veces es difícil encontrar la variable que quieres cambiar, así que vamos a cambiar el valor Power (Monedas) de un juego de código abierto: "**Open Surge**" Open Surge es un increíble clon de software libre del juego de plataformas Sonic The Hedgehog de Sega, ¡veamos una descripción general del juego! <div style="text-align: center"> <video src="https://raw.githubusercontent.com/fabiopolancoe/scanmem-opensurge_assets/master/OpenSurge-Overview.mp4" width="400px" height="300px" autoplay loop> </video> </div> 1. Abra su terminal (puede usar el atajo de teclado <kbd>Ctrl + Alt + T</kbd>). 2. Comienza el juego 3. Ejecute el siguiente comando: `pidof {el nombre de su juego}`, reemplace los corchetes y el texto dentro de ellos con el comando del juego que está ejecutando, por ejemplo `pidof opensurge`. Este comando generará un número, este número es el PID del programa (Tiene que estar en ejecución) solicitado. ¿Qué es el **PID**? PID es un acrónimo para "**P**rocess **Id**entifier", lo cual significa que es un número que el sistema operativo asigna a cada proceso/tarea, es decir, cada programa en ejecución. 4. Memoriza o copia el PID (Ten en cuenta que en la terminal de linux no puedes copiar cosas con <kbd>Ctrl + C</kbd> por que ése es un atajo de teclado que detiene el proceso en ejecución en primer plano, sino que cuando seleccionas el texto, puedes, o hacer click derecho y seleccionar "copiar" o presionar <kbd>Ctrl + Shift (Mayus.) + C</kbd>. 5. Ejecuta `sudo scanmem {pid}`, reemplaza "{pid}" por el número que acabas de obtener. Sudo ejecuta comandos con **privilegios de root (administrador)**, así que pedirá la contraseña de tu usuario, introdúcela y preciona <kbd>Enter</kbd>. Verás una pantalla así: ![](https://raw.githubusercontent.com/fabiopolancoe/scanmem-opensurge_assets/master/ScanmemStart.png) 6. Ahora empieza la parte divertida, consigue algunas monedas en el juego. Escribe la cantidad de monedas en la terminal. scanmem empezará a buscar variables en la memoria cuyo valor sea el número que introduciste, tal vez te encuentres con algunas miles de variables, pero ésto tiene una solución, consigue unas cuantas monedas y escribe la cantidad total que tienes. Ésta vez, scanmem no buscará desde cero, sino que, de entre todas las variables que habías encontrado antes, buscará las que tengan el nuevo valor que le diste, repite el proceso hasta que solo quede una variable, ¡la has encontrado! _Imágenes y un video del proceso_: ![](https://raw.githubusercontent.com/fabiopolancoe/scanmem-opensurge_assets/master/22Coins.png) Habiendo obtenido 22 Monedass <div style="text-align: center;"> <video src="https://raw.githubusercontent.com/fabiopolancoe/scanmem-opensurge_assets/master/FirstTry.mp4" width="500px" height="400px" controls></video> </div> Primer intento de encontrar la variable ![](https://raw.githubusercontent.com/fabiopolancoe/scanmem-opensurge_assets/master/34Coins.png) Conseguí 12 monedas más <div style="text-align: center;"> <video src="https://raw.githubusercontent.com/fabiopolancoe/scanmem-opensurge_assets/master/VariableEncontrada.mp4" width="500px" height="400px" controls></video> </div> Encontré la variable que buscaba, ahora a modificarla 7. Séptimo y último paso: en la terminal, ejecutamos: `set {cantidad de monedas que quieres}`, Obviamente reemplaza "{cantidad de monedas que quieres}" por, valga la redundancia, la cantidad de monedas que quieres tener. <div style="text-align: center;"> <video src="https://raw.githubusercontent.com/fabiopolancoe/scanmem-opensurge_assets/master/VariableEncontrada.mp4" width="500px" height="400px" controls></video> </div> Modificar el valor de la variable 8. Finalmente escribe `exit` para salir de scanmem y `exit` otra vez para salir del terminal. <div style="text-align: center;"> <h2><b>¡Hasta la próxima!</b><h2></h2> </div>