Thedary escribió:Pablo que crees que podriamos hacerle a la máquina virtual de lua para que no sea tan explicita.
Bueno lo que planteas es complejo. Como respuesta rapida te diria que es practicamente imposible proteger la ejecucion de una vm stacked como lua, es lo que digo, si el cliente lo puede ejecutar lo puede decompilar.
Otra cosa es hacer la vida del hacker una mierda, dandole tanto trabajo que realmente no merezca la pena intentarlo.
Yo tengo algunos metodos pero la verdad es que no los uso porque en realidad no me importa que se vean mis sources mientras lo complicado sea editarlos.
Lo principal para combatir la lectura de memoria es compilar los scripts lua en bytecode. eso hara que dejen de estas visibles en un ram dump. Luego hay una batalla de cosas que puedes hacer para hacer mas tedioso y complicado acceder. Por ejemplo, en las
Technical notes de lua veras una forma de desabilitar el lexer de lua mediante luaY_parser, esto desabilitara la ejecucion de codigo lua "plano" y solo permitira el uso de bytecode.
Como tambien existen herramientas para decompilar bytecode lua como unluac o luadec, se puede obstaculizar editando el motor de lua, por ejemplo, en un juego que estoy haciendo un multiplayer (bully se, rockstar) cambiaron el tipo de lua number de double a float, esto dejaba inservibles los decompilers (hasta que encontre el detalle) pero vamos asi se pueden hacer diversos cambios en tipos, opcodes de lua etc que haran una mierda extrema intentar decompilar los scripts.
Tambien es conveniente colocar las funciones criticas y llamadas en lenguaje nativo y aplicar tecnicas, packers etc... Pero al final, lo hackeare.