PIC GOT PLT OMG: how does the procedure linkage table work in linux?

Поделиться
HTML-код
  • Опубликовано: 9 ноя 2024

Комментарии • 27

  • @shitshow_1
    @shitshow_1 2 месяца назад +2

    This is the finest video on GOT, PLT topics. Thanks for your efforts.

  • @shanmukhasreedhar9067
    @shanmukhasreedhar9067 4 дня назад

    Just WOW... really nice explanation with practical examples

  • @user-fg6ng7ej6w
    @user-fg6ng7ej6w 2 года назад +8

    thanks for making these lectures public. came here in desire to get a grip on ELF and linking process.

  • @marciomaiajr
    @marciomaiajr 2 года назад +4

    I'm so happy RUclips recommended your video. Probably the best and most up to date video on the subject. Instant subscribe.

  • @Nuclear_Man_D
    @Nuclear_Man_D 3 года назад +5

    Dude. How do you only have 729 subs. This was so helpful. Thank you very much :)

    • @xrafter
      @xrafter Год назад +3

      You jinxed him now he has 4.14k

  • @mrshodz
    @mrshodz 2 года назад +2

    @Chris Kanich I have really enjoyed your videos. This just another in your collection. I always learn a lot from explanations. Thanks.

  • @mattfisher3124
    @mattfisher3124 4 года назад +2

    Great video; the PLT and GOT really confused me until I watched this!

  • @tanchienhao
    @tanchienhao Год назад

    The best video on PLT!

  • @mateuszlewandowski266
    @mateuszlewandowski266 3 года назад +4

    Hi, great series. I wonder if you have presentations on some kind of repo you could share with others?

  • @szhu7702
    @szhu7702 3 года назад

    So informative! Wanna give 1000 thumbs up

  • @niveditakalpan7690
    @niveditakalpan7690 3 года назад +7

    @Chris Kanich Really amazing video - my favorite so far on RUclips and trust me I’ve been trying to understand these concepts for some time now 😊
    One thing that is still unclear (and has been puzzling me) is how the address 0x400000 is decided as the starting address for the Text Segment. I understand that in the LD Script, the SEGMENT_START is set to 0x400000 for x86 based Linux ELF files, however, what I don’t understand is why (and how) is this address chosen? Is it processor-specific (i.e., does it depends whether it’s an ARM core, or a MIPS core, or an x86 Intel core), and what is stored in between the virtual address 0x0 and the virtual address 0x400000?
    I learned that the space between 0x0 and 0x400000 is VOID (Read-ONLY) and has been left as such due to historic reasons (such as when the processor had less number of registers). However, it would be awesome if you can throw some light on it. Thanks.

    • @ChrisKanich
      @ChrisKanich  3 года назад +9

      Thanks for the kind comments! 0x400000 is something that the linker decides to use when it generates the ELF executable. In general, it can put whatever sections it wants where it wants in virtual memory. The only restriction it has is that there is a certain offset in the ELF header that indicates the "entry point" - the first line of assembly that the processor should run once the program is loaded. You can look at this by running readelf -h on a fully linked executable - it will show you the header, which includes a pointer to the entry point address.

  • @cort
    @cort 3 года назад +4

    Cool video, please just make black/dark background also for presentation - jumping from black to white in the video really hits eyes... ;)

    • @ChrisKanich
      @ChrisKanich  3 года назад +2

      Great idea, and makes perfect sense! Will change in upcoming videos.

  • @НиколаАвхутский
    @НиколаАвхутский 3 года назад

    Very comprehensive video!

  • @lironbalastra2370
    @lironbalastra2370 2 года назад +1

    PERFECT!

  • @teamteggi
    @teamteggi 3 года назад +2

    can you explain about the GOT and plt in microcontrollers and how this helps in shared libraries in microcontrollers.

  • @MichaelAllwright
    @MichaelAllwright Год назад

    @Chris great video! Do you have another video or can you suggest some resources for understanding how dlopen/dlsym interacts with the GOT and PLT?

  • @BinaryAdventure
    @BinaryAdventure 3 года назад

    Awesome video! We need more like this on RUclips!im

  • @brezhnyevkirill
    @brezhnyevkirill 11 месяцев назад

    Hi, Chris, thanks a lot, i think now i start to understand this indirection, even though what happens in GOT (how the address is replaced to a proper one) is not disclosed. Can you please share the cheat sheet you used?

  • @sudajared
    @sudajared 2 года назад

    This is like youtube gold

  • @amanuelnigatu4621
    @amanuelnigatu4621 2 года назад

    great one......tnx

  • @juan-tj1xf
    @juan-tj1xf 3 года назад

    Great explanation. You saved me :)

  • @trojanhorse8278
    @trojanhorse8278 8 месяцев назад

    Subscribed 🎉

  • @Jinzo-
    @Jinzo- 3 года назад

    I like your titles

  • @soufianefariss
    @soufianefariss 3 года назад +1

    Lazy run-time linking isn't so _lazy_ after all. Huh.