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

Le Guide des Packs Metin2


Metin2 Dev

Messages recommandés

  • Robot

 

Niveau requis Débutant à Intermédiaire

Temps estimé : Entre 5 et 10 minutes

 

Bonjour. 

 

Je vais essayer tout au long de ce guide de vous donner toutes les informations nécessaires sur les packs. Je vois trop souvent des personnes avec des problèmes de ce côté. Il y a plusieurs facteurs : trop de tutoriels séparés, pas assez précis, etc... Je vais donc lors de ce guide, m'efforcer de vous apprendre la structure des packs dans le but de la modifier à votre guise.

 

Pré-requis :

  • Pour suivre ce guide, peu de pré-requis si ce n'est votre cerveau, un client fonctionnel avec ses sources, et un packer.

 

I. Modifier l'extension de ses packs

Révélation

 

Changer l'extensions de ses packs ? Quel intérêt me direz-vous ? Et bien, bonne question. En réalité, si vous ne faites pas de lourde modification dans la structuration des packs, pas grand chose. Cela apporte cependant une mini barrière de depack pour les débutants. Mais c'est surtout comme on dit dans le métier, du jacky tuning.

 

Sans de lourdes modifications, vos packs devront avoir une extension de trois caractères.

Notez que les index (eix) et les données (epk) ne devront pas avoir la même extension. Sinon, impossible de les reconnaitre pour le client ! Ou alors nous devrions faire de plus grosses modifications, comme ajouter quelque chose en plus dans le nom, comparer la taille des fichiers, etc... Plusieurs méthodes sont possibles, je pourrais faire un autre tutoriel dessus si vous le souhaitez.

 

Bref, passons de suite à l'application !

 

Vous allez pour commencer vous rendre dans vos sources client, puis ouvrir le fichier Eterpack.cpp :

 

Atteignez par la suite :


	strncpy(m_indexFileName, dbname, MAX_PATH);
	strcat(m_indexFileName, ".eix");

	m_stDataFileName = dbname;
	m_stDataFileName += ".epk";
	

C'est ici que nous allons modifier nos extensions. Mettez des extensions de trois caractères sous la même forme que celles-ci, par exemple :


	strncpy(m_indexFileName, dbname, MAX_PATH);
	strcat(m_indexFileName, ".ind");

	m_stDataFileName = dbname;
	m_stDataFileName += ".dat";
	

(Pour Index et Data)

 

Une fois ceci fait, vous pourrez dès maintenant compiler vos sources client.

 

Pendant de temps là, nous allons directement changer les extensions de nos packs ! Ne paniquez pas, on ne vas pas les changer à la main ! La fainéantise  est mon maître mot ! 

Dans vos dossier pack, créez un fichier main.bat, puis mettez de dans :


main
@echo OFF
@echo Modifiez l'extension
@echo de vos fichiers

:rename
set EIX=
set /P EIX=Choisissez l'extension de vos futurs fichiers EIX: %=%
@ren *.eix *.%EIX%
@echo Succès .%EIX%
if "%EIX%" == "" GOTO errore
set EPK=
set /P EPK=Choisissez l'extension de vos futurs fichiers EPK:  : %=%
if "%EPK%" == "" GOTO errore
@ren *.epk *.%EPK%
@echo Succès .%EPK%
@echo ---
GOTO fine
:errore
@echo Erreur !
@echo L'extension n'est pas valide !
@echo ---
GOTO esci programma
:fine
@echo Le changement est terminé ! Quittez le programme.
:esciprogramma
@pause
:rename
set EIX=
set /P EIX=Choisissez l'extension de vos futurs fichiers EIX: %=%
@ren *.eix *.%EIX%
@echo Succès .%EIX%
if "%EIX%" == "" GOTO errore
set EPK=
set /P EPK=Choisissez l'extension de vos futurs fichiers EPK:  : %=%
if "%EPK%" == "" GOTO errore
@ren *.epk *.%EPK%
@echo Succès .%EPK%
@echo ---
GOTO fine
:errore
@echo Erreur !
@echo L'extension n'est pas valide !
@echo ---
GOTO esciprogramma
:fine
@echo Le changement est terminé ! Quittez le programme.
:esciprogramma
@pause

Source : inforge.

Par la suite, lancer ce programme et mettez le nom des extensions comme le programme vous le demande. Il va modifier tout seul les extensions de vos packs, vous n'aurez plus qu'à la supprimer par la suite.

 

Félicitations, vous venez de finir la première étape ! 

 

 

II. Modifier les clés d'encryptage

Révélation

 

Oui, c'est moche... Mais ça se dit.

 

Bien, dans cette partie je vais vous apprendre à changer les clés qui permettent d'encryptées vos packs. Effectivement, il y en a deux : une pour l'index, et une pour les données. Vous pouvez très bien mettre les deux mêmes... Mais ce n'est pas vraiment conseillé. Cela faciliterait à la tâche à celui qui voudrait décrypter votre client, il n'aurait qu'une clé à trouver ! 

