Matériel d'apprentissage des débutants sur les jeux vidéo de l'ingénierie inverse
Voici une liste compilée basée sur des documents d'apprentissage personnellement recommandés pour aider les personnes ayant le processus d'apprentissage à la recherche de jeux vidéo insensé.
J'espère que cela aidera les autres à passer plus de temps à apprendre et à rechercher moins de temps.
La majorité des ressources collectées ici seront axées sur l'inversion des jeux PC sur le système d'exploitation Microsoft Windows avec un assemblage x86 à l'esprit sur X64 car il est plus facile à apprendre.
L'inversion des jeux vidéo d'ingénierie est le plus souvent lié au "piratage de jeu", ils vont et viennent ensemble, alors ne soyez pas surpris si certains matériels d'apprentissage proviennent de ces sites / sources.
Ordonnance recommandée pour apprendre
- Apprenez à rechercher efficacement sur Google, toutes vos réponses et ressources se trouvent sur Internet
- Apprenez à l'aide du moteur de triche
- Renseignez-vous sur les systèmes de numérotation hexadécimale et binaire, et sur la mémoire de l'ordinateur en général
- Apprenez l'assemblage x86
- Apprenez C ++
- Apprenez à l'aide d'Ida / Ghidra
- Apprendre les bases de la programmation de jeux
- Apprendre les principes fondamentaux de l'API Win32
- Apprenez le fonctionnement interne du système d'exploitation Windows, alias internes Windows
- Pratique, pratique, pratique ...
Logiciel nécessaire pour inverser
Il n'est pas recommandé d'exécuter aucun de ces outils (en particulier le moteur de triche) tout en jouant à des jeux multijoueurs qui ont des systèmes anti-triche en place, sauf si vous savez ce que vous faites.
Pour commencer, se familiarisez avec le moteur de triche et Ida ou Ghidra.
Choisir les bons outils
Avant de travailler sur un jeu, vous devez connaître votre cible, il est donc important de recueillir des informations telles que:
- Quelles technologies logicielles il utilise
- Quel langage de programmation et compilateur avec lequel il avait été développé
- A-t-il une technologie anti-inverse ou anti-échange
- Est-ce qu'il fonctionne sur des moteurs de jeu tiers populaires (unité, moteur Unreal, moteur source, etc.)
Les jeux partageant les mêmes moteurs ont souvent une base de code vraiment similaire et récurrente que vous pouvez utiliser à votre avantage. Pour les moteurs de jeu tiers tels que Unreal Engine ou Unity, il existe de nombreux outils personnalisés en ligne qui peuvent faciliter le processus d'ingénierie inverse.
Les jeux codés dans des langages de programmation interprétés / intermédiaires de haut niveau tels que C # ou Java sont généralement beaucoup plus faciles à inverser l'ingénieur par rapport à C / C ++, en raison de la perte des métadonnées car ils ne sont pas compilés en code machine de faible niveau.
Pour les jeux basés sur l'unité (et pour tout autre jeu développé avec le .NET Framework), utilisez DNSPY au lieu d'Ida / Ghidra.
Nous allons principalement nous concentrer sur l'inversion des jeux codés en C ++ car il s'agit toujours de l'étalon-or dans la programmation de jeux vidéo.
Matériaux de niveau débutant à lire
Guides vers le jeu inversé:
- Game Hacking Academy
- Du codage au piratage: un guide d'introduction du piratage de jeu pratique (externe)
Guides vers l'assemblage x86:
- Qu'est-ce que le langage d'assemblage? - Javidx9
- Un cours intensif dans l'assemblage x86 pour les ingénieurs inverses - SensePost
Guides vers Ida:
- Guide des débutants d'Ida Pro
Concepts de programmation de jeux de base:
- Algorithmes et techniques de programmation de jeux - Sanjay Madhav (cet article a 7 pages au total, lisez la page 5-6)
- Comprendre la boucle principale du jeu - Rodrigo Monteiro
Livres:
- Inversion et piratage de jeu:
- Hacking de jeux: Développement de robots autonomes pour les jeux en ligne - Nick Cano
- Analyse pratique des logiciels malveillants: le guide pratique de la dissection des logiciels malveillants - Michael Sikorski et Andrew Honig
- Programmation du jeu:
- Tricks of the Windows Game Programming Gurus, Second Edition (2002) - Andre Lamothe
- Codage de jeu complet, quatrième édition (2012) - Mike McShaffry
Google:
- Comment rechercher efficacement sur Internet - WebTools Company
- Feuille de triche Google
- L'Ultimate Google Search Operators Cheatheet - Helvis Smoteks
Channeaux YouTube incontournables
- Piratage guidé de la chaîne YouTube pour les tutoriels de piratage ingénieur et de jeu de jeu
- La chaîne YouTube de Stephen Chapman pour les tutoriels de moteur de triche
Autres matériaux vraiment utiles
Plus de matériel d'apprentissage de l'assemblage x86:
- x86 Langage d'assemblage applicable à l'ingénierie inverse: les bases - partie 1
- X86 Langage d'assemblage, partie 2
- Tutoriels de l'assemblage de Lena151 (pourrait être obsolète, mais il est toujours beaucoup recommandé):
- Apprenez la chaîne YouTube
- Tuts 4 You - Collection 2011
Autres outils et guides d'outils utiles:
- 9 meilleurs outils d'ingénierie inverse pour 2021
- Sans vapeur
- Renderdoc
- Outils du programmeur NIRSOFT
- Outils réseau NIRSOFT
- Outils système NIRSOFT
Matériel pratique de l'ingénierie inverse et de piratage de jeu:
- Tutoriel ingénierie / patch de jeu: Tycoon de montagnes russes complète avec Ghidra + X64DBG + Python
- Ingénierie inverse et armement XP Solitaire (mini-cours)
- DOOM95 | Faire un AIMBOT
- Hacking de jeux: piratage, slash, butin
- Mode utilisateur ROOTKITS: IAT et crochement en ligne
- x86 API Crowing démystifié
- [C / C ++] Tutoriel d'ingénierie inverse pour les débutants
- Ingénierie inversée et appels de fonctions par adresse
- Jeux en ligne ingénieurs inverse - Dragomon Hunter
- [Tutoriel] Packet Pirat et inversion MMO
- Run-Time DirectX Hooking Utilisation d'injection de code et VTable
- Comment implémenter le balayage des modèles pour obtenir des compensations dynamiquement
- C ++: comment corriger les octets en utilisant PatternScan (AOB) + Explication / extrait
Facteurs de bits et masques de bits:
- Manipulation de bits avec les opérateurs et les masques bits
Livres et papiers:
- Inversion et piratage de jeu:
- Bots de jeux vidéo pratiques: automatiser les processus de jeu à l'aide de C ++, Python et Autoit - Ilya Shpigor
- Inversion: secrets de l'ingénierie inverse - Eldad Eilam
- X86 DÉMÉSEMPLYAGE - WikiBooks.org
- Apprendre l'analyse des logiciels malveillants: explorez les concepts, les outils et les techniques pour analyser et étudier les logiciels malveillants Windows - Monnappa KA
- Programmation du jeu:
- Algorithmes et techniques de programmation de jeux: une approche d'agnostique de plate-forme - Sanjay Madhav
- Modèles de programmation de jeu - Robert Nystrom
- Programmation de l'API Windows et Win32:
- Windows de programmation: le guide définitif de l'API Win32 - Charles Petzold
- Programmation du noyau Windows - Pavel Yosifovich
- Windows internes - Pavel Yosifovich, Alex Ionescu, Mark E. Russinovich, David A. Salomon
- Contournant les techniques anti-débugage, anti-inverse et anti-échabus:
- La référence anti-inverse ultime - Peter Ferrie
- L'art du déballage - Mark Vincent Yason
Listes organisées d'outils, de tutoriels, de ressources et bien plus encore pour les jeux vidéo ingénieurs:
- UnknownCheats Game Hacking Wiki
- La ressource de piratage de jeu ultime
- La ressource de piratage de jeu en ligne ultime
- Un chemin d'étude pour le programmeur de jeu
Ressources de piratage guidées (à partir de 2023, il s'agit désormais de contenu de rémunération):
- GHB1 - Commencez ici Guide débutant du piratage de jeu
- GHB2 - Guide des débutants pour rétro-ingénierie
- GHB3 - Guide intermédiaire du piratage de jeu
- Comment faire un bot MMO - MMORPG Bot Automation
- Hacks internes vs hacks externes - Quelle est la différence?
Sites utiles en cours de route
- Google (sérieusement, utilisez-le beaucoup, tout le temps)
- Documentation officielle de Microsoft (comprend des documents sur MSVC, DirectX, API WIN32, etc.)
- Godbolt (extrêmement utile pour vérifier le code C ++ généré par le compilateur)
Mots-clés que vous souhaitez apprendre en général
- Balayage de mémoire
- Édition de mémoire
- Patchage de mémoire
- Balayage de motif
- assemblage x86
- assemblage x64
- Débogage de processus
- Démontage
- Code décompilé
- Hooking Fonction
- Accrocheur API
- Fonctions de détour
- Injection de DLL
- Tricheurs internes
- Tricheurs externes
- Threads
- Format Windows PE
- API WIN32
- Windows internes
- Anti-débugage
- Anti-inversion
- Anti-échantillon
- Packers de logiciels
- Déballage logiciel