Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Programming
You last visited: Today at 15:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[c++] Help with Proxy

Discussion on [c++] Help with Proxy within the CO2 Programming forum part of the Conquer Online 2 category.

Reply
 
Old 11/17/2010, 13:25   #16
 
elite*gold: 0
Join Date: Jan 2007
Posts: 656
Received Thanks: 541
Quote:
Originally Posted by IAmHawtness View Post
You can't get the character ID of the person you shift-click unless you hook the client's memory in some way, so if you had to do that, woulnd't it be easier if your whole proxy was memory based?
Why would that be easier? I think it's more efficient using your own cryptography.

And I don't need the character ID? I just need to get the Characther name of the box at the bottom left when shift clicking someone.

You just got to check for that memory and invoke an event when it changes.

The ID should already exist in the dictionairy lists since the client must of recieved a spawn packet by him.
Trigorio is offline  
Old 11/17/2010, 15:03   #17
 
elite*gold: 20
Join Date: Aug 2007
Posts: 1,749
Received Thanks: 2,199
Quote:
Originally Posted by Trigorio View Post
Why would that be easier? I think it's more efficient using your own cryptography.

And I don't need the character ID? I just need to get the Characther name of the box at the bottom left when shift clicking someone.

You just got to check for that memory and invoke an event when it changes.

The ID should already exist in the dictionairy lists since the client must of recieved a spawn packet by him.
That's where dynamic memory comes in play. It's not just a simple readprocessmemory to get the id/name of the person you shift-clicked, which is why I believe hooking the client it easier. I'm just saying, a memory based proxy which only relies on hooking functions inside the exe can do a lot more than an "internet based" proxy that only works as a middle-man between the client and server.
IAmHawtness is offline  
Old 11/17/2010, 16:09   #18
 
TomasLT's Avatar
 
elite*gold: 0
Join Date: Nov 2006
Posts: 286
Received Thanks: 38
Hey i see that ur guys know more that i and i know that u can help me, so plz help. I cant figure out why i cant decrypt authresponse.
Code:
//[C++]
class AuthProtocolCryptographer
{
public:
	class CryptCounter
	{
	private:
		unsigned short m_Counter;

	public:
		unsigned char getKey2()
		{
			return static_cast<unsigned char>(m_Counter >> 8);
		}

		unsigned char getKey1()
		{
			return static_cast<unsigned char>(m_Counter & 0xFF);
		}

		void Increment()
		{
			m_Counter+=1;
		}
	};

private:
	CryptCounter *_decryptCounter;
	CryptCounter *_encryptCounter;
	unsigned char *_cryptKey1;
       	unsigned char *_cryptKey2;

public:
	AuthProtocolCryptographer()
	{
		_decryptCounter = new CryptCounter();
		_encryptCounter = new CryptCounter();
		_cryptKey1 = new unsigned char[256];
		_cryptKey2 = new unsigned char[256];
		unsigned char i_key1 = 0x9D;
		unsigned char i_key2 = 0x62;
		for (int i = 0; i <= 0x100; i++)
		{
			_cryptKey1[i] = i_key1;
			_cryptKey2[i] = i_key2;
			i_key1 = static_cast<unsigned char>((0xF + static_cast<unsigned char>(i_key1 * 0XFA)) * i_key1 + 0X13);
			i_key2 = static_cast<unsigned char>((0x79 - static_cast<unsigned char>(i_key2 * 0X5C)) * i_key2 + 0X6D);
		}
	}

	void EncryptClientPackets(byte buffer[], int len)
	{
		for (int i = 0; i < len; i++)
		{
			buffer[i] = buffer[i] ^ static_cast<unsigned char>(_cryptKey1[_encryptCounter->getKey1()] ^ _cryptKey2[_encryptCounter->getKey2()]);
			buffer[i] = static_cast<unsigned char>(buffer[i] >> 4 | buffer[i] << 4);
			buffer[i] = buffer[i] ^ static_cast<unsigned char>(0xAB);
			_encryptCounter->Increment();
		}
	}

