Partage
  • Partager sur Facebook
  • Partager sur Twitter

Informations intéressantes à partir des symboles ?

    21 février 2023 à 19:22:54

    Salut tout le monde ! :pirate:

    Est-il possible d'apprendre des informations intéressantes sur un exécutable à partir des symboles ?

    Voici un code C++ :

    #include <iostream>
    
    void fonction1() {
        std::cout << "fonction1" << std::endl;
    }
    
    void fonction2() {
        std::cout << "fonction2" << std::endl;
    }
    
    void fonction3() {
        std::cout << "fonction3" << std::endl;
    }
    
    void fonction4() {
        std::cout << "fonction4" << std::endl;
    }
    
    void fonction5() {
        std::cout << "fonction5" << std::endl;
    }
    
    int main() {
    
        int a = 8;
        int b = 9;
        int c = a + b;
    
        fonction1();
        fonction2();
        fonction3();
        fonction4();
        fonction5();
    
        std::cout << "Hello world" << std::endl;
    
        std::cout << "a = " << a << std::endl;
        std::cout << "b = " << b << std::endl;
        std::cout << "c = " << c << std::endl;
        
        return 0;
    }

    Je le compile et j'affiche les symboles contenus dans l'exécutable avec la commande readelf --symbols :

    Symbol table '.dynsym' contains 14 entries:
       Num:    Value          Size Type    Bind   Vis      Ndx Name
         0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
         1: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZSt4endlIcSt11char_trait@GLIBCXX_3.4 (3)
         2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __cxa_atexit@GLIBC_2.2.5 (2)
         3: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZStlsISt11char_traitsIcE@GLIBCXX_3.4 (3)
         4: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZNSolsEPFRSoS_E@GLIBCXX_3.4 (3)
         5: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZNSt8ios_base4InitC1Ev@GLIBCXX_3.4 (3)
         6: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZNSolsEi@GLIBCXX_3.4 (3)
         7: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTab
         8: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __libc_start_main@GLIBC_2.2.5 (2)
         9: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
        10: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_registerTMCloneTable
        11: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZNSt8ios_base4InitD1Ev@GLIBCXX_3.4 (3)
        12: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize@GLIBC_2.2.5 (2)
        13: 0000000000004040   272 OBJECT  GLOBAL DEFAULT   26 _ZSt4cout@GLIBCXX_3.4 (3)
    
    Symbol table '.symtab' contains 81 entries:
       Num:    Value          Size Type    Bind   Vis      Ndx Name
         0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
         1: 0000000000000318     0 SECTION LOCAL  DEFAULT    1 
         2: 0000000000000338     0 SECTION LOCAL  DEFAULT    2 
         3: 0000000000000358     0 SECTION LOCAL  DEFAULT    3 
         4: 000000000000037c     0 SECTION LOCAL  DEFAULT    4 
         5: 00000000000003a0     0 SECTION LOCAL  DEFAULT    5 
         6: 00000000000003c8     0 SECTION LOCAL  DEFAULT    6 
         7: 0000000000000518     0 SECTION LOCAL  DEFAULT    7 
         8: 0000000000000686     0 SECTION LOCAL  DEFAULT    8 
         9: 00000000000006a8     0 SECTION LOCAL  DEFAULT    9 
        10: 00000000000006e8     0 SECTION LOCAL  DEFAULT   10 
        11: 0000000000000808     0 SECTION LOCAL  DEFAULT   11 
        12: 0000000000001000     0 SECTION LOCAL  DEFAULT   12 
        13: 0000000000001020     0 SECTION LOCAL  DEFAULT   13 
        14: 0000000000001080     0 SECTION LOCAL  DEFAULT   14 
        15: 0000000000001090     0 SECTION LOCAL  DEFAULT   15 
        16: 00000000000010e0     0 SECTION LOCAL  DEFAULT   16 
        17: 00000000000014c8     0 SECTION LOCAL  DEFAULT   17 
        18: 0000000000002000     0 SECTION LOCAL  DEFAULT   18 
        19: 0000000000002054     0 SECTION LOCAL  DEFAULT   19 
        20: 00000000000020d0     0 SECTION LOCAL  DEFAULT   20 
        21: 0000000000003d70     0 SECTION LOCAL  DEFAULT   21 
        22: 0000000000003d80     0 SECTION LOCAL  DEFAULT   22 
        23: 0000000000003d88     0 SECTION LOCAL  DEFAULT   23 
        24: 0000000000003f88     0 SECTION LOCAL  DEFAULT   24 
        25: 0000000000004000     0 SECTION LOCAL  DEFAULT   25 
        26: 0000000000004040     0 SECTION LOCAL  DEFAULT   26 
        27: 0000000000000000     0 SECTION LOCAL  DEFAULT   27 
        28: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS crtstuff.c
        29: 0000000000001110     0 FUNC    LOCAL  DEFAULT   16 deregister_tm_clones
        30: 0000000000001140     0 FUNC    LOCAL  DEFAULT   16 register_tm_clones
        31: 0000000000001180     0 FUNC    LOCAL  DEFAULT   16 __do_global_dtors_aux
        32: 0000000000004150     1 OBJECT  LOCAL  DEFAULT   26 completed.8060
        33: 0000000000003d80     0 OBJECT  LOCAL  DEFAULT   22 __do_global_dtors_aux_fin
        34: 00000000000011c0     0 FUNC    LOCAL  DEFAULT   16 frame_dummy
        35: 0000000000003d70     0 OBJECT  LOCAL  DEFAULT   21 __frame_dummy_init_array_
        36: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS main.cpp
        37: 0000000000002004     1 OBJECT  LOCAL  DEFAULT   18 _ZStL19piecewise_construc
        38: 0000000000004151     1 OBJECT  LOCAL  DEFAULT   26 _ZStL8__ioinit
        39: 00000000000013dd    77 FUNC    LOCAL  DEFAULT   16 _Z41__static_initializati
        40: 000000000000142a    25 FUNC    LOCAL  DEFAULT   16 _GLOBAL__sub_I__Z9fonctio
        41: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS crtstuff.c
        42: 00000000000022b4     0 OBJECT  LOCAL  DEFAULT   20 __FRAME_END__
        43: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS 
        44: 0000000000002054     0 NOTYPE  LOCAL  DEFAULT   19 __GNU_EH_FRAME_HDR
        45: 0000000000001000     0 FUNC    LOCAL  DEFAULT   12 _init
        46: 0000000000003d88     0 OBJECT  LOCAL  DEFAULT   23 _DYNAMIC
        47: 0000000000003d80     0 NOTYPE  LOCAL  DEFAULT   21 __init_array_end
        48: 0000000000003d70     0 NOTYPE  LOCAL  DEFAULT   21 __init_array_start
        49: 0000000000003f88     0 OBJECT  LOCAL  DEFAULT   24 _GLOBAL_OFFSET_TABLE_
        50: 0000000000004010     0 NOTYPE  GLOBAL DEFAULT   25 _edata
        51: 0000000000004000     0 NOTYPE  WEAK   DEFAULT   25 data_start
        52: 0000000000002000     4 OBJECT  GLOBAL DEFAULT   18 _IO_stdin_used
        53: 0000000000001295    51 FUNC    GLOBAL DEFAULT   16 _Z9fonction5v
        54: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize@@GLIBC_2.2
        55: 00000000000012c8   277 FUNC    GLOBAL DEFAULT   16 main
        56: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZSt4endlIcSt11char_trait
        57: 00000000000011c9    51 FUNC    GLOBAL DEFAULT   16 _Z9fonction1v
        58: 0000000000004008     0 OBJECT  GLOBAL HIDDEN    25 __dso_handle
        59: 00000000000014c8     0 FUNC    GLOBAL HIDDEN    17 _fini
        60: 00000000000011fc    51 FUNC    GLOBAL DEFAULT   16 _Z9fonction2v
        61: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __cxa_atexit@@GLIBC_2.2.5
        62: 00000000000010e0    47 FUNC    GLOBAL DEFAULT   16 _start
        63: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZStlsISt11char_traitsIcE
        64: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZNSolsEPFRSoS_E@@GLIBCXX
        65: 0000000000001262    51 FUNC    GLOBAL DEFAULT   16 _Z9fonction4v
        66: 0000000000004010     0 OBJECT  GLOBAL HIDDEN    25 __TMC_END__
        67: 0000000000004040   272 OBJECT  GLOBAL DEFAULT   26 _ZSt4cout@@GLIBCXX_3.4
        68: 0000000000004000     0 NOTYPE  GLOBAL DEFAULT   25 __data_start
        69: 0000000000004158     0 NOTYPE  GLOBAL DEFAULT   26 _end
        70: 0000000000004010     0 NOTYPE  GLOBAL DEFAULT   26 __bss_start
        71: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZNSt8ios_base4InitC1Ev@@
        72: 0000000000001450   101 FUNC    GLOBAL DEFAULT   16 __libc_csu_init
        73: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZNSolsEi@@GLIBCXX_3.4
        74: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTab
        75: 00000000000014c0     5 FUNC    GLOBAL DEFAULT   16 __libc_csu_fini
        76: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __libc_start_main@@GLIBC_
        77: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
        78: 000000000000122f    51 FUNC    GLOBAL DEFAULT   16 _Z9fonction3v
        79: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_registerTMCloneTable
        80: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND _ZNSt8ios_base4InitD1Ev@@

    Je vois beaucoup de gens analyser des symboles au travail ou sur Youtube mais je ne comprends jamais en quoi cela peut être utile.

    Si une âme charitable peut éclairer ma lanterne. :pirate:



    -
    Edité par Autechre 21 février 2023 à 19:23:50

    • Partager sur Facebook
    • Partager sur Twitter

    Informations intéressantes à partir des symboles ?

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown