Session Encrypter C++

10/12/2013 00:32 Sm•ke#1
Hi community, today i release the session encrypter in C++ !

Code:
// return an array with encrypted bytes
std::vector<std::string> encryptedBytes(int num)
{
	std::vector<std::string> temp;
	std::stringstream ss;
	for (int i = 0, j = 0; i <= num; i++)
	{
		if (i % 10 == 0 && i != 0)
		{
			ss << std::uppercase << std::hex << 83 + j + 6;
			j += 7;
		}
		else
		{
			ss << std::uppercase << std::hex << 83 + j;
			j++;
		}
		temp.push_back(ss.str());
		ss.str("");
	}
	return temp;
}

// encrypt session packet < identifier > < session >
std::string sessionEncrypt(std::string identifier, std::string session)
{
	std::vector<std::string> table = encryptedBytes(99);

	std::string str_enc;
	str_enc += 0x9A;

	std::stringstream ss;
	ss << identifier[0] << identifier[1];
	str_enc += toString(table[atoi(ss.str().c_str())]);
	ss.str("");
	ss << identifier[2] << identifier[3];
	str_enc += toString(table[atoi(ss.str().c_str())]);
	ss.str("");
	ss << identifier[4];
	
	switch (atoi(ss.str().c_str()))
	{
	case 0:
		str_enc += 0x50;
		break;
	case 1:
		str_enc += 0x60;
		break;
	case 2:
		str_enc += 0x70;
		break;
	case 3:
		str_enc += 0x80;
		break;
	case 4:
		str_enc += 0x90;
		break;
	case 5:
		str_enc += 0xA0;
		break;
	case 6:
		str_enc += 0xB0;
		break;
	case 7:
		str_enc += 0xC0;
		break;
	case 8:
		str_enc += 0xD0;
		break;
	case 9:
		str_enc += 0xE0;
		break;
	}

	ss.str("");
	ss << session[0] << session[1];
	str_enc += toString(table[atoi(ss.str().c_str())]);
	ss.str("");
	ss << session[2] << session[3];
	str_enc += toString(table[atoi(ss.str().c_str())]);
	ss.str("");
	ss << session[4];

	switch (atoi(ss.str().c_str()))
	{
	case 0:
		str_enc += 0x4F;
		break;
	case 1:
		str_enc += 0x5F;
		break;
	case 2:
		str_enc += 0x6F;
		break;
	case 3:
		str_enc += 0x7F;
		break;
	case 4:
		str_enc += 0x8F;
		break;
	case 5:
		str_enc += 0x9F;
		break;
	case 6:
		str_enc += 0xAF;
		break;
	case 7:
		str_enc += 0xBF;
		break;
	case 8:
		str_enc += 0xCF;
		break;
	case 9:
		str_enc += 0xDF;
		break;
	}

	ss.str("");

	return str_enc += 0x0E;
}
for who haven't toHex & toString functions

Code:
std::string toHex(std::string str)
{
	std::stringstream ss;
	for (unsigned int i = 0; i < str.size(); i++)
		ss << std::uppercase << std::hex << std::setw(2) << std::setfill('0') << (int)(unsigned char)str[i] << " ";
	return ss.str();
}

std::string toString(const std::string &input)
{
	static const char* const lut = "0123456789ABCDEF";
	size_t len = input.length();
	if (len & 1) throw std::invalid_argument("odd length");
	std::string output;
	output.reserve(len / 2);
	for (size_t i = 0; i < len; i += 2)
	{
		char a = input[i];
		const char* p = std::lower_bound(lut, lut + 16, a);
		if (*p != a) throw std::invalid_argument("not a hex digit");
		char b = input[i + 1];
		const char* q = std::lower_bound(lut, lut + 16, b);
		if (*q != b) throw std::invalid_argument("not a hex digit");
		output.push_back(((p - lut) << 4) | (q - lut));
	}
	return output;
}
example

Code:
sessionEncrypt("53061", "26705")
it's work for me, good luck ! :)

PS. Session encrypter isn't complete 100% but only a fast function, work with an identifier of 5 characters and session of 5 character, no + no -
10/12/2013 07:23 LostSoul8817#2
Hi Smoked must put this code in visual basic 2013? as for the other who can decrypt the files. NOS?
10/12/2013 12:41 Sm•ke#3
Quote:
Originally Posted by LostSoul8817 View Post
Hi Smoked must put this code in visual basic 2013? as for the other who can decrypt the files. NOS?
this isn't for .nos files :rolleyes:
if u are a programmer u can convert it in visual basic, if u aren't u can't use :P