[TUTORIAL] Como resolver problemas y alcanzar objetivos

  • Hola Invitado, hemos creado un grupo de telegram para GamerzHacking Latino, para mas informacion ingresa al siguiente enlace AQUI
Estado
Cerrado para nuevas respuestas.


222
Me Gusta
82
Temas

c0de

MOV EAX, EDX
Registrado
19 Abr 2020
Temas
82
Mensajes
178
Ubicación
Localhost
Mejores respuestas
0
En el game hacking, la ingeniería inversa y la vida en general, siempre tendrás problemas que debes resolver. Aprender a resolver problemas y alcanzar objetivos es algo que todos deben aprender a hacer. No puedes confiar en otras personas para resolver tus problemas, necesitas volverte independiente aprendiendo a resolver problemas por ti mismo.

Esto puede parecer un tema extraño para GamerzHacking, pero tenemos aquí a muchos jóvenes que aún no han aprendido estas habilidades. Los jóvenes dependen de su familia y de otras personas para todo. Tu crecimiento como adulto llega cuando te das cuenta de que no obtendrás lo que quieres a menos que lo obtengas por ti mismo. Aquí es cuando la importancia de la independencia se hace evidente, lo que hace que la busque y se convierta en un adulto autosuficiente.

No puede esperar que otras personas resuelvan sus problemas, debes poder solucionar el 99% de los problemas por ti mismo.

Cómo solucionar problemas

¡Usa el método científico! Esto es sumamente importante cuando se realiza ingeniería inversa.

Método científico

  1. Pregunta
  2. Hipótesis
  3. Experimentar
  4. Observación
  5. Análisis
  6. Conclusión
La sección de Experimento y Análisis es la más importante para nosotros. El siguiente es un ejemplo (no se preocupe, no es necesario que lo comprenda).

Pregunta

¿Cómo accedo a la variable munición de forma dinámica?

Hipótesis

Quizás haya una variable de munición dentro de la clase del jugador, si puedo acceder al objeto del jugador, entonces puedo acceder a la variable de munición.

Experimento

Encuentra el objeto del jugador, busca variables de munición dentro de él. Compara y contrasta las compensaciones(offsets) y direcciones tanto de la variable de salud como de la variable de munición y cómo se accede a ellas.

Observación

Abrimos el cheatengine, buscamos la dirección de salud y la dirección de munición, usamos "find what accesses" para ver cómo se usan. Descubrimos que las compensaciones no se compensan con la misma dirección de objeto para cada una de estas variables. Además, cuando cambiamos de armas, cambia la dirección de munición.

Reformamos nuestra hipótesis.

Quizás haya un objeto de arma que contenga la variable munición, quizás haya un puntero al objeto de arma actual en la clase del jugador.

¿Cómo se forma esta hipótesis?

Imagina que eres el desarrollador y crea tu propia lógica para administrar múltiples armas y variables relacionadas con ellas. ¿Cómo realiza un seguimiento del arma actual que está usando para disminuir la variable de munición correcta? Piense en un par de métodos lógicos diferentes que puedan tener sentido y luego pruébelos. De hecho, así es como lo haría cuando consideras la programación orientada a objetos, crearía objetos dinámicos y los seguiría usando punteros y, como el propietario del arma es el jugador, pondría el puntero en el objeto de la entidad.

Experimento reformado:

Toma la dirección de la variable de munición, reste el desplazamiento, esto dará como resultado la dirección del objeto del arma y luego aplicaremos ingeniería inversa a esta estructura desde aquí.

Observación y análisis

La estructura en la que se encuentra la munición es de hecho el objeto del arma. Encontramos en él otras variables relacionadas con el arma. También notamos que está en una variedad de otros objetos de armas que tienen la misma estructura y actúan de manera similar. Cuando rastreamos cada dirección de munición hasta un puntero dinámico multinivel para el arma actual, y luego cambiamos esta arma, notamos un puntero en la clase de jugador que siempre apunta a la munición del arma actual.

Conclusión

El juego realiza un seguimiento de la munición de forma dinámica mediante el uso de un puntero al objeto de arma actual que se encuentra dentro de una serie de objetos de arma. Cuando cambias de arma, el puntero cambia para apuntar al arma correcta. Se accede a la variable de munición para esta arma y otras variables de armas desde esta dirección por compensación relativa.

Para acceder a la variable de munición de forma dinámica, solo necesitamos calcular este puntero multinivel en tiempo de ejecución y siempre apuntará a la dirección de munición correcta.

¿Mira eso? Creamos una hipótesis, la probamos y cuando estaba mal, formamos una nueva y la probamos. Se comprobó la segunda hipótesis. Pero el método científico sostiene que, todas las hipótesis comprobadas requieren pruebas rigurosas y nuevas pruebas a medida que se dispone de conocimientos y pruebas adicionales.

Entonces, la próxima vez que tenga un pequeño problema como "no se puede encontrar la lista de entidades, no es como assault cube" no vengas a GamerzHacking pidiendo ayuda, no somos tu mamá. Necesitas usar el método científico para resolverlo, formar múltiples hipótesis. Si no puedes resolver el problema después de un pocos días, luego haga su pregunta. Si no puede formular hipótesis sólidas para probar, la razón es que no tiene suficiente conocimiento y evidencia para formar la base de su experimento, en cuyo caso necesita buscar en el foro y mira algunos tutoriales.

Constantes

Ahora tenemos que hablar de variables constantes y variables desconocidas.

Nuestra hipótesis intenta resolver una ecuación. La ecuación en su forma más simple es algo como esto:

A * B = C
  • A y B representan variables que el experimento busca definir
  • C representa el comportamiento observado.
  • El objetivo de nuestra hipótesis es definir A y B.
