I once pirated a book because I didn’t want to get it from another room.

  • 🇨🇦 tunetardis@piefed.ca
    link
    fedilink
    English
    arrow-up
    44
    ·
    2 days ago

    I once pirated a book because I didn’t want to get it from another room.

    I pirated a game I legit bought. This was way back in the days when some games had this annoying copy protection where you had to look up words from the manual before you could play. Enter the 3rd word on line 7 of page 28. This sort of thing.

    It got old really fast, so I disassembled the binary and saw where it was calling on a random number generator to select the page. I changed just 1 assembly instruction so that the generator would always return 0. Then it said look up so-and-so and the word turned out to be “time”. After that, all I had to do was enter “time” at launch and I tossed out the manual.

      • communism@lemmy.ml
        link
        fedilink
        arrow-up
        5
        ·
        20 hours ago

        It definitely is, and I’ve done it several times.

        One example is Minecraft, which I legit bought but no longer legitimately own, because when Microsoft took over they forced people to make Microsoft accounts and no longer allow Mojang accounts to be used to authenticate. Because I didn’t make a Microsoft account, I no longer own the game, so now I play a pirated copy because I can no longer legitimately play it.

        Another example is some games made by studios that went bust and there’s no longer any legit distributor of the game, so the only copy you can download is a pirated copy.

        It’s still piracy if it circumvents the intended method of distribution and validation that you own a licence.

    • Hadriscus@jlai.lu
      link
      fedilink
      arrow-up
      6
      ·
      2 days ago

      You can disassemble programs like that? and see what’s inside? can you explain like I’m four and three quarters?

      • CanadaPlus@lemmy.sdf.org
        link
        fedilink
        arrow-up
        6
        ·
        2 days ago

        Yes. Assembly is barely abstracted from the actual machine instructions, to the point where the process of translating it is easily reversible. Reading assembly code is a thing all on it’s own, though.

        There’s specialised software available for this kind of reverse-engineering now, too, if you’re doing something more complicated than just looking for and cutting out a system call.

        • 🇨🇦 tunetardis@piefed.ca
          link
          fedilink
          English
          arrow-up
          5
          ·
          1 day ago

          Yeah. At the lowest level, the CPU reads a program as a bunch of numbers, where each number is a very simple instruction such as “add 2 values together”. Assembly language is a more human-readable version of machine code, where you can see something more like add r1,r2 instead of 35397176 or whatever numeric code means “add the value in register 1 to 2” for some hypothetical processor. (Registers are where the processor keeps values loaded in from the RAM.)

          So in my case, if I saw that the program was making some system call to the random number generator and the calling conventions used by the operating system always put the return value in register 0, I could replace the call with something like clr r0 (clear the value in register 0). It’s a pretty simple hack. So the “generator” now always generates zero.

          These days, programs are often code-signed and if you start messing around like that, they’ll get flagged as malware. But it worked fine back in those open and trusting days.