Jump to content

[LOCKED CLIENT] After remove _improved_packet_encryption_ 100% TESTED On large servers


Recommended Posts

  • Bronze

Hello friends.

When I had removed the sequence/pong some players had connection with different metin2client.exe 

now players can't log in from different clients and problems occur

my problems are solved 

thank you

we have done a test before the post is made

 

--------------------------------

From 512 you can make 2048 with few changes to the code

I suggest 512 and not 2048  he cannot break the key

Players cannot connect to a different client or find the key

--------------------------------

 

OPEN SERVER/CLIENT service.h/locale_inc.h
ADD:
#define BLOCK_LOGIN_FROM_ANOTHER_CLIENT
#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT
	#define NEW_PROTECT_KEYS	480 + 32
#endif

OPEN PACKET client/server
SEARCH:
command_login3
ADD:
#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT
	char 	blockclient[NEW_PROTECT_KEYS];
#endif

OPEN server INPUT_AUTH.cpp
SEARCH:
bool Login_IsInChannelService(const char* c_login)
ADD AFTER:
#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT
	extern const char block_client[NEW_PROTECT_KEYS];
	const char block_client[NEW_PROTECT_KEYS] =
	{
		0xf2, 0x42, 0x8a, 0xa1, 0x29, 0x7e, 0xfa, 0xd9, 0x19, 0xbc, 0xe5, 0x4c, 0x63, 0xf0, 0x94, 0x33,
		0xf1, 0x37, 0x47, 0xf9, 0xc9, 0x43, 0x78, 0x2b, 0x9b, 0x2a, 0x48, 0x2, 0x35, 0x34, 0xa5, 0x56,
		0xc1, 0x7b, 0x8, 0x9c, 0x38, 0x72, 0xc8, 0x99, 0x3f, 0x1c, 0xd7, 0x22, 0x66, 0xad, 0x40, 0x48,
		0x76, 0xd1, 0x5e, 0xf, 0x77, 0x9, 0x1b, 0x52, 0xfb, 0x7e, 0xaf, 0x59, 0xdb, 0x59, 0x95, 0x5c,
		0x18, 0x44, 0xd0, 0xde, 0x5e, 0xdb, 0x86, 0x7f, 0xb7, 0x1c, 0xf2, 0x3a, 0xd2, 0x67, 0x32, 0x75,
		0x80, 0x1b, 0x8e, 0xd1, 0x9, 0xc9, 0xd6, 0x44, 0x2e, 0x5d, 0x47, 0x47, 0xf9, 0xd, 0xbf, 0xa9,
		0xc3, 0x8e, 0xc2, 0x2b, 0x69, 0x10, 0x29, 0x57, 0xb7, 0xaa, 0xb, 0x4c, 0x29, 0x7, 0xb1, 0x5f,
		0x99, 0xfd, 0x7b, 0x4, 0xc5, 0x44, 0xe6, 0xd4, 0xa7, 0x71, 0x12, 0x5a, 0x11, 0xc5, 0xa2, 0x3d,
		0x11, 0x3e, 0x44, 0x2f, 0x3e, 0x98, 0x96, 0xab, 0x12, 0x14, 0xf0, 0x5c, 0xa6, 0xb, 0xa6, 0x0,
		0x26, 0x1, 0x87, 0x67, 0xf3, 0x78, 0xc9, 0xd2, 0x9b, 0xd2, 0xd4, 0x17, 0x7d, 0xc3, 0xaa, 0x78,
		0x8a, 0xf1, 0xf4, 0x80, 0xfd, 0x31, 0x6f, 0xb5, 0xa4, 0x61, 0x2d, 0x75, 0x30, 0xa5, 0x4d, 0x69,
		0xfd, 0xfc, 0x3f, 0x68, 0x9b, 0x87, 0xb6, 0xa5, 0x7b, 0x7, 0x2, 0x4d, 0x65, 0xb1, 0x8d, 0xa1,
		0x68, 0x6e, 0xd1, 0x64, 0x23, 0x3, 0x39, 0x76, 0x9f, 0xbb, 0x6b, 0x5f, 0xc4, 0x92, 0x60, 0x4a,
		0x3, 0x7e, 0xe3, 0x8d, 0x19, 0xb2, 0x9d, 0x76, 0x2a, 0xf, 0x8f, 0x82, 0x1c, 0xba, 0x3a, 0xbc,
		0x74, 0x97, 0xd1, 0x72, 0xa8, 0x5b, 0x6b, 0x58, 0x36, 0xb6, 0xa9, 0xe0, 0x8f, 0x3e, 0xf2, 0x65,
		0x22, 0xd2, 0x31, 0x10, 0x1, 0xfd, 0xcf, 0x0, 0x4, 0xc2, 0xb6, 0x5, 0xfa, 0x58, 0xb6, 0xd4,
		0xa1, 0xaf, 0xc0, 0xe8, 0xe3, 0xaa, 0xcb, 0x83, 0x3e, 0x2e, 0xa, 0x48, 0xc8, 0xcf, 0xf5, 0x1,
		0x2c, 0x2e, 0x7e, 0x7b, 0x30, 0xb9, 0x67, 0xe9, 0xa, 0xeb, 0x1c, 0x92, 0x74, 0x72, 0xf3, 0x46,
		0x4d, 0xe6, 0xb3, 0x74, 0x34, 0x19, 0x59, 0x4e, 0x45, 0x6f, 0xa6, 0xfd, 0x6d, 0xf5, 0x8, 0x3f,
		0xaf, 0xf2, 0xa6, 0xed, 0xfc, 0x1c, 0x15, 0xb3, 0xdd, 0x4b, 0x95, 0x23, 0x58, 0x6c, 0xec, 0x1f,
		0x20, 0xbc, 0x80, 0x22, 0x90, 0xbc, 0x8f, 0x68, 0x11, 0x90, 0x7c, 0x5b, 0xfb, 0x7f, 0x49, 0x7d,
		0x15, 0xad, 0x6a, 0xe5, 0x5d, 0xa8, 0x52, 0x15, 0x33, 0xa0, 0x96, 0x55, 0x2d, 0x60, 0x8e, 0xa7,
		0x11, 0x33, 0x31, 0x57, 0xb8, 0x23, 0x4d, 0x9d, 0xb2, 0xc2, 0xa, 0x4e, 0xa4, 0x25, 0xec, 0xba,
		0xa8, 0xa6, 0xc, 0xa3, 0xbd, 0x44, 0x66, 0x9e, 0xec, 0x9c, 0xf2, 0xa1, 0x74, 0x36, 0xf3, 0x21,
		0xd2, 0xe2, 0x53, 0xd3, 0x66, 0x4c, 0x85, 0x6a, 0xcf, 0x4d, 0xf4, 0x44, 0x91, 0x56, 0x31, 0x3,
		0x6e, 0xb1, 0x4e, 0x4c, 0xa4, 0x84, 0x92, 0xa6, 0x35, 0x71, 0x69, 0xc4, 0x37, 0xf2, 0x87, 0x40,
		0x84, 0x44, 0x1a, 0xc9, 0x84, 0xf0, 0x1a, 0x1a, 0xca, 0x2a, 0xbc, 0x77, 0x97, 0x3, 0x75, 0x6a,
		0xd6, 0xd1, 0xde, 0x67, 0x1c, 0xbf, 0x9b, 0xc7, 0x1c, 0xf6, 0xcd, 0xfa, 0x20, 0x5d, 0xd9, 0xe2,
		0xd2, 0x75, 0x21, 0xc7, 0xde, 0x5c, 0x50, 0x5c, 0x7, 0x17, 0xe6, 0x93, 0x4b, 0xc3, 0xd2, 0xa3,
		0xd, 0x27, 0xb2, 0x71, 0x45, 0x2, 0xb9, 0x33, 0x56, 0xac, 0xba, 0x47, 0xc8, 0xa, 0x1a, 0x4e,
		0xa4, 0x55, 0x3, 0x77, 0x7, 0x6a, 0x69, 0x90, 0x3c, 0x9a, 0xb1, 0x56, 0x3e, 0x35, 0xeb, 0xf9,
		0x5d, 0x29, 0xc6, 0xb0, 0xb6, 0xa7, 0xdb, 0x91, 0xd0, 0x0, 0xb7, 0xf8, 0x0, 0x6a, 0x60, 0x19,
	};
