Пост
Hello :)

PHP

-

Рабочий Getcontact 4.9.7 API на PHP

Мне писали тысячу раз про пост http://serj.ws/content/516, где я на PHP показал как работать с сервером Getcontact, с тех пор они изменили алгоритмы, и очень сильно заморочились, но все таки удалось переписать его на PHP, писал коряво, сори...)

 

 

 

 



<?

/*

     by  SERJ.WS
    
    $AES_KEY и $TOKEN берем в
    
    /data/data/app.source.getcontact/shared_prefs/GetContactSettingsPref.xml

*/


 $AES_KEY = '8c93b9b782b120af99ea274f745d2f4b43d89aa8794ccba97c190c8fccbaXXXX';
 $TOKEN = 'hagoje90c9d2e59aaa7c31cdb71a643f8346af863a423d90c3cceb6XXXX';

 $key = '2Wq7)qkX~cp7)H|n_tc&o+:G_USN3/-uIi~>M+c ;Oq]E{t9)RC_5|lhAA_Qq%_4';
 $PRIVATE_KEY = 2615678;
 $time = time();

 $number="+77012345678";



function decrypt($key, $garble) {
   
   return openssl_decrypt(
    base64_decode($garble),
    "aes-256-ecb",
    $key,
    OPENSSL_RAW_DATA
);

}


function encrypt($key, $garble) {
   
 $method = 'AES-256-ECB';
    $ivSize = openssl_cipher_iv_length($method);
    $iv = openssl_random_pseudo_bytes($ivSize);
   
   return openssl_encrypt(
    $garble,
    "aes-256-ecb",
    $key,
    OPENSSL_RAW_DATA
);

}



function Send_Post($post_url, $post_data,$signature)
 { global $TOKEN,$time;

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $post_url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

 if ($post_data!=""){
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  }
  
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

 curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 "X-App-Version: 4.9.1",
 "X-Token: ".$TOKEN,
 "X-Os: android 5.0",
 "X-Client-Device-Id: 14130e29cebe9c39",
 "Content-Type: application/json; charset=utf-8",
 "Accept-Encoding: deflate",
 "X-Req-Timestamp: ".$time,
 "X-Req-Signature: ".$signature,
 "X-Encrypted: 1"));

 curl_setopt ($ch, CURLOPT_TIMEOUT, 60);

 $data = curl_exec($ch);
 curl_close($ch);

 return $data;
}




function GetByPhone ($phone) {

 global $time, $TOKEN, $key, $AES_KEY;

 $req='{"countryCode":"RU","source":"search","token":"'.$TOKEN.'","phoneNumber":"'.$phone.'"}';

 $string = ($time.'-'.$req);

 $signature= base64_encode(hash_hmac ( 'sha256' , $string , $key , true ));

 $crypt_data=base64_encode(encrypt(hex2bin($AES_KEY), $req));

 $zprs =Send_Post("https://pbssrv-centralevents.com/v2.5/search", '{"data":"'.$crypt_data.'"}',$signature);

 $zprs=json_decode($zprs);

 $time = time();

 return $zprs->data;

 }



 function GetByPhoneTags ($phone) {

 global $time, $TOKEN, $key, $AES_KEY;

 $req='{"countryCode":"RU","source":"details","token":"'.$TOKEN.'","phoneNumber":"'.$phone.'"}';

 $string = ($time.'-'.$req);

 $signature= base64_encode(hash_hmac ( 'sha256' , $string , $key , true ));

 $crypt_data=base64_encode(encrypt(hex2bin($AES_KEY), $req));

 $zprs =Send_Post("https://pbssrv-centralevents.com/v2.5/number-detail", '{"data":"'.$crypt_data.'"}',$signature);

 $zprs=json_decode($zprs);

 return $zprs->data;

 }



 print_r(json_decode(decrypt(hex2bin($AES_KEY), GetByPhone($number))));
 echo "\n\n\n";
 print_r(json_decode(decrypt(hex2bin($AES_KEY), GetByPhoneTags($number))));



?>
  • Serj, 06 февраля 2020
34 комментария
Avatar
  1. Мерлан Маркелов
    Мерлан Маркелов
    9 февраля 2020 00:53
    Fixed?
    1. Артём Зинченко
      Артём Зинченко
      9 февраля 2020 17:05
      нет
  2. Сергей Иванов
    Сергей Иванов
    8 февраля 2020 23:41
    $key Это откуда? PRIVATE_KEY тоже есть в том XML файле...его тоже скопировать?
    1. Администрация ВКонтакте
      Администрация ВКонтакте
      9 февраля 2020 03:06
      Комментарий удалён пользователем
    2. Сергей Иванов
      Сергей Иванов
      9 февраля 2020 08:11
      Светлана, не именно ссорсы, а из данных которая прога создает. Например для андроида путь нужного файла указан в начале кода. Для открытия этого файла нужен ROOT, обязательно. Ибо папка data она системная и закрыта. Если не хотите париться с рутированием телефона скачайте эмулятор на ПК...Nox например и в настройках включите рут. Далее ставите в эмулятор гет контакт и авторизуетесь через эмулятор (авторез с телефона слетит)
  3. Al Pacino
    Al Pacino
    7 февраля 2020 19:27
    Всё работает, жаль что ограничение на количество запросов, я так поминаю, что обойти никак, только менять токены?
    1. Ильяс Ишемгулов
      Ильяс Ишемгулов
      9 февраля 2020 01:40
      Как поставить?
  4. Алексей Сахаров
    Алексей Сахаров
    6 февраля 2020 16:50
    Привет, ребят почему то получаю ошибку Warning: hex2bin(): Input string must be hexadecimal string in, проблема в синтаксисе или ключе?
    1. Al Pacino
      Al Pacino
      7 февраля 2020 19:26
      Впиши свой ключ и токен
  5. Гурген Воинов
    Гурген Воинов
    6 февраля 2020 16:44
    я так и не понял, откуда ты взял $key и $PRIVATE_KEY
    1. Андрей Топер
      Андрей Топер
      8 февраля 2020 23:33
      Дебаг приложения
  6. Артем Николаев
    Артем Николаев
    6 февраля 2020 04:00
    И ещё как ты сделал телег. Бота?
  7. Артем Николаев
    Артем Николаев
    6 февраля 2020 03:50
    Привет а можешь скинуть готовый?
    1. Alexandr Kaledinov
      Alexandr Kaledinov
      6 февраля 2020 03:59
      Готовый скрипт, залей к себе на серв и будет тебе счастье



© SERJ.WS 2011-2021