More loginserver stuff [skip ci]

This commit is contained in:
Akkadius 2015-12-09 22:24:17 -06:00
parent 7a17089b8a
commit d7ca2440d3
2 changed files with 35 additions and 37 deletions

View File

@ -255,50 +255,49 @@ void Client::Handle_Login(const char* data, unsigned int size)
EQApplicationPacket *outapp = new EQApplicationPacket(OP_LoginAccepted, 10 + 80); EQApplicationPacket *outapp = new EQApplicationPacket(OP_LoginAccepted, 10 + 80);
const LoginLoginRequest_Struct* llrs = (const LoginLoginRequest_Struct *)data; const LoginLoginRequest_Struct* llrs = (const LoginLoginRequest_Struct *)data;
LoginLoginAccepted_Struct* llas = (LoginLoginAccepted_Struct *)outapp->pBuffer; LoginAccepted_Struct* login_accepted = (LoginAccepted_Struct *)outapp->pBuffer;
llas->unknown1 = llrs->unknown1; login_accepted->unknown1 = llrs->unknown1;
llas->unknown2 = llrs->unknown2; login_accepted->unknown2 = llrs->unknown2;
llas->unknown3 = llrs->unknown3; login_accepted->unknown3 = llrs->unknown3;
llas->unknown4 = llrs->unknown4; login_accepted->unknown4 = llrs->unknown4;
llas->unknown5 = llrs->unknown5; login_accepted->unknown5 = llrs->unknown5;
Login_ReplyBlock_Struct * lrbs = new Login_ReplyBlock_Struct; LoginFailedAttempts_Struct * login_failed_attempts = new LoginFailedAttempts_Struct;
memset(lrbs, 0, sizeof(Login_ReplyBlock_Struct)); memset(login_failed_attempts, 0, sizeof(LoginFailedAttempts_Struct));
lrbs->failed_attempts = 0; login_failed_attempts->failed_attempts = 0;
lrbs->message = 0x01; login_failed_attempts->message = 0x01;
lrbs->lsid = d_account_id; login_failed_attempts->lsid = d_account_id;
lrbs->unknown3[3] = 0x03; login_failed_attempts->unknown3[3] = 0x03;
lrbs->unknown4[3] = 0x02; login_failed_attempts->unknown4[3] = 0x02;
lrbs->unknown5[0] = 0xe7; login_failed_attempts->unknown5[0] = 0xe7;
lrbs->unknown5[1] = 0x03; login_failed_attempts->unknown5[1] = 0x03;
lrbs->unknown6[0] = 0xff; login_failed_attempts->unknown6[0] = 0xff;
lrbs->unknown6[1] = 0xff; login_failed_attempts->unknown6[1] = 0xff;
lrbs->unknown6[2] = 0xff; login_failed_attempts->unknown6[2] = 0xff;
lrbs->unknown6[3] = 0xff; login_failed_attempts->unknown6[3] = 0xff;
lrbs->unknown7[0] = 0xa0; login_failed_attempts->unknown7[0] = 0xa0;
lrbs->unknown7[1] = 0x05; login_failed_attempts->unknown7[1] = 0x05;
lrbs->unknown8[3] = 0x02; login_failed_attempts->unknown8[3] = 0x02;
lrbs->unknown9[0] = 0xff; login_failed_attempts->unknown9[0] = 0xff;
lrbs->unknown9[1] = 0x03; login_failed_attempts->unknown9[1] = 0x03;
lrbs->unknown11[0] = 0x63; login_failed_attempts->unknown11[0] = 0x63;
lrbs->unknown12[0] = 0x01; login_failed_attempts->unknown12[0] = 0x01;
memcpy(lrbs->key, key.c_str(), key.size()); memcpy(login_failed_attempts->key, key.c_str(), key.size());
#ifdef WIN32 #ifdef WIN32
unsigned int e_size; unsigned int e_size;
char *encrypted_buffer = server.eq_crypto->Encrypt((const char*)lrbs, 75, e_size); char *encrypted_buffer = server.eq_crypto->Encrypt((const char*)login_failed_attempts, 75, e_size);
memcpy(llas->encrypt, encrypted_buffer, 80); memcpy(login_accepted->encrypt, encrypted_buffer, 80);
server.eq_crypto->DeleteHeap(encrypted_buffer); server.eq_crypto->DeleteHeap(encrypted_buffer);
#else #else
unsigned int e_size; unsigned int e_size;
char *encrypted_buffer = Encrypt((const char*)lrbs, 75, e_size); char *encrypted_buffer = Encrypt((const char*)login_failed_attempts, 75, e_size);
memcpy(llas->encrypt, encrypted_buffer, 80); memcpy(login_accepted->encrypt, encrypted_buffer, 80);
_HeapDeleteCharBuffer(encrypted_buffer); _HeapDeleteCharBuffer(encrypted_buffer);
#endif #endif
if(server.options.IsDumpOutPacketsOn()) if(server.options.IsDumpOutPacketsOn()) {
{
DumpPacket(outapp); DumpPacket(outapp);
} }
@ -317,8 +316,7 @@ void Client::Handle_Login(const char* data, unsigned int size)
llas->unknown5 = llrs->unknown5; llas->unknown5 = llrs->unknown5;
memcpy(llas->unknown6, FailedLoginResponseData, sizeof(FailedLoginResponseData)); memcpy(llas->unknown6, FailedLoginResponseData, sizeof(FailedLoginResponseData));
if(server.options.IsDumpOutPacketsOn()) if(server.options.IsDumpOutPacketsOn()) {
{
DumpPacket(outapp); DumpPacket(outapp);
} }

View File

@ -38,7 +38,7 @@ struct LoginLoginRequest_Struct {
char unknown6[16]; char unknown6[16];
}; };
struct LoginLoginAccepted_Struct { struct LoginAccepted_Struct {
short unknown1; short unknown1;
short unknown2; short unknown2;
short unknown3; short unknown3;
@ -47,7 +47,7 @@ struct LoginLoginAccepted_Struct {
char encrypt[80]; char encrypt[80];
}; };
struct Login_ReplyBlock_Struct struct LoginFailedReply_Struct
{ {
char message; //0x01 char message; //0x01
char unknown2[7]; //0x00 char unknown2[7]; //0x00