#endif

NEW SEARCH:
	if (DESC_MANAGER::instance().FindByLoginName(login))
	{
		LoginFailure(d, "ALREADY");
		return;
	}

ADD AFTER:
#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT
	char blockclient[NEW_PROTECT_KEYS];
	strlcpy(blockclient, pinfo->blockclient, sizeof(blockclient));
	std::string block = block_client;
	if (NULL != block.compare(blockclient))
	{
		LoginFailure(d, "SHUTDOWN");
		return;
	}
#endif

------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------

LETS GO CLIENT:

OPEN AccountConnector.cpp
SEARCH:
void CAccountConnector::SetHandler(PyObject* poHandler)
{
	m_poHandler = poHandler;
}

ADD AFTER:
//#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT  // NO #IFDEF NO #IFDEF NO #IFDEF //
CHAR __PROTECTCLIENT__[NEW_PROTECT_KEYS] =
{
	0xf2, 0x42, 0x8a, 0xa1, 0x29, 0x7e, 0xfa, 0xd9, 0x19, 0xbc, 0xe5, 0x4c, 0x63, 0xf0, 0x94, 0x33,
	0xf1, 0x37, 0x47, 0xf9, 0xc9, 0x43, 0x78, 0x2b, 0x9b, 0x2a, 0x48, 0x2, 0x35, 0x34, 0xa5, 0x56,
	0xc1, 0x7b, 0x8, 0x9c, 0x38, 0x72, 0xc8, 0x99, 0x3f, 0x1c, 0xd7, 0x22, 0x66, 0xad, 0x40, 0x48,
	0x76, 0xd1, 0x5e, 0xf, 0x77, 0x9, 0x1b, 0x52, 0xfb, 0x7e, 0xaf, 0x59, 0xdb, 0x59, 0x95, 0x5c,
	0x18, 0x44, 0xd0, 0xde, 0x5e, 0xdb, 0x86, 0x7f, 0xb7, 0x1c, 0xf2, 0x3a, 0xd2, 0x67, 0x32, 0x75,
	0x80, 0x1b, 0x8e, 0xd1, 0x9, 0xc9, 0xd6, 0x44, 0x2e, 0x5d, 0x47, 0x47, 0xf9, 0xd, 0xbf, 0xa9,
	0xc3, 0x8e, 0xc2, 0x2b, 0x69, 0x10, 0x29, 0x57, 0xb7, 0xaa, 0xb, 0x4c, 0x29, 0x7, 0xb1, 0x5f,
	0x99, 0xfd, 0x7b, 0x4, 0xc5, 0x44, 0xe6, 0xd4, 0xa7, 0x71, 0x12, 0x5a, 0x11, 0xc5, 0xa2, 0x3d,
	0x11, 0x3e, 0x44, 0x2f, 0x3e, 0x98, 0x96, 0xab, 0x12, 0x14, 0xf0, 0x5c, 0xa6, 0xb, 0xa6, 0x0,
	0x26, 0x1, 0x87, 0x67, 0xf3, 0x78, 0xc9, 0xd2, 0x9b, 0xd2, 0xd4, 0x17, 0x7d, 0xc3, 0xaa, 0x78,
	0x8a, 0xf1, 0xf4, 0x80, 0xfd, 0x31, 0x6f, 0xb5, 0xa4, 0x61, 0x2d, 0x75, 0x30, 0xa5, 0x4d, 0x69,
	0xfd, 0xfc, 0x3f, 0x68, 0x9b, 0x87, 0xb6, 0xa5, 0x7b, 0x7, 0x2, 0x4d, 0x65, 0xb1, 0x8d, 0xa1,
	0x68, 0x6e, 0xd1, 0x64, 0x23, 0x3, 0x39, 0x76, 0x9f, 0xbb, 0x6b, 0x5f, 0xc4, 0x92, 0x60, 0x4a,
	0x3, 0x7e, 0xe3, 0x8d, 0x19, 0xb2, 0x9d, 0x76, 0x2a, 0xf, 0x8f, 0x82, 0x1c, 0xba, 0x3a, 0xbc,
	0x74, 0x97, 0xd1, 0x72, 0xa8, 0x5b, 0x6b, 0x58, 0x36, 0xb6, 0xa9, 0xe0, 0x8f, 0x3e, 0xf2, 0x65,
	0x22, 0xd2, 0x31, 0x10, 0x1, 0xfd, 0xcf, 0x0, 0x4, 0xc2, 0xb6, 0x5, 0xfa, 0x58, 0xb6, 0xd4,
	0xa1, 0xaf, 0xc0, 0xe8, 0xe3, 0xaa, 0xcb, 0x83, 0x3e, 0x2e, 0xa, 0x48, 0xc8, 0xcf, 0xf5, 0x1,
	0x2c, 0x2e, 0x7e, 0x7b, 0x30, 0xb9, 0x67, 0xe9, 0xa, 0xeb, 0x1c, 0x92, 0x74, 0x72, 0xf3, 0x46,
	0x4d, 0xe6, 0xb3, 0x74, 0x34, 0x19, 0x59, 0x4e, 0x45, 0x6f, 0xa6, 0xfd, 0x6d, 0xf5, 0x8, 0x3f,
	0xaf, 0xf2, 0xa6, 0xed, 0xfc, 0x1c, 0x15, 0xb3, 0xdd, 0x4b, 0x95, 0x23, 0x58, 0x6c, 0xec, 0x1f,
	0x20, 0xbc, 0x80, 0x22, 0x90, 0xbc, 0x8f, 0x68, 0x11, 0x90, 0x7c, 0x5b, 0xfb, 0x7f, 0x49, 0x7d,
	0x15, 0xad, 0x6a, 0xe5, 0x5d, 0xa8, 0x52, 0x15, 0x33, 0xa0, 0x96, 0x55, 0x2d, 0x60, 0x8e, 0xa7,
	0x11, 0x33, 0x31, 0x57, 0xb8, 0x23, 0x4d, 0x9d, 0xb2, 0xc2, 0xa, 0x4e, 0xa4, 0x25, 0xec, 0xba,
	0xa8, 0xa6, 0xc, 0xa3, 0xbd, 0x44, 0x66, 0x9e, 0xec, 0x9c, 0xf2, 0xa1, 0x74, 0x36, 0xf3, 0x21,
	0xd2, 0xe2, 0x53, 0xd3, 0x66, 0x4c, 0x85, 0x6a, 0xcf, 0x4d, 0xf4, 0x44, 0x91, 0x56, 0x31, 0x3,
	0x6e, 0xb1, 0x4e, 0x4c, 0xa4, 0x84, 0x92, 0xa6, 0x35, 0x71, 0x69, 0xc4, 0x37, 0xf2, 0x87, 0x40,
	0x84, 0x44, 0x1a, 0xc9, 0x84, 0xf0, 0x1a, 0x1a, 0xca, 0x2a, 0xbc, 0x77, 0x97, 0x3, 0x75, 0x6a,
	0xd6, 0xd1, 0xde, 0x67, 0x1c, 0xbf, 0x9b, 0xc7, 0x1c, 0xf6, 0xcd, 0xfa, 0x20, 0x5d, 0xd9, 0xe2,
	0xd2, 0x75, 0x21, 0xc7, 0xde, 0x5c, 0x50, 0x5c, 0x7, 0x17, 0xe6, 0x93, 0x4b, 0xc3, 0xd2, 0xa3,
	0xd, 0x27, 0xb2, 0x71, 0x45, 0x2, 0xb9, 0x33, 0x56, 0xac, 0xba, 0x47, 0xc8, 0xa, 0x1a, 0x4e,
	0xa4, 0x55, 0x3, 0x77, 0x7, 0x6a, 0x69, 0x90, 0x3c, 0x9a, 0xb1, 0x56, 0x3e, 0x35, 0xeb, 0xf9,
	0x5d, 0x29, 0xc6, 0xb0, 0xb6, 0xa7, 0xdb, 0x91, 0xd0, 0x0, 0xb7, 0xf8, 0x0, 0x6a, 0x60, 0x19,
};
//#endif

