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 #49967 is a reply to message #49966] Fri, 08 June 2018 12:42 Go to previous messageGo to previous message
Tom1
Messages: 1212
Registered: March 2007
Senior Contributor
Hi Max,

Thanks!

Here's an ELF -extended version of the instruction set detection:

	unsigned short machine=0; // Unknown
	if((*(unsigned int*)~buf)==0x464c457f) machine=*(unsigned short*)&buf[0x12]; // ELF machine ID
	else if((*(unsigned short*)~buf)==0x5a4d){ // DOS header
		int coffindex=*(unsigned int*)&buf[0x3c]; // Coff header
		machine=*(unsigned short*)&buf[coffindex+4]; // Machine ID
	}
	
	switch(machine){
		case 0x03: // x86 ELF
			Cout() << "Processing 32-bit i386 ELF\n";
			XED.Set32bitMode();
			break;
		case 0x3e: // x86-64 ELF
			Cout() << "Processing 64-bit AMD64 ELF\n";
			XED.Set64bitMode();
			break;
		case 0x14c: //i386 PE
			Cout() << "Processing 32-bit i386 COFF/PE\n";
			XED.Set32bitMode();
			break;
		case 0x8664: // AMD64 PE
			Cout() << "Processing 64-bit AMD64 COFF/PE\n";
			XED.Set64bitMode();
			break;
		default:
			Cout() << "Unknown executable - Cannot process\n";
			return;
	}


My Linux VM running U++ is not quite healthy at the moment, so I could not test this ELF thing immediately, but maybe you can. Anyway, the ELF header info is from:

https://en.wikipedia.org/wiki/Executable_and_Linkable_Format

I can't show my actual code, but I'll see what I can do to demonstrate the optimization issue with a test case.

Thanks and best regards,

Tom
 
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: Fri Mar 29 10:53:46 CET 2024

Total time taken to generate the page: 0.01731 seconds