> For the complete documentation index, see [llms.txt](https://sansong.gitbook.io/cyber/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sansong.gitbook.io/cyber/rev/outils/gdb/pattern.md).

# Pattern

Une suite de De Brujin d'ordre n est une suite de lettre dans laquelle aucun mot de taille n n'est répété

## Création de pattern

Pour chercher combien d'octets sont nécessaires à la réécriture de RBP on peut créer un **pattern cyclique** d'une taille spécifique (Suite de de Bruijn) avec `create`.

```sh
gef➤  pattern create 128
[+] Generating a pattern of 128 bytes
aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabbaabcaabdaabeaabfaabgaab
```

## Recherche de pattern

On peut chercher un pattern avec `search`.

```sh
gef➤  pattern search 0x6161616161616167
[+] Searching '0x6161616161616167'
[+] Found at offset 48 (little-endian search) likely
[+] Found at offset 41 (big-endian search)
```

On peut chercher directement un registre.

```sh
gef➤  pattern search $rbp
[+] Searching '$rbp'
[+] Found at offset 32 (little-endian search) likely
[+] Found at offset 25 (big-endian search)
```
