Materiales de aprendizaje para principiantes en videojuegos de ingeniería inversa
Aquí hay una lista compilada basada en materiales de aprendizaje recomendados personalmente para ayudar a las personas con el proceso de aprender a revertir los videojuegos de ingeniería.
Espero que ayude a otros a pasar más tiempo aprendiendo y menos tiempo buscando.
La mayoría de los recursos recopilados aquí se centrarán en revertir los juegos de PC en el sistema operativo Microsoft Windows con el ensamblaje X86 en mente sobre X64, ya que es más fácil de aprender.
Revertir los videojuegos de ingeniería se relaciona la mayoría de las veces con la "piratería de juegos", van y vienen juntos, así que no se sorprendan si algunos de los materiales de aprendizaje provienen de tales sitios/fuentes.
Orden recomendada para aprender
- Aprenda a buscar eficientemente en Google, todas sus respuestas y recursos se encuentran en Internet
- Aprenda usar el motor de trucos
- Aprenda sobre sistemas de numeración hexadecimal y binaria, y sobre la memoria de la computadora en general
- Aprender x86 asamblea
- Aprende C ++
- Aprenda usar Ida/Ghidra
- Aprender conceptos básicos de la programación de juegos
- Aprender fundamentos de la API WIN32
- Aprenda el funcionamiento interno del sistema operativo de Windows, también conocido como Windows -Postals
- Practicar, practicar, practicar ...
Software necesario para revertir
No se recomienda ejecutar ninguna de estas herramientas (especialmente trucos) mientras juega juegos multijugador que tienen sistemas anti-trato, a menos que sepa lo que está haciendo.
Para empezar, se familiaricen con Cheat Engine y Ida o Ghidra.
Elegir las herramientas correctas
Antes de trabajar en un juego, debes conocer tu objetivo, por lo que es importante recopilar información como:
- ¿Qué tecnologías de software usa?
- Con qué lenguaje de programación y compilador se había desarrollado
- ¿Tiene alguna tecnología anti-reversión o anti-Tamper
- ¿Se está ejecutando en cualquier motores de juego de terceros populares (Unity, Unreal Engine, Source Engine, etc.)
Los juegos que comparten los mismos motores a menudo tienen una base de código realmente similar y recurrente que puede usar para su ventaja. Para los motores de juegos de terceros, como Unreal Engine o Unity, hay muchas herramientas personalizadas en línea que pueden aliviar el proceso de ingeniería inversa.
Los juegos codificados en lenguajes de programación interpretados/intermedios de alto nivel, como C# o Java, son generalmente mucho más fáciles de revertir la ingeniería en comparación con C/C ++, debido a que los metadatos no se pierden, ya que no se compilan en el código de máquina de bajo nivel.
Para juegos basados en la unidad (y para cualquier otro juego desarrollado con el marco .NET) use DNSPY en lugar de Ida/Ghidra.
Principalmente nos centraremos en revertir juegos codificados en C ++, ya que sigue siendo el estándar de oro en la programación de videojuegos.
Materiales de nivel para principiantes de lectura imprescindible
Canales de YouTube que debe ver
- Hacking Guiding Canal de YouTube para tutoriales de ingeniería inversa y piratería de juegos
- El canal de YouTube de Stephen Chapman para tutoriales del motor de trucos
Otros materiales realmente útiles
Más material de aprendizaje de ensamblaje x86:
- X86 Lenguaje de ensamblaje aplicable a Ingeniería inversa: lo básico - Parte 1
- X86 Lenguaje de ensamblaje, Parte 2
- Lena151 Tutoriales de ensamblaje (puede estar desactualizado, pero aún se recomienda mucho):
- LearnTheNECHECH canal de YouTube
- Tuts 4 You - Collection 2011
Otras herramientas y guías de herramientas útiles:
- 9 mejores herramientas de ingeniería inversa para 2021
- Sin vapor
- Renderdoc
- Herramientas de programador de Nirsoft
- Herramientas de red de Nirsoft
- Herramientas del sistema Nirsoft
Materiales prácticos de ingeniería inversa y piratería de juegos:
- Ingeniería inversa/Tutorial de parches del juego: Tycoon de montaña rusa completa con ghidra+x64dbg+python
- Ingeniería inversa y armadura de solitario XP (mini-curso)
- Doom95 | Hacer un AIMBOT
- Pirateo de juegos: hack, slash, botín
- RootKits de modo de usuario: IAT y enganche en línea
- X86 API Conacimiento desmitificado
- [C/C ++] Tutorial de ingeniería inversa para novatos
- Ingeniería inversa y llamadas de funciones por dirección
- Juegos en línea de ingeniería inversa - Dragomon Hunter
- [Tutorial] Hacking de paquetes e invertir MMO
- Engiro DirectX de tiempo de ejecución usando inyección de código y vTable
- Cómo implementar la escanificación de patrones para obtener compensaciones dinámicamente
- C ++: cómo parchear bytes usando Patternscan (AOB)+Explicación / Fragmento
Banderas de bits y máscaras de bits:
- Manipulación de bits con operadores bit a bits y máscaras de bits
Libros y papeles:
- Reversión y piratería de juegos:
- Bots de videojuegos prácticos: automatización de procesos de juego utilizando C ++, Python y Autoit - Ilya Shpigor
- Reversión: Secretos de ingeniería inversa - Eldad Eilam
- X86 Desmontaje - wikibooks.org
- Análisis de malware de aprendizaje: explore los conceptos, herramientas y técnicas para analizar e investigar el malware de Windows - Monnappa KA
- Programación del juego:
- Algoritmos y técnicas de programación de juegos: un enfoque agnóstico de plataforma - Sanjay Madhav
- Patrones de programación de juegos - Robert Nystrom
- Programación de API de Windows y Win32:
- Programación de Windows: la guía definitiva de la API Win32 - Charles Petzold
- Programación del núcleo de Windows - Pavel Yosifovich
- Windows -Testa - Pavel Yosifovich, Alex Ionescu, Mark E. Russinovich, David A. Solomon
- Omitiendo técnicas anti-fondos, anti-inversiones y anti-tamperidad:
- La última referencia anti -reversión - Peter Ferrie
- El arte de desempacar - Mark Vincent Yason
Listas curadas de herramientas, tutoriales, recursos y mucho más para los videojuegos de ingeniería inversa:
- Wiki de piratería de juegos desconocidosCheats
- El último recurso de piratería de juegos
- El último recurso de piratería de juegos en línea
- Una ruta de estudio para el programador de juegos
Recursos de piratería guiados (a partir de 2023 ahora tiene contenido de parque de pago):
- GHB1 - Comience aquí la guía para principiantes para la piratería de juegos
- GHB2 - Guía para principiantes para la ingeniería inversa
- GHB3 - Guía intermedia para la piratería de juegos
- Cómo hacer un bot MMO - Automatización MMORPG BOT
- Hacks internos versus externos: ¿cuál es la diferencia?
Sitios útiles en el camino
- Google (en serio, úsalo, mucho, todo el tiempo)
- Documentación oficial de Microsoft (incluye documentos sobre MSVC, DirectX, WIN32 API, etc.)
- Godbolt (extremadamente útil para verificar el código C ++ generado por el compilador)
Palabras clave sobre las que desea aprender en general
- Escaneo de memoria
- Edición de memoria
- Parcheo de memoria
- Escaneo de patrones
- ensamblaje X86
- ensamblaje X64
- Depuración de procesos
- Código de desmontaje
- Código de descomposición
- Función enganche
- Enganche de la API
- Funciones de desvío
- Inyección de DLL
- Trucos internos
- Trucos externos
- Trapos
- Formato de PE de Windows
- API WIN32
- Windows -THERAL
- Anti-debuges
- Reversión
- Anti-tamper
- Empacadores de software
- Desempaquetado de software