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

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2024

ความคิดเห็น • 27

  • @shitshow_1
    @shitshow_1 4 หลายเดือนก่อน +2

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

  • @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 TH-cam recommended your video. Probably the best and most up to date video on the subject. Instant subscribe.

  • @shanmukhasreedhar9067
    @shanmukhasreedhar9067 หลายเดือนก่อน

    Just WOW... really nice explanation with practical examples

  • @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

  • @mattfisher3124
    @mattfisher3124 4 ปีที่แล้ว +2

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

  • @mrshodz
    @mrshodz 3 ปีที่แล้ว +2

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

  • @mateuszlewandowski266
    @mateuszlewandowski266 3 ปีที่แล้ว +4

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

  • @tanchienhao
    @tanchienhao ปีที่แล้ว

    The best video on PLT!

  • @teamteggi
    @teamteggi 3 ปีที่แล้ว +2

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

  • @szhu7702
    @szhu7702 3 ปีที่แล้ว

    So informative! Wanna give 1000 thumbs up

  • @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?

  • @НиколаАвхутский
    @НиколаАвхутский 3 ปีที่แล้ว

    Very comprehensive video!

  • @BinaryAdventure
    @BinaryAdventure 4 ปีที่แล้ว

    Awesome video! We need more like this on TH-cam!im

  • @brezhnyevkirill
    @brezhnyevkirill ปีที่แล้ว

    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?

  • @lironbalastra2370
    @lironbalastra2370 2 ปีที่แล้ว +1

    PERFECT!

  • @niveditakalpan7690
    @niveditakalpan7690 4 ปีที่แล้ว +7

    @Chris Kanich Really amazing video - my favorite so far on TH-cam 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.

  • @sudajared
    @sudajared 2 ปีที่แล้ว

    This is like youtube gold

  • @amanuelnigatu4621
    @amanuelnigatu4621 2 ปีที่แล้ว

    great one......tnx

  • @juan-tj1xf
    @juan-tj1xf 4 ปีที่แล้ว

    Great explanation. You saved me :)

  • @trojanhorse8278
    @trojanhorse8278 10 หลายเดือนก่อน

    Subscribed 🎉

  • @Jinzo-
    @Jinzo- 3 ปีที่แล้ว

    I like your titles

  • @soufianefariss
    @soufianefariss 3 ปีที่แล้ว +1

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