What programs are still being used that provide some protection and obsfucation of C++ executables for Windows? It looks like ASProtect and Armadillo are not being actively developed?
ASProtect, Armadillo, etc?
You may want to look into TEE hardware. If you set it to executable heap, you can then decrypt the code at runtime within the secure processor. However, using TEEs for anything other than establishing trust and transparency for the user towards you is quite tasteless IMO. I don't know of any other obfuscation methods.
What's the threat model you have? Do you need to hide an algorithm or formula? If it's something like a rendering technique that you want to protect, that won't help you, since people can use GPU profilers to see what exactly is going on.
Also, is “not being actively developed” really the same as “no longer usable”? Sometimes, software is just complete at some point.
RmbRT said:
What's the threat model you have?
That right there is the key question.
The biggest driver for it in games, software piracy, shifted to an online requirement. The big companies shifted that ALL games have an online element, which backfired on properties like SimCity in 2013 but in general has held up as the better solution. Save data on the cloud tends to be the minimum compromise, players don't mind it being in their Steam/Epic/Other account as it travels with them and the data should last as long as Steam/Epic/Other systems do, as well as company-controlled servers for multiplayer games to ensure paid accounts.
When there are specific algorithms that need protection moving them to a server also solves that problem. Customers don't have a copy at all, and bandwidth is generally sufficient that we can even stream live gameplay and remote play.
What are you hoping to protect through obfuscation that isn't better protected by those? People who have the skills and tools to reverse engineer the code and to understand the reverse engineered code already have access to running, compiled versions of your program.
frob said:
People who have the skills and tools to reverse engineer the code and to understand the reverse engineered code already have access to running, compiled versions of your program.
Which also means they can probably also simply copy the obfuscated code and data as a black box.
These are the two I found that seem to be alive:
https://www.oreans.com/WinLicense.php
https://vmpsoft.com/vmprotect/overview
Virtualised code sounds like it's going to be roughly an order of magnitude slower at least, maybe even two. There are some very rare instances where virtualisation of code is as fast as or faster than native code, but I don't think what you want will be in that category. So you most likely can't really virtualise performance-critical work.
@Josh Klint Themida/WinLicense seems the way to go nowadays:
https://www.oreans.com/themida.php
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.