Показать сообщение отдельно
Старый 24.03.2016, 07:55   #11
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

А не, туплю как говорится смотрю в книгу и вижу [censored].
Прошу прощения, но оказывается изменился обработчик клиентских сообщений.

Сначала идут 4 байта, которые пропускаются:
Код:
void __fastcall sub_140476990(__int64 a1, __int64 a2, unsigned int a3)
{
  __int64 v3; // rsi@1
  __int64 v4; // rbx@1
  int v5; // edi@1
  __int64 v6; // [sp+20h] [bp-28h]@1
  __int64 v7; // [sp+28h] [bp-20h]@1
  __int64 v8; // [sp+30h] [bp-18h]@1
  int v9; // [sp+38h] [bp-10h]@1
  int v10; // [sp+3Ch] [bp-Ch]@1

  v3 = a1;
  v4 = a2;
  v7 = 0i64;
  v8 = 0i64;
  v6 = (__int64)off_140F06120;
  v9 = 0;
  v10 = -1;
  v5 = a3;
  CDataStore::GetInt32((__int64)&v6, 0); // вот тут пропускается 4 байта
  (*(void (__fastcall **)(__int64, __int64 *))(*(_QWORD *)v4 + 16i64))(v4, &v6);
  v10 = 4;
  sub_1404767C0(v3, (__int64)&v6, v5);
  v6 = (__int64)off_140F06120;
  if ( HIDWORD(v8) != -1 )
    sub_140019BC0((__int64)&v6, (__int64)&v7, (__int64)&v8, (__int64)((char *)&v8 + 4));
}
а сам опкод теперь 2 байта:
Код:
void __fastcall sub_1404767C0(__int64 a1, __int64 a2, int a3)
{
  __int64 v3; // rbx@1
  int v4; // er13@1
  __int64 v5; // rdi@1
  int v6; // ebp@2
  int v7; // er12@2
  int v8; // ebp@4
  unsigned int v9; // eax@5
  int v10; // er15@14
  unsigned int v11; // er14@14
  __int64 v12; // rdi@14
  __int64 v13; // rax@14
  __int64 v14; // rax@15
  __int64 v15; // rdi@15
  __int64 v16; // rbp@17
  unsigned __int16 v17; // [sp+70h] [bp+8h]@5
  __int64 v18; // [sp+88h] [bp+20h]@14

  v3 = a1;
  v4 = a3;
  v5 = a2;
  EnterCriticalSection((LPCRITICAL_SECTION)(a1 + 144));
  if ( *(_DWORD *)(v3 + 184) == 5 )
  {
    v6 = *(_DWORD *)(v5 + 28);
    v7 = *(_DWORD *)(v5 + 24) - v6;
    if ( *(_DWORD *)(v5 + 24) != v6 )
    {
      if ( v4 == 2 )
      {
        v17 = 0;
        CDataStore::GetInt16(v5, (__int64)&v17);// opcode
        v9 = v17;
        *(_DWORD *)(v5 + 28) = v6;
        v8 = v17 >= 0x30D4u && v9 < 0x327D
          || v9 >= 0x33F4 && v9 < 0x34B0
          || v9 >= 0x3912 && v9 < 0x391E
          || v9 - 14690 <= 0x54;
      }
__________________
Konctantin вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
RomanRom2 (26.03.2016)