• threeonefour@piefed.ca
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    3 days ago

    I once played around with reverse engineering a Rust program. I compiled the optimized version of the standard “hello world” program which somehow turned into 50,000 lines of assembly.

    It looked like it copied over dozens of functions from libc and the data section was filled with every single possible error string “file not found”, “connection timed out”, etc. as if there was a possibility of hello world generating an access denied error.

    • henfredemars@infosec.pub
      link
      fedilink
      English
      arrow-up
      6
      ·
      3 days ago

      Was your C hello world program statically linked? I believe Rust includes its libraries whereas the typical hello world does not. Static linkage generally brings in large amounts of unused code.

    • boonhet@lemmy.zip
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 days ago

      Rust has static linking, you get the necessary (and some unnecessary) parts of the standard library in your binary instead of the user having to install the library the way you have to have a libc installed. Makes for fatter binaries but much easier compatibility.