SEARCH:
		strncpy(LoginPacket.pwd, m_strPassword.c_str(), PASS_MAX_NUM);

ADD AFTER:
#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT
		strncpy(LoginPacket.blockclient, __PROTECTCLIENT__, sizeof(LoginPacket.blockclient) - 32);
#endif

SEARCH:
LoginPacket.pwd[PASS_MAX_NUM] = '\0';

ADD AFTER:
#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT
		LoginPacket.blockclient[NEW_PROTECT_KEYS] = '\0';
#endif

 

 

 

You can change the key from 

This is the hidden content, please

1) OPEN: sequence-generator

2) SEARCH: seq_gen.py

3) OPEN  seq_gen.py with notepad++

NOW CHANGE CODES FROM 2048 TO 32

for i in range(2048):

TO

for i in range(32):

4) NOW CREATE KEY

 

5 ADD KEY IN):

SERVER:

#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT
    extern const char block_client[NEW_PROTECT_KEYS];
    const char block_client[NEW_PROTECT_KEYS] =

AND

CLIENT:

//#ifdef BLOCK_LOGIN_FROM_ANOTHER_CLIENT  // NO #IFDEF NO #IFDEF NO #IFDEF //
CHAR __PROTECTCLIENT__[NEW_PROTECT_KEYS] =

 

 

 

 

