1. 29
  1.  

  2. 7

    One thing that I feel is missing from the introduction: Virtual machines are also excellent for obfuscation purposes. They allow you to encrypt the actual code, the reverse enginering process gets slowed down a lot if you use a particularly obscure instruction set for which no tooling exists (or even worse: invent your own instruction set), they move code out of the executable region into the data region and can help you execute only signed VM code from a remote location after passing authentication checks.

    1. 1

      this sounds really interesting! do you have any examples of this, or research?

      1. 5

        Open source examples used in the real world don’t exist because that defeats the entire purpose of the obfuscation.

        1. 2

          sorry its taken so long to see this. thanks for the reply with all of this, it was exactly what I was looking for. thank you

    2. 1

      I absolutely love these sorts of projects/tutorials, I shall add it to my list!

      1. 2

        Yeah, I love the save feature in lobste.rs. It’s like a secret treasure trove.

      2. 1

        Having worked with similar software, I do support using jump tables over switch statements. Switch statements are incredibly ugly to look at and annoying to maintain