Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
Можете показать на примере этого пакета , как его разобрать?
Код: //----- (00A088E0) --------------------------------------------------------
int __userpurge sub_A088E0@<eax>(int a1@<ebx>, double a2@<st1>, double a3@<st0>, int a4)
{
void (__thiscall *v4)(int); // edi@1
char v5; // al@3
__int16 v7; // [sp+8h] [bp-8h]@1
char v8; // [sp+Fh] [bp-1h]@3
sub_6A1500(a2, a3);
sub_7A8EC0(dword_E63F38, a1);
v4 = (void (__thiscall *)(int))vE9F114;
vE9F114(a4, &v7, 2);
*(_WORD *)(dword_E63F04 + 4) = v7;
if ( sub_606780((const void *)dword_E63C14) )
{
*(_DWORD *)(dword_E687B4 + 16) = 0;
*(_DWORD *)(dword_E687B4 + 12) = 0;
}
v4(a4);
((void (__thiscall *)(int, char *, signed int))v4)(a4, &v8, 1);
v5 = v8;
if ( v8 & 1 )
{
sub_7B5720((_BYTE *)dword_E63F64);
v5 = v8;
}
if ( v5 & 2 )
sub_7B5920((_BYTE *)dword_E63F64);
return sub_789630((_DWORD *)dword_E63EBC, 2055, 0);
}
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Никак, это не читаемо.
Код: //----- (00A05380) --------------------------------------------------------
int __userpurge sub_A05380@<eax>(int a1@<ebx>, double a2@<st1>, double a3@<st0>, int a4)
{
char v5; // al@3
__int16 v7; // [sp+8h] [bp-8h]@1
int var1; // [sp+Fh] [bp-1h]@3
sub_6A13D0(a2, a3);
sub_7A9070(dword_E5EB20, a1);
i3NetworkPacket::ReadData(a4, &v7, 2);
*(_WORD *)(dword_E5EAEC + 4) = v7;
if ( sub_604E80((const void *)dword_E5E7F0) )
{
*(_DWORD *)(dword_E632E0 + 16) = 0;
*(_DWORD *)(dword_E632E0 + 12) = 0;
}
i3NetworkPacket::ReadData(a4, dword_E632E0 + 21, 10);
i3NetworkPacket::ReadData(a4, &var1, 1);
v5 = var1;
if ( var1 & 1 )
{
sub_7B58D0((void *)dword_E5EB4C);
v5 = var1;
}
if ( v5 & 2 )
sub_7B5AD0((void *)dword_E5EB4C);
return sub_789800(dword_E5EAA4, 2055, 0);
}
// 2, 10, 1
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
PROGRAMMATOR Написал:Никак, это не читаемо.
Код: //----- (00A05380) --------------------------------------------------------
int __userpurge sub_A05380@<eax>(int a1@<ebx>, double a2@<st1>, double a3@<st0>, int a4)
{
char v5; // al@3
__int16 v7; // [sp+8h] [bp-8h]@1
int var1; // [sp+Fh] [bp-1h]@3
sub_6A13D0(a2, a3);
sub_7A9070(dword_E5EB20, a1);
i3NetworkPacket::ReadData(a4, &v7, 2);
*(_WORD *)(dword_E5EAEC + 4) = v7;
if ( sub_604E80((const void *)dword_E5E7F0) )
{
*(_DWORD *)(dword_E632E0 + 16) = 0;
*(_DWORD *)(dword_E632E0 + 12) = 0;
}
i3NetworkPacket::ReadData(a4, dword_E632E0 + 21, 10);
i3NetworkPacket::ReadData(a4, &var1, 1);
v5 = var1;
if ( var1 & 1 )
{
sub_7B58D0((void *)dword_E5EB4C);
v5 = var1;
}
if ( v5 & 2 )
sub_7B5AD0((void *)dword_E5EB4C);
return sub_789800(dword_E5EAA4, 2055, 0);
}
// 2, 10, 1
То есть пакет PROTOCOL_BATTLE_MISSION_ROUND_PRE_START_ACK
Можно только со снифать?
А можно структуру?
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
почему то бой не начинается.
вот пакеты которые шлю.
Код: PROTOCOL_BATTLE_READYBATTLE_REQ
=>PROTOCOL_OPCODE_4103_ACK
=>PROTOCOL_OPCODE_3848_ACK
PROTOCOL_BATTLE_PRESTARTBATTLE_REQ
=>PROTOCOL_BATTLE_PRESTARTBATTLE_ACK
PROTOCOL_BATTLE_STARTBATTLE_REQ
=>PROTOCOL_BATTLE_STARTBATTLE_ACK
=>PROTOCOL_BATTLE_MISSION_ROUND_START_ACK
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
PROGRAMMATOR Написал:UdpState какой?
Код: writeH(4106);
writeD(1);
writeD(0);
//udp server
writeC(2);
writeB(new byte[] { 0x7F, 0x00, 0x00, 0x01 });
writeB(new byte[] { 0x40, 0x9C });
//room info
writeD(1);
writeD(1);
writeB(new byte [35]);
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
После PROTOCOL_BATTLE_MISSION_ROUND_START_ACK больше пакетов не приходит?
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
PROGRAMMATOR Написал:После PROTOCOL_BATTLE_MISSION_ROUND_START_ACK больше пакетов не приходит?
да
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Что в последнем пакете передаешь?
Код: byte // round
int // limitTime
short // readyMask
bool // ?
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
PROGRAMMATOR Написал:Что в последнем пакете передаешь?
Код: byte // round
int // limitTime
short // readyMask
bool // ?
Код: writeH(4129);
writeB(new byte[] {0x01, 0x58, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00});
|