Edited by Draveniou1
  • Metin2 Dev 19
  • Eyes 1
  • Facepalm 1
  • Lmao 1
Link to comment
Share on other sites

shouldnt it be enough if you have clientversion implemented, to use this in input_main: 

        case HEADER_CG_MOVE:
            Move(ch, c_pData);

            if (g_bCheckClientVersion)
            {
                if (0 != g_stClientVersion.compare(d->GetClientVersion())) // @fixme103 (version > date)
                {
                    ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("clientversion wrong!"));
                    d->DelayedDisconnect(1); // @fixme103 (10);
                }
            }
            break;

? let them login with a different client, as soon as they tried to move ingame, they get kicked

  • Scream 1
Link to comment
Share on other sites

  • Bronze
1 hour ago, Mafuyu said:

shouldnt it be enough if you have clientversion implemented, to use this in input_main: 

        case HEADER_CG_MOVE:
            Move(ch, c_pData);

            if (g_bCheckClientVersion)
            {
                if (0 != g_stClientVersion.compare(d->GetClientVersion())) // @fixme103 (version > date)
                {
                    ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("clientversion wrong!"));
                    d->DelayedDisconnect(1); // @fixme103 (10);
                }
            }
            break;

? let them login with a different client, as soon as they tried to move ingame, they get kicked

