• CosmicGiraffe@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    I don’t think it’s accurate to say that everyone can just decompile the code and reuse it. Decompiling and reverse engineering a binary is incredibly hard. Even if you do that there are some aspects of the original code which get optimised out in the compiler and can’t be reproduced from just the binary.

    • Aux@feddit.uk
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      4
      ·
      2 days ago

      As someone who has extensive experience with decompiling, I can say that working with binaries is usually a lot easier than with a source code.

      • Russ@bitforged.space
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        2 days ago

        How is that the case? I’ve got pretty much zero experience with decompiling software, but I can’t say I’ve ever heard anyone who does say that before. I genuinely can’t imagine that it’s easier to work with say, decompiling a game to make changes to it rather than just having the source available for it.

        I suppose unless the context is just regarding running software then of course it’s easier to just run a binary that’s already a binary - but then I’m not sure I see where decompiling comes into relevance.

        • Aux@feddit.uk
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 day ago

          Several reasons:

          • Compilers strip all the bullshit from the code. Most software projects have shitty code structure and navigating them without prior exposure is a bloody nightmare. Everything gets a lot easier in binary.
          • Compiler optimisations flatten the code into an easier to understand structure. You don’t have to just around function definitions in multiple files when the compiler inlined them all for you to see on one screen.
          • Assembly debuggers usually have a lot more features than source code based ones: trapping OS calls, scripting, etc. They make life so much easier.

          Most software developers have no fucking clue how computers work, it’s all magic to them. People joke about “vibe coding with AI” these days, but let’s be real, 99% of software developers are vibe coders, but with Google instead of AI. Of course these people will never understand a bit of assembly, they can’t even fucking grasp the basics of higher level languages!

          There’s nothing hard about binaries, code is code.