#254 No te compliques, eso no arregla nada. Nadie q trabaja con Unity se complica en buscar variables con cheat engine porque tenemos acceso al código fuente, por lo tanto, lo que hagas, vamos a saltárnoslo.
Si tu juego es online, lo que tienes que hacer es lo siguiente, que son las cosas básicas.
1) Ofusca el código. No es lo mismo leer Posición = 100 que a = ea2u323829.
2) Server sided lo máximo que puedas. Vidas, armor, munición, etc. Nunca creas en la vida que dice que tiene el cliente, siempre en la q dice q tiene el servidor.
3) Intenta guardar la integridad de tus archivos. Cada X tiempo, comprueba que la integridad no ha sido modificada. Casi todo lo que se trabaja con Unity suele ser mediante inyección de código porque es muy cómodo por ser Mono.
Te voy a decir lo que hace Albion Online:
AppDomain.CurrentDomain.AssemblyLoad += (sender, args) => TUFUNCION();
Que hace esto? cada vez q alguien cargue un assembly en tu cliente, sube un hash al servidor para marcarla.
Además, cada X tiempo hace:
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) {
var fileStream = new FileStream(assembly.Location, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
var binaryReader = new BinaryReader(fileStream);
...............
}
Y hace lo mismo.
Es una mierda, pero puedes evitar inyectores estándard si haces algo parecido. Evita siempre que haya una assembly que no esté en tu whitelist. Y comprueba el hash de tus assemblies para que nadie los modifique.
¿Esto es hackeable? Sí, parcheando las funciones "AppDomain.CurrentDomain.GetAssemblies()" y "AppDomain.CurrentDomain.AssemblyLoad" pero ya tienes que preocuparte de saber como se hace.
Luego, cosas como estas son básicas:
https://msdn.microsoft.com/es-es/library/windows/desktop/ms680345(v=vs.85).aspx
Si alguien quiere debuguear tu juego que al menos sepa parchearlo. Desde .NET puedes hacerlo con: System.Diagnostics.Debugger.IsAttached eso cada X tiempo y mata el proceso.
Otro ejemplo, sabes como detecta Albion Online los zoom hack? Lo que hacen es subir al servidor donde clickean los jugadores, si están clickeando fuera de la pantalla "normal"............BAN.