Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Capture The Flag (Bianries)

    Bonjour,

    (Je sais pas si mon message et sur le bon forum, si c'est le cas dites le moi et je bougerais la discussion.)

    Comme vous pouvez le voir dans le titre je dois faire un devoir qui consiste a plusieurs challenges. Pour ces challenges on nous a conseiller d’étudier des méthodes de reverse engineering.
    On m'a conseiller d'utiliser gdb pour en resoudre un ou plusieurs challenge mais lorsque je regarde je vois les différentes variable (ici la fonction main obtenue avec la commande gdb :disas main):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
       0x0000000000001203 <+0>:	push   %rbp
       0x0000000000001204 <+1>:	mov    %rsp,%rbp
       0x0000000000001207 <+4>:	sub    $0x70,%rsp
       0x000000000000120b <+8>:	lea    -0x70(%rbp),%rdx
       0x000000000000120f <+12>:	mov    $0x0,%eax
       0x0000000000001214 <+17>:	mov    $0xc,%ecx
       0x0000000000001219 <+22>:	mov    %rdx,%rdi
       0x000000000000121c <+25>:	rep stos %rax,%es:(%rdi)
       0x000000000000121f <+28>:	mov    %rdi,%rdx
       0x0000000000001222 <+31>:	mov    %eax,(%rdx)
       0x0000000000001224 <+33>:	add    $0x4,%rdx
       0x0000000000001228 <+37>:	lea    0xdfc(%rip),%rdi        # 0x202b
       0x000000000000122f <+44>:	mov    $0x0,%eax
       0x0000000000001234 <+49>:	callq  0x1050 <printf@plt>
       0x0000000000001239 <+54>:	mov    0x2e10(%rip),%rax        # 0x4050 <stdout@@GLIBC_2.2.5>
       0x0000000000001240 <+61>:	mov    %rax,%rdi
       0x0000000000001243 <+64>:	callq  0x1070 <fflush@plt>
       0x0000000000001248 <+69>:	lea    -0x70(%rbp),%rax
       0x000000000000124c <+73>:	mov    $0x63,%edx
       0x0000000000001251 <+78>:	mov    %rax,%rsi
       0x0000000000001254 <+81>:	mov    $0x0,%edi
       0x0000000000001259 <+86>:	callq  0x1060 <read@plt>
       0x000000000000125e <+91>:	lea    -0x70(%rbp),%rax
       0x0000000000001262 <+95>:	mov    %rax,%rdi
       0x0000000000001265 <+98>:	callq  0x1175 <check_pass>
       0x000000000000126a <+103>:	test   %eax,%eax
       0x000000000000126c <+105>:	je     0x127a <main+119>
       0x000000000000126e <+107>:	lea    0xdc7(%rip),%rdi        # 0x203c
       0x0000000000001275 <+114>:	callq  0x1030 <puts@plt>
       0x000000000000127a <+119>:	mov    $0x0,%eax
       0x000000000000127f <+124>:	leaveq 
       0x0000000000001280 <+125>:	retq
    et ici la fonction check pass
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Dump of assembler code for function check_pass:
       0x0000000000001175 <+0>:	push   %rbp
       0x0000000000001176 <+1>:	mov    %rsp,%rbp
       0x0000000000001179 <+4>:	sub    $0x10,%rsp
       0x000000000000117d <+8>:	mov    %rdi,-0x8(%rbp)
       0x0000000000001181 <+12>:	mov    -0x8(%rbp),%rax
       0x0000000000001185 <+16>:	mov    %rax,%rdi
       0x0000000000001188 <+19>:	callq  0x1040 <strlen@plt>
       0x000000000000118d <+24>:	cmp    $0x6,%rax
       0x0000000000001191 <+28>:	je     0x11fc <check_pass+135>
       0x0000000000001193 <+30>:	mov    -0x8(%rbp),%rax
       0x0000000000001197 <+34>:	add    $0x1,%rax
       0x000000000000119b <+38>:	movzbl (%rax),%eax
       0x000000000000119e <+41>:	cmp    $0x70,%al
       0x00000000000011a0 <+43>:	jne    0x11fc <check_pass+135>
       0x00000000000011a2 <+45>:	mov    -0x8(%rbp),%rax
       0x00000000000011a6 <+49>:	add    $0x3,%rax
       0x00000000000011aa <+53>:	movzbl (%rax),%eax
       0x00000000000011ad <+56>:	cmp    $0x6b,%al
       0x00000000000011af <+58>:	jne    0x11fc <check_pass+135>
       0x00000000000011b1 <+60>:	mov    -0x8(%rbp),%rax
       0x00000000000011b5 <+64>:	movzbl (%rax),%eax
       0x00000000000011b8 <+67>:	cmp    $0x45,%al
       0x00000000000011ba <+69>:	jne    0x11fc <check_pass+135>
       0x00000000000011bc <+71>:	mov    -0x8(%rbp),%rax
       0x00000000000011c0 <+75>:	add    $0x4,%rax
       0x00000000000011c4 <+79>:	movzbl (%rax),%eax
       0x00000000000011c7 <+82>:	cmp    $0x33,%al
       0x00000000000011c9 <+84>:	jne    0x11fc <check_pass+135>
       0x00000000000011cb <+86>:	mov    -0x8(%rbp),%rax
       0x00000000000011cf <+90>:	add    $0x5,%rax
       0x00000000000011d3 <+94>:	movzbl (%rax),%eax
       0x00000000000011d6 <+97>:	cmp    $0x4b,%al
       0x00000000000011d8 <+99>:	jne    0x11fc <check_pass+135>
       0x00000000000011da <+101>:	mov    -0x8(%rbp),%rax
       0x00000000000011de <+105>:	add    $0x2,%rax
       0x00000000000011e2 <+109>:	movzbl (%rax),%eax
       0x00000000000011e5 <+112>:	cmp    $0x31,%al
       0x00000000000011e7 <+114>:	jne    0x11fc <check_pass+135>
       0x00000000000011e9 <+116>:	lea    0xe18(%rip),%rdi        # 0x2008
       0x00000000000011f0 <+123>:	callq  0x1030 <puts@plt>
       0x00000000000011f5 <+128>:	mov    $0x0,%eax
       0x00000000000011fa <+133>:	jmp    0x1201 <check_pass+140>
       0x00000000000011fc <+135>:	mov    $0x1,%eax
       0x0000000000001201 <+140>:	leaveq 
       0x0000000000001202 <+141>:	retq   
    End of assembler dump.
    Mais lorsque je place des breakpoints et que je regarde les valeurs des différentes variable soit ça me met : <error: Cannot access memory at address 0xffffffffffffdc80>
    ou soit ça me met le mot de passe que je met rentre lorsque le programme me le demande.
    Je pense avoir loupé quelque chose ou mal compris ce qu'on m'a dit c'est pour cela que je voulais savoir si vous aviez des conseils et/ou des pistes à me donné.

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    novembre 2010
    Messages
    2 799
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : novembre 2010
    Messages : 2 799
    Points : 7 648
    Points
    7 648

    Par défaut

    salut,

    Citation Envoyé par Nijutsu Voir le message
    lorsque je place des breakpoints et que je regarde les valeurs des différentes variable soit ça me met : <error: Cannot access memory at address 0xffffffffffffdc80>
    ou soit ça me met le mot de passe que je met rentre lorsque le programme me le demande.
    tu peux mettre la façon dont tu t'y prends/l'extrait de session gdb concerné stp ?

    Citation Envoyé par Nijutsu Voir le message
    si vous aviez des conseils et/ou des pistes à me donné.
    yep, lire la doc de gdb au chapitre breakpoints par exemple, ça peut être un bon début...

    par ailleurs il n'y a même pas besoin de gdb ici, rien qu'en regardant le code on voit le pass
    Avant donc que d'écrire, apprenez à penser.
    Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
                                                        - Nicolas Boileau, L'Art poétique

Discussions similaires

  1. [Concours IA] Capture the flag
    Par T-DUP dans le forum Intelligence artificielle
    Réponses: 0
    Dernier message: 19/12/2012, 11h43
  2. [GWT2.3] Capture de l'event : close the window
    Par valkeke dans le forum GWT et Vaadin
    Réponses: 9
    Dernier message: 02/12/2012, 11h19
  3. WinPcap: The Windows Packet Capture Library
    Par forum dans le forum Téléchargez
    Réponses: 0
    Dernier message: 30/06/2011, 10h47
  4. Réponses: 3
    Dernier message: 01/11/2002, 14h30
  5. Flags ??
    Par foussa dans le forum Assembleur
    Réponses: 21
    Dernier message: 19/10/2002, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo