English:
Hey,
C# is easy to learn, and is a good programming language to start by acquiring the basics of algorithm.
With the .Net framework (with visual studio), you can easily build windows applications with a UI
(by visually placing buttons on a window, changing properties and coding the actions of each button/control).
With C#, you can do that kind of things:
C# can be used to code video games (with unity3d for example).
C# can also be used to code trainers (windowed program that changes memory values in games).
For example:
(the breath of a wild trainer has been coded in c# to cheat in the game, when emulated in Cemu Wii U emulator. You can change every parameter of the game:
ammo, weapons durability, infinite health/stamina, weapon stats...).
It works for simple programs like emulator, or simple games, but I'm not sure if it will work on online and anti-cheat protected games.
Usually, cheat coders use c++ to build .dll files, and they use injectors (these injectors can be coded in c#) to run the cheats.
The problem is, creating a cheat doesn't only require coding knowledge. Coding is actually the easy part. The most difficult part is to understand
how the game has been coded, what are the securities it uses, how to bypass these securities. This is called "reverse engineering" and consists in
finding weaknesses, addresses (addies/offsets), and how to change them in the memory. Cheat coders use softwares like ollydbg or cheatengine to do so.
Ollydbg:
It requires to know how asm works (a low level language, the last understandable language before binary).
Cheatengine is easier to use, but not sure if you can create a cheat by only using cheatengine.
Français:
Salut,
Le c# est assez facile à apprendre, et c'est un bon langage de programmation pour débuter et acquérir les bases de l'algorithmique.
Avec le framework .Net (avec visual studio), tu peux créer facilement des applications windows avec interface utilisateur
(en plaçant, visuellement, des boutons sur une fenetre, changer les propriétés, coder des actions de chaque bouton/contrôle).
Avec le c#, tu peux faire ce genre de choses:
Le C# peut être utilisé pour coder des jeux vidéos (avec unity3D par exemple).
Le C# peut aussi être utilisé pour coder des "trainers" (des programmes fenêtrés qui changent des valeurs dans la mémoire de jeux).
Par exemple:
(Le trainer Breath of the Wild a été codé en C# pour cheater dans le jeu, quand celui ci est émulé avec l'émulateur Wii U, Cemu).
Tu peux changer tout les paramètres du jeu: nombre de munitions, durabilité des armes, vie/endurance infinie, statistiques des armes...).
ça fonctionne pour des programmes simple comme les émulateurs, les jeux simples, mais pas sûr que ça va fonctionner pour
des jeux en ligne munis d'une protection anti-cheat. Habituellement, les codeurs de cheats utilisent le c++ pour créer des fichiers .dll,
et ils utilisent des injecteurs (ces injecteurs peuvent être codés en c#) pour lancer les cheats.
Le problème est que, créer un cheat ne requière pas uniquement des connaissances en programmation. La programmation, c'est la partie facile.
La partie la plus compliquée, c'est de comprendre comment le jeu a été codé, quelles sécurités il utilise, et comment contourner ces sécurités.
On appelle ça le "reverse engineering" -> ingénierie inversée, et ça consiste à trouver les faiblesses, adresses (addies/offsets), et comment les
changer dans ma mémoire. Les codeurs de cheats utilisent des logiciels comme ollydbg ou cheatengine pour y parvenir.
Ollydbg:
ça demande de savoir comment fonctionne l'asm (assembleur, un langage de bas niveau: un des derniers langage compréhensible par l'homme, avant le binaire).
Cheatengine est facile a utiliser, mais pas sûr que tu puisse créer des cheats en utilisant uniquement cheat engine.