Hotfix release available: 2025-05-14b "Librarian".
upgrade now! [56.2] (what's this?)
babyrev
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| babyrev [2025/07/13 00:09] – created 86.247.56.28 | babyrev [2025/07/13 00:23] (current) – 86.247.56.28 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| + | |||
| + | ===== Analysis | ||
| file nous dit que c'est un executable avec addresses dynamiques et avec les infos de debug | file nous dit que c'est un executable avec addresses dynamiques et avec les infos de debug | ||
| Line 9: | Line 11: | ||
| ltrace nous montre un appel a strncmp | ltrace nous montre un appel a strncmp | ||
| {{: | {{: | ||
| + | |||
| + | on voit que ya un mapping fait sur l' | ||
| + | {{: | ||
| + | |||
| + | ===== Reverse ===== | ||
| + | pour l' | ||
| + | |||
| + | < | ||
| + | L3AK{ngx_qkt_fgz_ugffq_uxtll_dt} | ||
| + | </ | ||
| + | |||
| + | a partir de la on peut facilement extraire le mapping en lui passant une string de a-z en input | ||
| + | |||
| + | sinon on ouvre dans ghidra et on voit ce que ca donne | ||
| + | |||
| + | {{: | ||
| + | |||
| + | on voit sur ghidra que dans notre main on a un init remap, on va y jeter un coup d'oeil | ||
| + | |||
| + | dans le init_remap on a directement la table de mapping qu'on veut | ||
| + | |||
| + | {{: | ||
| + | |||
| + | si on la convertit en code ca donne un truc du genre | ||
| + | |||
| + | <code c> | ||
| + | void init_remap(void) { | ||
| + | for (int i = 0; i < 0x80; i++) { | ||
| + | remap[i] = (char)i; | ||
| + | } | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | remap[' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | sauf que nous on veut l' | ||
| + | |||
| + | <code c> | ||
| + | void init_reverse_remap(void) { | ||
| + | for (int i = 0; i < 0x80; i++) { | ||
| + | reverse_remap[i] = (char)i; | ||
| + | } | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | reverse_remap[' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | reste plus qu'a faire un petit programme a la con pour passer le flag initial qu'on avait dans ce mapping et ca donne | ||
| + | |||
| + | {{: | ||
| + | |||
| + | voila done | ||
babyrev.1752358199.txt.gz · Last modified: by 86.247.56.28