        void EncryptServerPackets(byte buffer[], int len)
	{
		for (int i = 0; i < len; i++)
		{
			buffer[i] = buffer[i] ^ static_cast<unsigned char>(0xAB);
			buffer[i] = static_cast<unsigned char>(buffer[i] >> 4 | buffer[i] << 4);
			buffer[i] = buffer[i] ^ static_cast<unsigned char>(_cryptKey2[_decryptCounter->getKey2()] ^ _cryptKey1[_decryptCounter->getKey1()]);
			_encryptCounter->Increment();
		}
	}
	void DecryptClientPackets(byte buffer[],int len)
	{
		for (int i = 0; i < len; i++)
		{
			buffer[i] = buffer[i] ^ static_cast<unsigned char>(0xAB);
			buffer[i] = static_cast<unsigned char>(buffer[i] >> 4 | buffer[i] << 4);
			buffer[i] = buffer[i] ^ static_cast<unsigned char>(_cryptKey2[_decryptCounter->getKey2()] ^ _cryptKey1[_decryptCounter->getKey1()]);
			_decryptCounter->Increment();
		}
	}
        void DecryptServertPackets(byte buffer[],int len)
	{
		for (int i = 0; i < len; i++)
		{
			buffer[i] = buffer[i] ^ static_cast<unsigned char>(_cryptKey1[_encryptCounter->getKey1()] ^ _cryptKey2[_encryptCounter->getKey2()]);
			buffer[i] = static_cast<unsigned char>(buffer[i] >> 4 | buffer[i] << 4);
			buffer[i] = buffer[i] ^ static_cast<unsigned char>(0xAB);
                        _decryptCounter->Increment();
		}
	}
};
Maybe somethig wrong with keys ? bcouse i can decryt seed packets, and authrequest packets but cant decrytp authresponse
TomasLT is offline  
Reply


Similar Threads Similar Threads
[FRAGE] WAS IST PROXY WAS MACHT MAN DAMIT ? [PROXY]
11/12/2010 - Main - 7 Replies
Hallo Com! , Ich habe das Wort Proxy schon oftr gehört , aber immernoch nicht verstanden was das ist und was man damit macht. Jemand meinte das wäre so was Anonymes ... Also bitte ich hier um eine gute Erklärung ;) Danke!
Proxy geht nicht/Proxy doesn´t work
08/10/2010 - Metin2 Private Server - 0 Replies
Folgendes Problem: Squid ist installiert. Startet anscheinend nicht richtig, funktioniert einfach nicht. Die Meldung welche kommt, wenn man startet: 2010/08/10 17:02:26| Starting Squid Cache version 2.7.STABLE9 for i386-portbld-freebsd7.1... 2010/08/10 17:02:26| Process ID 1952 2010/08/10 17:02:26| With 11095 file descriptors available 2010/08/10 17:02:26| Using kqueue for the IO loop
Wer will ne Proxy ? Ja genau du willst ne Proxy xD !
07/23/2010 - Metin2 Private Server - 11 Replies
Moin, Wer hat einen Root-Server und will eine Proxy ? Proxy: Proxy ermöglicht dir deine IP zu ändern die dan auch die selbe bleibt. Dadurch hast du auf einem DynDNS oder Root-Server 24/7 GM-Rechte..... Ich hab nen Install script das ich den auch Pub machen werde Aber davor testen möchte.
4326 PROXY FIX Post All Proxy Fixes Here
11/26/2006 - CO2 Exploits, Hacks & Tools - 22 Replies
post only the fixes for proxy here plz dont post original file. NO QUESTIONS PLZ. DONT ASK FOR ORIGINAL QOPROXY. just search and hope u dont get the keylogged version :P Fix for patch4326 (not really an intentional patch for proxy. required little editing ;)) replace old ini in qoproxy folder with this one



All times are GMT +2. The time now is 15:55.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.