Bueno, A * B es la forma más simple. Esta no es la realidad. En realidad, hay cientos de variables. Necesita definir tantos como sea posible y cada vez que cambie una variable, debe rehacer la prueba.

Esta es la parte más importante aquí, este es un ENORME problema para las personas sin experiencia con este proceso de pensamiento. Cuando intentan resolver un problema, tienen demasiadas variables y no suficientes constantes. No puedes resolver problemas como este.

El objetivo es definir tantas variables como constantes como sea posible, de esta manera su experimento solo tiene que probar una hipótesis relacionada con una variable desconocida o un pequeño conjunto de variables. Si solo tiene que resolver A y B, eso no es tan malo, tal vez pueda definir ambos en un experimento. Pero si tuvieras 20 variables como cuando intentas encontrar la función TraceLine() vas a revertir muchas cosas antes de tener suficientes constantes para tener un experimento exitoso.

Por ejemplo, si tiene algún problema extraño con una biblioteca en un juego en una computadora, pero funciona bien en otra computadora en otro juego, sus variables podrían verse así:
  • Juego
  • Sistema operativo
  • Arquitectura
  • Lógica del juego
Debe aislar el juego, el sistema operativo y la arquitectura y definirlos como constantes. De esta manera, solo está probando la definición de "Lógica del juego". Si solo define Juego y Arquitectura como constantes, cuando realice su observación, no podrá sacar una conclusión que defina la causa y el efecto de las otras dos variables en el experimento.

Con demasiadas variables no constantes, no puede atribuir la causa y el efecto a la variable correcta.

Vemos esto con demasiada frecuencia con preguntas "dll no se inyecta, ¿por qué?"

Nadie puede resolver este problema porque hay demasiadas incógnitas, necesitamos constantes para poder formular hipótesis sobre las posibles causas del problema:
  • ¿En qué sistema operativo estás?
  • ¿Qué inyector estás usando?
  • ¿En qué juego te estás inyectando?
  • ¿Tiene anticheat?
  • ¿El juego es x86 o x64?
  • ¿El inyector es x86 o x64?
  • ¿La DLL es x86 o x64?
  • ¿Cuál es el código fuente de la dll?
  • ¿Está compilando en modo de depuración(debug) o en modo de lanzamiento(release)?
  • Etc...
Si utiliza el método científico, puede resolver casi cualquier problema usted mismo con tiempo y paciencia.

Cómo tener éxito y alcanzar metas

Nadie se convierte en un hacker de juegos 1337 simplemente jugando en Cheat Engine durante un par de minutos cada mes o viendo un par de videos.

Para lograr el éxito en cualquier cosa en la vida, debe poder establecer y lograr metas y darse expectativas realistas.

Lo más importante es que debes ser serio, si no lo es y lo hace por capricho, no tendrá éxito. Henry Ford y Elon Musk no estaban acostados en la cama diciendo "sí, creo que abriré una compañía de automóviles tal vez ... o algo", ¡sé realista! Dedicaron toda su vida a estos proyectos.

Antes de que pueda tener éxito en cualquier cosa, debe:
  1. Define tu meta
  2. Investigue qué se requiere para lograr su objetivo
  3. Elabora un plan de acción y un cronograma
  4. Evalúe su capacidad para lograr el objetivo.
  5. Comprometerse a lograr el objetivo
  6. Realizar el plan de acción
  7. Logra el objetivo y declara la victoria
Defina su objetivo

"Quiero aprender a hackear juegos".

Investigue

Google: Quiero aprender a hackear juegos mmorpg o fps
  • No omita ningún tutorial hasta que lo entienda al 100%
  • Dedique de 2 a 8 horas al día, 5 días a la semana, aprendiendo a piratear juegos
  • Durante 2 meses: complete la guía se publico aqui
  • Durante 2 meses: practica lo aprendido, escribiendo aplicaciones C++ y haciendo entrenadores aburridos
  • Durante 2 meses: haga la guía de ingeniería inversa
  • Durante 2 meses: practica invirtiendo varias aplicaciones y hacer entrenadores
  • Durante 2 meses: haz la Guia de hackenado juegos - intermedio
Evaluar

¿Puedo realmente hacer esto? ¿Realmente quiero hacer esto? ¿Es esto importante para mí? ¿Soy lo suficientemente inteligente y maduro para hacer esto? Esto es lo más grande que he intentado hacer en mi vida, ¿estoy a la altura del desafío? ¿Realmente quiero perder mi tiempo haciendo esto? ¿Tiene esto algún beneficio a largo plazo para mí? ¿Merecen la pena?

Mi mamá todavía me viste y no puedo contar hasta 10, tal vez esto me lleve 2 años en lugar de 1 año...

Evalúa y revisa tu plan de acción!

Cometer

Estoy haciendo esto, no hay nada que me detenga porque soy la descendencia divina del mismísimo Lord Rake. Ningún rey mezquino o bestia vil reclamará mi alma en este viaje desgarrador, porque mi firmeza me otorga inmunidad contra la frívola ignorancia de las masas. Armado con las Sagradas Escrituras y la Corona del Lamentador, haré llover fuego del infierno sobre los paganos, subiré al pináculo de la justicia y me declararé un compañero Dios de Game Hacking.

Realiza

Realiza la Guia para principiantes en el Game Hacking

Logra y declara

Hackea un nuevo juego usando todo tu conocimiento y experiencia obtenida de tu plan de acción.
Declara la victoria.

PALABRAS FINALES
  • Empiece por lo básico
  • Construir una base de conocimiento y experiencia.
  • Se paciente
  • Trabaja duro
  • Comprométete completamente
  • Usa el método científico
  • No te rindas
Creditos
Rake(Mentor y amigo)
 
Estado
Cerrado para nuevas respuestas.