Post

FxGuitarPro

𝄞 Introduction

Intro


Readme.txt

1
2
3
4
5
6
7
8
9
10
11
README.txt

Aucune stéganographie n'est à effectuer sur les images : elles sont uniquement nécessaires au bon fonctionnement du logiciel.

Votre objectif est de comprendre le fonctionnement de l'algorithme de génération de la clé de licence, afin de retrouver celle de votre ami !

Vous pouvez tester votre réponse directement dans le logiciel pour vérifier si vous avez trouvé la bonne clé de licence ou non.


PS : Le premier groupe qui trouve le flag est priĂ© de m’envoyer un message privĂ© sur Discord : fxoverflow
(Des petits chocolats vous attendent ! :)

La facture :

facture

𝄞𝄞 Solution

Pour rĂ©soudre ce challenge, nous pouvons essayer de reverse le fichier .exe mais cela s’avĂšre ĂȘtre trop complexe
 il va falloir ĂȘtre plus stratĂšge !

On peut essayer d’en dĂ©couvrir plus sur le binaire

1
strings {binaire}

string string1 string2

Il devient alors possible de récupérer le code source à partir de cet exécutable. Une simple recherche sur Internet permet de découvrir des outils adaptés à cette tùche.

google

Une rapide recherche permet de dĂ©couvrir l’outil pyinstxtractor :

1
python3 pyinstxtractor.py ../FxGuitarPro.exe

python3

Cela génÚre un dossier avec plusieurs fichiers, dont des fichiers .pyc. On trouve ainsi le fichier FxGuitarPro.pyc.

On dĂ©couvre alors qu’il faut utiliser un dĂ©compilateur pour lire le contenu des fichiers .pyc. C’est aussi l’occasion pour les joueurs de comprendre ce qu’est un bytecode Python. Malheureusement, de nombreux dĂ©compilateurs classiques (comme uncompyle6 ou decompyle3) ne prennent pas encore en charge la version 3.13.3 de Python.

En effectuant une simple recherche Google, on tombe sur le site PyLingual : python3

On y téléverse le fichier .pyc extrait précédemment grùce à pyinstxtractor.

pylingual

pylingual2

GrĂące Ă  PyLingual, on rĂ©cupĂšre le code source original de l’application :

code

On dĂ©couvre alors l’algorithme utilisĂ© pour gĂ©nĂ©rer les clĂ©s de licence : repose sur une date et un secret token.

Reconstitution de la clé

  • Secret token : FxGuitar
  • Date d’achat (prĂ©sente sur la facture) : 2025-03-13
  • Format attendu : celui de datetime.now() (sans espaces, sans sĂ©parateurs entre les deux parties)

FxguitarPro_solve

Je peux maintenant valider mon flag.

𝄞 FLAG : MB{2025-03-13FxGuitar}𝄞

This post is licensed under CC BY 4.0 by the author.