No 

Can the person find the game version

I don't recommend it  ->  g_bCheckClientVersion

 

Better is what I made so there are no bypass

0xf2, 0x42, 0x8a, 0xa1, 0x29, 0x7e, 0xfa, 0xd9, 0x19, 0xbc, 0xe5, 0x4c, 0x63, 0xf0, 0x94, 0x33, 0xf1, 0x37, 0x47, 0xf9, 0xc9, 0x43, 0x78, 0x2b, 0x9b, 0x2a, 0x48, 0x2, 0x35, 0x34, 0xa5, 0x56, 0xc1, 0x7b, 0x8, 0x9c, 0x38 ...........................

So far we have not been able to find the sequence key .... The key cannot be found

-----------------

-----------

-------

Version find key 🙂 

https://metin2.download/picture/2Vgo40xLqUGXkEa1HTi9bx5kad4JixZW/.png

 

Edited by Metin2 Dev
Core X - External 2 Internal
  • Lmao 1
  • Good 1
Link to comment
Share on other sites

  • Honorable Member
4 minutes ago, PetePeter said:

So you remove _improved_packet_encryption_ which include sequence system already just to make a new one from scratch ? What's the benefit of that instead of use packet encryption ?

he is a troll, just look his old messages

  • Lmao 1
  • Good 2

 

Link to comment
Share on other sites

  • Bronze
14 minutes ago, PetePeter said:

So you remove _improved_packet_encryption_ which include sequence system already just to make a new one from scratch ? What's the benefit of that instead of use packet encryption ?

Because there are many problems with normal locking there are several problems

11 minutes ago, Mali said:

he is a troll, just look his old messages

They were tested before I post it   where exactly did you see the troll?   I see big differences in client locking

  • Lmao 4
  • Good 1
Link to comment
Share on other sites

  • Bronze
2 hours ago, Helia01 said:

I haven't laughed like that in a long time

We are trying to find the key

The key cannot be found

 

you can find me the key and then come laugh 

we have already tested on big server before publishing here

  • kekw 2
Link to comment
Share on other sites

  • Bronze
23 minutes ago, PetePeter said:

Impossible than you are not trolling lol

it has been tested before I publish it

What is the difference between sequence and this here?

Still some are trying to find the key  try to find the key and come tell me if troll

 

I am waiting

Link to comment
Share on other sites

  • Bronze
14 hours ago, PetePeter said:

If no difference why using this ? You don't get the point I think

The sequence causes problems when I had a sequence the client would close and the players would complain 

when I removed the sequence players could login from a different client and bug the game like bypassing the anti-hack

my problem is solved , now players cannot connect from a different client

Link to comment
Share on other sites

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.