Cheat Engine | ||
---|---|---|
Información general | ||
Tipo de programa | Depuradores / Editores de memoria | |
Autor | Dark Byte | |
Desarrollador | Código abierto | |
Licencia | Código abierto | |
Idiomas | inglés, ruso, portugués, chino tradicional | |
Información técnica | ||
Programado en | Delphi | |
Plataformas admitidas | X64 y X86 | |
Versiones | ||
Última versión estable | Cheat Engine 7.5 [actualizar] ( 14 de febrero de 2023 (1 año, 11 meses y 1 día)) | |
Historial de versiones | 5.3, 5.5, 5.6, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5., 6.5.1, 6.6, 7.1, 7.2, 7.3, 7.4.x, 7.5. | |
Archivos legibles | ||
| ||
Archivos editables | ||
| ||
Enlaces | ||
Cheat Engine, comúnmente abreviado como CE, es un escáner de memoria desarrollado como software libre, además de editor hexadecimal y depurador, desensamblador, ensamblador, speedhack[1] creado por Eric Heijnen (Dark Byte), para el sistema operativo Windows. CE tiene cierto parecido, en cuanto a funciones se refiere, con Memory Hacking Software de L. Spiro, tsearch, y ArtMoney. Cheat Engine se utiliza para escanear la memoria de algún programa con la finalidad de encontrar y por lo general, modificar un valor de interés en el mismo.
Cheat Engine es solo para fines privados y educativos. No obstante, es usado en la mayoría de los casos, para obtener ventajas en videojuegos, es ilegal su uso en la mayoría de los juegos en línea y aunque tiene la posibilidad de acceder (o no) al código interno de cualquier programa en ejecución, las licencias EULA/TOS de muchos programas privativos impiden este tipo de actividades, como su desensamblado e ingeniería inversa, por lo que su uso en el ámbito legal debe limitarse a propósitos que no estén en contra de cualquier cláusula expresada en la licencia del programa objetivo.
Cheat Engine también puede crear entrenadores (Trainers) que tienen un cierto nivel de independencia y tienen la facultad de modificar por sí solos la memoria de un programa en específico sin tener que buscar nuevas direcciones en cada momento. Es importante aclarar que además de la modificación de valores concretos en posiciones estáticas de memoria, Cheat Engine permite la edición del código ensamblador que compone al programa, permitiéndole al usuario cambiar también el comportamiento del programa objetivo en un momento dado.
CE tiene una gran flexibilidad en la gestión de la memoria de un proceso, no obstante, sus funciones más destacadas son las siguientes:
Cheat Engine permite al usuario, si es desarrollador, añadir funciones adicionales al programa mediante el uso de un sofisticado sistema de complementos, esto consiste en una biblioteca de enlace dinámico que exporta tres funciones:
BOOL GetVersion(
PPluginVersion pv, //Pointer a la estructura de datos
int sizeofpluginversion //Tamaño del plugin
);
BOOL DisablePlugin(void);
BOOL InitializePlugin(
PExportedFunctions ef,
int pluginid
);
Los plugins pueden estar codificados en cualquier lenguaje que permita la compilación de bibliotecas de enlace dinámico nativas para Win32. Los lenguajes más usados para ello son C/C++ y Delphi.
Es usado por CE para llamar a funciones alternativas en privilegios del núcleo del sistema operativo (Ring 0) y permite al usuario avanzado eludir técnicas antidepuración mediante el uso de puntos de ruptura hardware y anulación de cualquier API de Windows que impida a Cheat Engine realizar su trabajo con normalidad. Es una característica no esencial, y mucho menos frecuente, pero que sin embargo tiene una potencia increíble y es menester mencionarla en un espacio aparte.
El motor de este sistema es un pequeño archivo (dbk32.sys) ubicado en el directorio principal de Cheat Engine. Es un controlador y es la única parte del programa que no está escrita en Delphi. Por las limitaciones de este lenguaje para trabajar en el desarrollo de controladores se usó el lenguaje C para su creación, compatible con el Kit para controladores de Windows.[2]