Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

Python - 3: Développons un anti-cheat en Python


Messages recommandés

  • Robot

Yop !

Je fais une troisième partie pour ma liste de tutos sur les anti-cheats.

Aujourd'hui on va déjà étudier comment marche des cheats très fréquents, et que j'aime beaucoup, car c'est du Python :3 On va parler des injections Python.

Pour faire une injection Python, les injecteurs vont se servir de deux fichier : python22.dll et python27.dll

 

Pour ça, ils vont utiliser deux fonctions : PyRun_SimpleFile et PyRun_SimpleString.

 

Nous allons donc modifier le nom de ses fonctions de façon que les injecteurs ne puissent pas y avoir accès.

 

Pour cette manipulation, nous allons utiliser un éditeur Hexadécimal, pour ça je vous conseille d'utiliser HxD

 


 

Bien, ouvrons d'abord notre python22.dll avec HxD, glissez le de dans, et vous obtiendrez normalement ceci :

091428Screenshot-7.png

 

Ne vous inquiétez pas, nous n'allons pas éditer la partie hexadécimal mais la "traduction" car sinon ça serait fastidieux pour rien.

Faites : Ctrl + F. Cherchez PyRun_SimpleString avec cette configuration de recherche :

091554Screenshot-8.png

 

Vous arrivez normalement ici :

091629Screenshot-9.png

 

Maintenant vous allez modifier le nom des fonctions comme vous le souhaitez, par exemple moi je vais changer PyRun_SimpleString en PyRun_SimpllString. Vous devez en fait le modifier comme vous voulez, et essayer de mettre quelque chose d'aléatoire ! Moi je met quelques chose qui ressemble pour que vous compreniez bien. Faites attention, il y a quand même une règle, vous devez avoir le même nombre de caractère. C'est à dire que vous ne devez pas changer la taille du fichier.

Placez vous devant la lettre que vous voulez changer, et pressez la touche qui doit la remplacer.

 

Pour moi cela donne donc :

092140Screenshot-10.png

 

Voilà. Vous sauvegardez avec Ctrl + S.

 

Vous effectuez ensuite la même chose pour python27.dll. Je ne le refais pas avec vous.

 

Bien, maintenant nous allons vérifier au lancement du client que ces fichiers n'ont pas été modifié pour être remis comme avant.

 

Pour cela, nous allons utiliser des hash md5.

 


 

Dépackez votre root.

 

Ajoutez de dans

Hidden Content

    Give reaction to this post to see the hidden content.
.

 

Ajoutez ensuite dans votre prototype.py :

import takuma
 

Changez le nom du fichier si vous avez déjà un takuma.py pour je ne sais qu'elle raison.

 

Packez.

 

Ouvrez votre client et fermez le après.

 

Vous pouvez voir que dans votre client deux fichiers se sont crées :

  • python22.txt
  • python27.txt

 

Chacun d'entre eux contient le hash MD5 du fichier python22.dll ou python27.dll selon le nom du fichier, vous l'aurez compris.

 

Maintenant réouvrez le fichier que vous aviez créer pour le scan MD5 des miles des anciens tutos, vous aurez :

if VerifA != '7fa65499747607679068ce32e57735c4':   dbg.LogBox("Une erreur est survenue le fichier : mssa3d.m3d est corrompu !")   app.Abort()
 

Vous allez faire la même chose avec les deux MD5 fournit dans les txts en adaptant le nom, et en mettant comme ceci le "VerifA" :

if sumFileMD5("python27.dll") != '132f2361979ef7537ca0183492ff58ba':   dbg.LogBox("Une erreur est survenue le fichier : python27.dll est corrompu !")   app.Abort()
 

Faites la même chose pour le python22.dll en remplaçant les deux python27.dll et sans oubliez le hash MD5

 

N'oubliez pas de repack !

 


Et voilà, vous êtes maintenant sécurisé contre les injections Python ! Félicitations !

 

Bonne chance.

  • Metin2 Dev 1
  • Love 1

french_banner.gif

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 2
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Jours populaires



  • brilliantdiscord_widget
  • Flux d'Activité

    1. 6

      problème de connexion à mon serveur local (je suis débutant dans ce genre d'entreprise )

    2. 2

      problème de lancement serveur

    3. 9
    4. 0

      [PVM/PVP] ATLAX2 - EASY PLAY

    5. 2

      problème de lancement serveur

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.