Pour cela, restez dans le même fichier que précédemment Eterpack.cpp :

Atteignez cette structure :


static DWORD s_adwEterPackKey[] =
{
45129401,
92367215,
681285731,
1710201,
};

static DWORD s_adwEterPackSecurityKey[] =
{
78952482,
527348324,
1632942,
486274726,
};

Ici, se sont les clés originales, si vous les avez déjà modifiées, elles pourront peut être ne pas être les mêmes.

Gardez ça dans un coin, puis ouvrez votre packer, allez dans son panneau de configuration, puis visualisez ceci :

190304Screenshot-1.png

Vous ne le voyez peut être pas comme ça à vu d'oeil... Mais ces clés sont bien liées ! Elles ne sont simplement pas sous le même format !

 

Nous allons maintenant créer notre propre clés ! Bien, choisissez une chaîne de texte sans espace de 16 caractères. Pour ma part, je vais choisir : dreitutofunkyemu

 

Cette clé va être à l'origine de tous notre cryptage client ! Gardez la bien secrète à l'abri de tout regard ! 

 

Pour commencer, nous allons convertir notre clé pour le packer. Vous allez vous rendre sur un convertisseur de texte en hexadécimal tel que celui-ci. N'importe quel convertisseur "String to hex" ira.

Convertissez ensuite votre texte. Pour vérifier que ça marche, vous pouvez par exemple essayer de convertir dreitutofunkyemu

Vous devriez trouver : 647265697475746f66756e6b79656d75

 

Maitenant, vous pouvez découper la clé en fonction de votre packer. Pour ma part, cela donne :

64-72-65-69-74-75-74-6F-66-75-6E-6B-79-65-6D-75

N'oubliez pas de mettre des majuscules partout ! 

 

Mettez ceci par exemple pour la clé d'encryptage des index. Puis nous allons maintenant la convertir pour nos sources client.

Pour cela plusieurs moyens :

  • Vous pouvez-vous rendez sur un site tel que celui-ci, que j'expliquerai si dessous.
  • Vous pouvez également vous servir du script php que je met en pièce jointe. La manipulation est plus simple, mais vous aurez besoin d'un interprète php.

 

Je continue comme si vous aviez choisis la première option, je reviendrai sur la deuxième plus tard.

Bien entrez votre clé hexadécimal dans l'entrée principale :

191217Screenshot-2.png

 

Vous pouvez en suite vous rendre compte que vous retombez bien sur votre texte si vous prenez le chemin inverse, vous pouvez maintenant regarder cette case : UINT32 - Big Endian (ABCD)

C'est ici que vous trouverez la clé à mettre dans votre client, pour ma part j'ai :

191941Screenshot-4.png

 

J'entre donc dans mes sources client :


static DWORD s_adwEterPackKey[] =
{
	1685218665
	1953854575
	1718972011
	2036690293
};

 

Et voilà ! Vous n'avez plus qu'à faire ça pour la deuxième clés.

Vous devrez pas la suite re-compiler votre client et repacker entièrement votre client avec la bonne clé d'encryptage.

 

Pour la deuxième étape, tout est précisé, vous avez juste a reprendre la bonne clé par la suite :

192141Screenshot-5.png

 

Félicitations, vous venez de finir la deuxième étape ! 

 

 

Je compléterai ce tutoriel quand j'aurai d'autres idées... Si vous avez des propositions ?

 

Bien amicalement,

Drei

  • Love 3

french_banner.gif

Lien vers le commentaire
Partager sur d’autres sites

  • Robot

La première partie est disponible sur plusieurs tutoriels, et l'autre vient de moi-même.

 

Pour la première on peut la retrouver sur... https://fr.metin2.dev/topic/21689-protéger-un-peu-son-client/

 

Et le batch est disponible sur plusieurs postes, sa première apparition sur ce forum était grâce à ant0k il me semble

J'ai juste trouvé ça plus logique de grouper ces parties.

 

Je compte faire un autre tutoriel avec les protections, mais là tout de suite, j'ai pas vraiment le temps.

Modifié par FBot

french_banner.gif

Lien vers le commentaire
Partager sur d’autres sites



  • brilliantdiscord_widget
  • Flux d'Activité

    1. 21

      Metin2 en 2020 peut-on en parler?

    2. 0

      METIN2Project

    3. 3

      Ressources - UnPack - Metin2 Client - Officiel

    4. 0

      Barre des tâches d'argent étendue

    5. 16

      Redémarrage automatique des channels

    6. 16

      Multi Logo GM / SGM / GA

    7. 0

      comment extraire les fichiers locale.epk locale.eix sur le serveur officiel ?

    8. 2

      Funky-emu.net -> fr.metin2.dev

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

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.