Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » UppHub » Protect package - A starting copy protection system
Re: Protect package - A starting copy protection system [message #49954 is a reply to message #49952] Wed, 06 June 2018 17:19 Go to previous messageGo to previous message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
Tom1 wrote on Wed, 06 June 2018 15:30
Hi,

Every now and then I had occasional problems with ProtectEncrypt regarding both PROTECT and OBFUSCATE and the resulting executable on x64. Then I decided to disable optimizations by going from /O2 to /Od. Then both PROTECT and OBFUSCATE started to work on x64 even in my larger application.



This is probably caused by code rearranged by the optimizer... my code requires that the closing macro code comes AFTER the opening one, inside the executable. If the optimizer swap stuffs it doesn't work

Quote:

I have now added the following pragma to all my cpp source files using PROTECT and/or OBFUSCATE and it seems to stabilize things for now:
#pragma optimize( "tsg", off )



you should try disabling single optimizations up to it works. Normal optimizations should be harmless.
My code is quite complex and on GCC works correctly. I still have to test it on MSC, but then only on 32 bit... I don't do 64 bit builds for MSC.

Quote:

UPDATE: Yes, return; does indeed still work from within PROTECT, but '#pragma optimize( "tsg", off )' is needed to avoid optimization which would break it. Do you think it would be a good idea to include this directly in <Protect/Protect.h> to avoid optimization that can break it?


Maybe that's a good idea. We should try to find the right optimizations... it would be a pity to disable all of them.
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: UPDATED PROTECT PACKAGE
Next Topic: OAuth2 package for U++
Goto Forum:
  


Current Time: Thu Apr 25 11:26:29 CEST 2024

Total time taken to generate the page: 0.03979 seconds