Why can't code be uncompiled? - eviltoast

I see a lot about source codes being leaked and I’m wondering how it that you could make something like an exact replica of Super Mario Bros without the source code or how you can’t take the finished product and run it back through the compilation software?

  • UnRelatedBurner@sh.itjust.works
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    11 months ago

    follow up, would it be easier to read this context-less source code or stay at assembly? If for example you’d like to modify a closed source app

      • UnRelatedBurner@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        ·
        11 months ago

        oh wow, I now respect pirates even more. No wonder there are only like 3 guys that can and will do this.

        If you decompile you need such an understanding of the language. I could see someone looking at this and going “oh yeah that compares cases”, but then die of old age before finishing the sentance.

        And if you don’t decompile you are coding assembly.

    • litchralee@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      11 months ago

      Like many things, it’s very fact-intensive, varying in different circumstances. As others have noted, the abilities of the person undertaking the decompilation will influence the decision. But so will strategy: the overall goal can drive how decompilation is approached.

      For example, suppose you’re working for an airline company and need to rewrite some software used on an ancient IBM System/360 machine and was written in the COBOL language, for which no source code is available and you cannot find many people who even know COBOL. Here, since the task is to rewrite the code, decompilation is just to tell you how it works and then you’ll want to write the new program in a modern language. It may be useful to decompile to a different language if such a decompiler is available, say to the C language, which you better understand.

      Sure, it may be that C isn’t what the new program will be written in, but if your C reading skills are sufficient, then this is a valid strategy.

      The skill of a decompiling engineer – or any engineer really – is leveraging your skills and your tools to tractably attack the difficult problem at hand. Many equally-skilled engineers can plausibly approach the same problem differently.