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

Цитата:
ну вот как? каааааак? с чего начинать, куда смотреть... расскажите методу, плиз.
Ну я не спец в этом, а ищу их можна сказать по строке "ClientServices.cpp"
выше находится массив с функциями:


внутри NetClient__ProcessMessage0 - находится функция ту которую мы ищем.
Код:
signed int __thiscall NetClient__ProcessMessage0(void *this, int a2, int a3, int a4)
{
  void *v4; // edi@1
  bool v5; // zf@1
  int v7; // [sp+4h] [bp-18h]@2
  int v8; // [sp+8h] [bp-14h]@2
  int v9; // [sp+Ch] [bp-10h]@2
  int v10; // [sp+10h] [bp-Ch]@2
  int v11; // [sp+14h] [bp-8h]@2
  int v12; // [sp+18h] [bp-4h]@2

  v4 = this;
  sub_798A6B();
  v5 = *((_DWORD *)v4 + 339) == 5;
  dword_10AB260 += a4 + 2;
  if ( v5 )
  {
    v10 = -1;
    v8 = a3;
    v11 = a4;
    v9 = 0;
    v12 = 0;
    v7 = (int)off_D298E8;
    NetClient__ProcessMessage(a2, &v7, 0);
    v7 = (int)off_D298E8;
    sub_408F9E(&v7);
  }
  sub_79B357();
  return 1;
}
это приемка пакетов, а отправка тоже по строке ("creaturecache.wdb"):
единственная ссылка ведет нас сюда
Код:
  sub_628B9E(1464684354, "creaturecache.wdb", PH_CMSG_CREATURE_QUERY, 0, 0, 1, 0);
а в PH_CMSG_CREATURE_QUERY

Код:
void __cdecl PH_CMSG_CREATURE_QUERY(int a1)
{
  char v1; // [sp+0h] [bp-14h]@1
  int v2; // [sp+10h] [bp-4h]@1

  sub_6909BB(&v1);
  v2 = *(_DWORD *)a1;
  NetClient__Send_d(&v1);
  sub_690F91(&v1);
}

int __cdecl NetClient__Send_d(int a1)
{
  int result; // eax@1
  void *v2; // eax@2

  result = sub_A65D94();
  if ( result )
  {
    v2 = (void *)sub_A65D94();
    result = sub_79A82A(v2, a1, 2);             // NetClient__Send
  }
  return result;
}

int __thiscall sub_79A82A(void *this, int a2, int a3)
{
  int v3; // ebx@1
  int v4; // eax@1
  int v6; // [sp+Ch] [bp-18h]@1
  int v7; // [sp+10h] [bp-14h]@1
  int v8; // [sp+14h] [bp-10h]@1
  int v9; // [sp+18h] [bp-Ch]@1
  int v10; // [sp+1Ch] [bp-8h]@1
  int v11; // [sp+20h] [bp-4h]@1

  v11 = -1;
  v3 = (int)this;
  v4 = *(_DWORD *)a2;
  v6 = (int)off_D298E8;
  v7 = 0;
  v8 = 0;
  v9 = 0;
  v10 = 0;
  (*(void (__stdcall **)(int *))(v4 + 8))(&v6);
  v11 = 0;
  NetClient__Send2(v3, (int)&v6, a3);
  v6 = (int)off_D298E8;
  return sub_408F9E(&v6);
}
Способы примитивные, но хз... как-то так и ищу.
Последние 2 раза делал дифы баз ИДА.
Изображения
Тип файла: png pm1.PNG (25.0 Кб, 168 просмотров)
__________________
Konctantin вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
RomanRom2 (07.03.2014)