Autor
|
Tema: Ocultar un variable para programas externos. (Leído 4,374 veces)
|
anonimo12121
|
Hola como toy aprendiendo clases etc... Y ma dado la curiosidad del private. He provado para comprovar si era modificable la variable. y oro en private se muede modificar desde el cheat enginer , hay formas para que no se pueda hacer esto? #include <iostream> using namespace std; class clase{ private: int oro; public: void addoro(int x); int vieworo(); }; void clase::addoro(int x){ oro=x; }; int clase::vieworo(){ return oro; }; int main(int argc,char *argv[]){ clase pj; pj.addoro(23); while(1){ cout << pj.vieworo() << "\t" << endl; cin.get(); } cin.get(); return 0; }
|
|
|
En línea
|
|
|
|
ace332
Desconectado
Mensajes: 66
|
Privacy Versus Security Declaring methods or data private enables the compiler to find programming mistakes before they become bugs. Any programmer worth his consulting fees can find a way around privacy if he wants to. Stroustrup, the inventor of C++, said, "The C++ access control mechanisms provide protection against accident--not against fraud." (ARM, 1990.)
Fuente: Teach Yourself C++ in 21 Days, Second Edition
|
|
|
En línea
|
|
|
|
anonimo12121
|
Fuente: Teach Yourself C++ in 21 Days, Second Edition
El google traductor no es muy bueno. Y no lo entendido muy bien.
|
|
|
En línea
|
|
|
|
ace332
Desconectado
Mensajes: 66
|
Bueno, aqui va una traducción un tanto informal: Privacidad Versus Seguridad
Declarar métodos o datos private habilita al compilador a encontrar errores de programación antes de que estos se conviertan en bugs. Cualquier programador competente puede encontrar la manera de violar esta privacidad si así lo desea. Stroustrup, el inventor del C++, dice, "El mecanismo de control de acceso del C++ provee protección contra accidentes -- no contra fraudes."
Fuente: Aprenda Ud. mismo C++ en 21 dias, Segunda edición. Un saludo
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
Hay varios niveles de complejidad que dependen de que tanto queres proteger un programa. Por ejemplo, ofuscando el código podes lograr que quien quiera utilizar Cheat Engine tenga que primero analizar la lógica que empleaste. Es decir, en lugar de tener una variable 'A' con el dato especifico, tenes la variable 'A', 'B' y 'C' que combinadas de una forma en particular generan el valor necesario para el progreso del programa, utilizando algún tipo de cifrado, etc. Con la ofuscación te aseguras que por lo menos no puedan hacer trampa los típicos usuarios que utilizan Cheat Engine buscando un valor y luego limitando el rango buscando nuevamente que valores cambiaron. No podrás frenar a los creadores de cheats solo ofuscando el código, pero si podrás frenar a los que podríamos denominar newbies.
Saliendo de la ofuscación, algo coherente y que la mayoría de juegos online hacen es usar un sistema de protección aparte, donde el núcleo es un driver. A grandes rasgos lo que se hace es hookear ciertas funciones y chequear los parámetros para permitir o denegar las operaciones, en pos de poder evitar la modificación de la memoria del juego. Al hacer eso, para usar algo como Cheat Engine, primero tendrían que saltar el sistema de protección, lo cual complica un poco mas el asunto para los que quieran modificar datos que no corresponde.
Saludos!
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
|
|
|