iii.ru инф

Discussion in 'Реверсинг' started by lukmus, 6 Jun 2010.

  1. lukmus

    lukmus Elder - Старейшина

    Joined:
    18 Nov 2009
    Messages:
    366
    Likes Received:
    115
    Reputations:
    23
    Инф - самообучаемый бот, построенный на базе экспертной системы. Вобщем с ним можно общатся как с человеком.
    API у них пока нет, поэтому нужно расковырять, каким образом к нему посылается вопрос и как он выдает ответ.

    Вопрос к инфу задается обычным POST-запросом, вот только в самой date там какая-то лажа, например фраза 'привет' выглядит следующим образом:
    Я сразу подумал что это base64, наверное это так и есть, однако не понятно в какой кодировке.
    Страница с инфом в UTF-8, но кодировка ответа и вопроса, если все так как я думаю, явно не в UTF-8.
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Скачай флешку, декомпилируй и посмотри алгоритм
     
    _________________________
  3. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    lukmus
    PHP:
    function xorkey($str)
    {
        
    $key "some very-very long string without any non-latin characters due to different string representations inside of variable programming languages";
        
    $keylen strlen($key);

        
    $str base64_decode($str);
        
    $strlen strlen($str);

        
    $i 0;
        
    $result '';
        while (
    $i<$strlen)
        {
            
    $buf $str[$i] ^ $key[$i $keylen];
            
    $result .= $buf;
            
    $i++;
        }
        return 
    base64_decode($result);
    }

    echo 
    xorkey($a);
     
    _________________________
    2 people like this.
  4. zORG

    zORG New Member

    Joined:
    5 Jun 2010
    Messages:
    44
    Likes Received:
    2
    Reputations:
    0
    а где взять $key?
     
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    zORG зачем его брать, просто скармливаете функции данные. Кодирование будет почти таким же, только вместо base64_decode будет base64_encode
     
    _________________________
  6. zORG

    zORG New Member

    Joined:
    5 Jun 2010
    Messages:
    44
    Likes Received:
    2
    Reputations:
    0
    хотелось бы заюзать апи инфов ( iii.ru ).
    получил в ответе строку зашифрованную - раскодировать её.
    и наоборот отправлять.
     
    #6 zORG, 18 Jun 2010
    Last edited: 18 Jun 2010
  7. Timon132009

    Timon132009 Member

    Joined:
    7 Jun 2009
    Messages:
    135
    Likes Received:
    19
    Reputations:
    0
    Почему не декодируется? Вот кусок кода:
    PHP:
    $url='http://iii.ru/api/2.0/json/Chat.request';
    $ch curl_init();
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_FAILONERROR1);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_TIMEOUT3);
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS$send);
    $res curl_exec($ch);
    if (!
    $res)
    {
        echo 
    curl_error($ch) . "(" curl_errno($ch) . ")";
    }
    else
    {
    curl_close($ch);

     function 
    xorkey($res)
    {
        
    $key "some very-very long string without any non-latin characters due to different string representations inside of variable programming languages"
        
    $keylen strlen($key);

        
    $res base64_decode($res);
        
    $strlen strlen($res);

        
    $i 0;
        
    $result '';
        while (
    $i<$strlen)
        {
            
    $buf $res[$i] ^ $key[$i $keylen];
            
    $result .= $buf;
            
    $i++;
        }
        return 
    base64_decode($result);
    }
    echo 
    xorkey($a);
    }  
    ?>
    В переменной $res после запроса содержится хэш, но функция xorkey его не видит.

    Проблема решена.
     
    #7 Timon132009, 31 Oct 2010
    Last edited: 3 Nov 2010