Тема: Warden
Показать сообщение отдельно
Старый 23.11.2010, 15:35   #50
abdula123
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 41
Сказал(а) спасибо: 7
Поблагодарили 25 раз(а) в 15 сообщениях
abdula123 На верном пути
По умолчанию

сопоставление кодов проверок функциям проверок зашито в код каждого модуля.

Код:
while ( 1 )
  {
...
    check_code ^= _this->pkt_xor_byte;
    if ( check_code > (signed int)0x86u )
    {
      if ( check_code == 0xA7 )
      {
...
LABEL_33:
...
      }
      else
      {
        if ( check_code == 0xDF )
          goto LABEL_33;
        if ( check_code == 0xEA )
        {
LABEL_20:
...
          goto LABEL_21;
        }
        if ( check_code != 0xF5 )
          break;
...
      }
    }
    else
    {
      if ( check_code == 0x86 )
      {
...
LABEL_21:
...
      }
      else
      {
        if ( check_code == 0x2D )
        {
...
          goto LABEL_21;
        }
        if ( check_code == 0x38 )
          goto LABEL_33;
        if ( check_code == 0x43 )
          goto LABEL_20;
        if ( check_code != 0x7B )
          break;
      }
    }
  }
есть подозрение, что вычисление xor-байта по сиду - тоже зашито в код. копать в этом направлении даже не стал, ибо не нужно.



зато получилось автоматизировать подбор таблиц и он вроде бы работает без ошибок
abdula123 вне форума   Ответить с цитированием