Download ReverseMe - Difficulty [5/10]

Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat

Solaire

Respected Hacker
Dank Tier VIP
Dec 15, 2013
1,051
16,353
62
Your goal here is to write a key generator for the program, or write a program that generates the keyfile in the same way that is done in the program.

This means that you cannot take the easy route and do a simple fix on the gRegistered byte, especially since I did nothing to protect against that :p

This program and challenge are purely for educational reasons, which fortifies my above point. You won't learn anything if you take the easy route.

I've included both the source and the binary, feel free to look at the source if you're stuck.

Just one last side note, this program does not download anything. It's all just adding and removing elements from a vector.

Scans for K3yg3nM3.exe:
https://www.virustotal.com/en/file/...9481c5cd3c6dc7c07b3915b6/analysis/1456412192/
0 / 55

https://virusscan.jotti.org/en-US/filescanjob/96lok80dp0
0 / 20
 

Attachments

GAFO666

Hacker
Meme Tier VIP
Aug 19, 2012
520
3,188
23
Screenshots as Comments~

C++:
/*
 IDA Spots:
         ->https://prntscr.com/a7xemf
*/
DWORD addy = memory->eGetModule("KeygenMe.exe");
DWORD t_os = 0x3CB4;
DWORD target = addy + t_os;
		
BYTE changeTo[2] = {0x90, 0x90};

VirtualProtectEx(memory->m_hProcess, (LPVOID)target, sizeof(changeTo), PAGE_EXECUTE_WRITECOPY, &memory->m_PrevProt);
WriteProcessMemory(memory->m_hProcess, (LPVOID)target, &changeTo, sizeof(changeTo), NULL);
VirtualProtectEx(memory->m_hProcess, (LPVOID)target, sizeof(changeTo), memory->m_PrevProt, &memory->m_NewProt);

C++:
void generateKeyFile()
{
	/*
		IDA Spots:
		string  -> https://prnt.sc/a7w4ms
		generation -> https://prnt.sc/a7w4y6
	
	*/

	std::string str = "This program has been registered";
	for (char& c : str) {
		c ^= 0x7B;
	}

	ofstream myfile;
	myfile.open("keyfile.key");
	myfile << str.c_str();
	myfile.close();
}

C++:
std::string GetSerial(std::string username)
{
	/*
		IDA Spots:
		checkSerial Callout -> https://prnt.sc/a7wyz3
		real checkSerial ->https://prnt.sc/a7wz8y
		supposedGenerateSerial ->https://prnt.sc/a7x1y8
								 https://prnt.sc/a7x26e
	*/


	std::string returnMe;
	int someValue = 0;
	char TempCharArray[30];


	for (char& c : username) {  //first loop
		someValue = 12 * (someValue + (c ^ 10446018)) ^ 51358981;
	}

	sprintf_s(TempCharArray, "%X-", someValue);
	returnMe += TempCharArray;
	//memset(TempCharArray, 0, 30 * (sizeof TempCharArray[0]));


	someValue = 0;
	for (char& c : username) {  //second loop
		someValue = (4 * (someValue + (c ^ 513158)) + 54053) ^ 9624625;
	}

	sprintf_s(TempCharArray, "%X-", someValue);
	returnMe += TempCharArray;
	//memset(TempCharArray, 0, 30 * (sizeof TempCharArray[0]));


	someValue = 0;
	for (char& c : username) {  //third loop
		someValue = 43 * (someValue - 1461 + (c ^ 9731675)) ^ 1351426135;
	}

	sprintf_s(TempCharArray, "%X-", someValue);
	returnMe += TempCharArray;
	//memset(TempCharArray, 0, 30 * (sizeof TempCharArray[0]));

	return returnMe;
}
 
Attention! Before you post:

Read the How to Ask Questions Guide
99% of questions are answered in the Beginner's Guide, do it before asking a question.

No Hack Requests. Post in the correct section.  Search the forum first. Read the rules.

How to make a good post:

  • Fill out the form correctly
  • Tell us the game name & coding language
  • Post everything we need to know to help you
  • Ask specific questions, be descriptive
  • Post errors, line numbers & screenshots
  • Post code snippets using code tags
  • If it's a large project, zip it up and attach it

If you do not comply, your post may be deleted.  We want to help, please make a good post and we will do our best to help you.

Similar threads

Community Mods