# Recette

**Catégorie:** Cryptanalyse - **Difficulté:** Intro

**Description:**

<figure><img src="https://4219205392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fybn4btwQnvitOl9uXz9p%2Fuploads%2FV7P8PWeJUMldygntw0Aw%2Fimage.png?alt=media&#x26;token=befc7a83-ba6b-4407-8e79-9da5762e54c7" alt=""><figcaption></figcaption></figure>

*32 69 31 73 34 69 31 73 31 35 64 31 6f 34 39 69 31 6f 34 64 31 6f 33 69 31 6f 31 35 64 31 6f 32 32 64 31 6f 32 30 64 31 6f 31 39 69 31 6f 37 64 31 6f 35 64 31 6f 32 69 31 6f 35 35 69 31 6f 31 64 31 6f 31 39 64 31 6f 31 37 64 31 6f 31 38 64 31 6f 32 39 69 31 6f 31 32 69 31 6f 32 36 69 31 6f 38 64 31 6f 35 39 64 31 6f 32 37 69 31 6f 36 64 31 6f 31 37 69 31 6f 31 32 64 31 6f 37 64 31 6f 35 69 31 6f 31 64 31 6f 32 64 31 6f 31 32 69 31 6f 39 64 31 6f 32 36 64 31 6f*

**Solution:**

Pour ce challenge, il suffit de suivre les étapes mentionnées dans la description du challenge.

**Etape n°1 : Convertir l'hexa en caractères**

Pour cette étape nous pouvons utiliser très simplement [CyberChef](https://gchq.github.io/CyberChef/#recipe=From_Hex\('Space'\)) qui nous donnera d'ailleurs la "fonction" à utiliser :&#x20;

<figure><img src="https://4219205392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fybn4btwQnvitOl9uXz9p%2Fuploads%2FJWLnPIUYPBjbql3pRnSi%2Fimage.png?alt=media&#x26;token=6a5c307c-d5a0-4df1-a95c-f4c120b907e8" alt=""><figcaption></figcaption></figure>

Nous récupérons donc ceci : *`2i1s4i1s15d1o49i1o4d1o3i1o15d1o22d1o20d1o19i1o7d1o5d1o2i1o55i1o1d1o19d1o17d1o18d1o29i1o12i1o26i1o8d1o59d1o27i1o6d1o17i1o12d1o7d1o5i1o1d1o2d1o12i1o9d1o26d1o`*

**Etape n°2 : Développer pour ne plus voir de chiffres**

Cette étape est la plus "compliquée" car il faut comprendre le sens de l'instruction : "*Développer de sorte à ne plus voir de chiffres*".\
Pour ne plus voir les chiffres, nous serions tenté de les enlevés à la main dans un bloc note ou autre. Mais le terme "Développer" ici, signifie qu'il faut multiplier chaque lettre par le nombre qui le précède (Ex : 2\*i = ii, 1\*s = s, 4\*i = iiii...).\
Pour faire cela rapidement et simplement nous pouvons utiliser un petit script qui le fait à notre place :&#x20;

{% code lineNumbers="true" %}

```python
import re

def multiply_letters(text):
    result = ""
    pattern = r'(\d+)([a-zA-Z]+)'
    matches = re.findall(pattern, text)
    
    for count, letter in matches:
        result += letter * int(count)
    
    return result

input_text = "2i1s4i1s15d1o49i1o4d1o3i1o15d1o22d1o20d1o19i1o7d1o5d1o2i1o55i1o1d1o19d1o17d1o18d1o29i1o12i1o26i1o8d1o59d1o27i1o6d1o17i1o12d1o7d1o5i1o1d1o2d1o12i1o9d1o26d1o"
output_text = multiply_letters(input_text)
print(output_text)
```

{% endcode %}

Ce petit script va nous renvoyer ce dont nous avons besoin : *`iisiiiisdddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioddddoiiiodddddddddddddddoddddddddddddddddddddddoddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiodddddddodddddoiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiododddddddddddddddddddodddddddddddddddddoddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiioiiiiiiiiiiiiiiiiiiiiiiiiiioddddddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiioddddddoiiiiiiiiiiiiiiiiioddddddddddddodddddddoiiiiiododdoiiiiiiiiiiiiodddddddddoddddddddddddddddddddddddddo`*

Etape n°3 : Décoder le Deadfish

Maintenant que nous avons notre code Deadfish, nous allons devoir le convertir pour pouvoir continuer à avancer.\
Pour ce faire, nous utilisons cet outil ([dCode - Deadfish](https://www.dcode.fr/deadfish-language)) pour décoder ce bloc : <br>

<figure><img src="https://4219205392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fybn4btwQnvitOl9uXz9p%2Fuploads%2FlEuHAi4KIwqB8AxSdwnH%2Fimage.png?alt=media&#x26;token=1e6387f5-361c-4c9a-aecc-013875d9fcbf" alt=""><figcaption></figcaption></figure>

Nous obtenons donc ce résultat assez étrange : *`1b^aR<(;4/1hgTC1NZtl1LFWKDIHFRI/`*

**Etape n°4 : Convertir le b85 en caractères**

Avec le résultat précédent, nous allons utiliser encore une fois utiliser l'outil [Cyberchef](https://gchq.github.io/CyberChef/#recipe=From_Base85\('!-u',true,'z'\)) et convertir le message final pour obtenir le flag :&#x20;

<figure><img src="https://4219205392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fybn4btwQnvitOl9uXz9p%2Fuploads%2F1p7hoYOvJDIkci7J9h7c%2Fimage.png?alt=media&#x26;token=87415440-1713-425a-9b6d-089db4e51f84" alt=""><figcaption></figcaption></figure>

<details>

<summary>🚩 FLAG</summary>

```
404CTF{M4igr3t_D3_c4naRd}
```

</details>
