Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Стена вконтакте. (https://forum.antichat.xyz/showthread.php?t=185323)

Deathdreams 09.03.2010 18:07

Стена вконтакте.
 
всем привет.


При постинге на чью-либо стену к ID чудесным образом добавляется неведомая четырёхсимвольная соль (не зависит от длины ID).

Ну вот, вопрос, есть наработки по генерации этой соли ?

Или идеи ?

dr.Web 09.03.2010 18:25

а если без неё?

Deathdreams 09.03.2010 18:26

Выплёвывает, что неверный ID

dr.Web 09.03.2010 18:29

покажи что там за какашка, посмотрим

Deathdreams 09.03.2010 18:31

Например.
Строка 872, солёный ID.

rushter 09.03.2010 18:38

Спарси, в чём проблема ? Если генерируется js, то смотри исходники его.

Deathdreams 09.03.2010 18:42

Цитата:

Сообщение от rushter
Спарси, в чём проблема ? Если генерируется js, то смотри исходники его.

А если у пользователя стена закрыта, как тогда ?

Генерируется не с помощью JS.

Tigger 09.03.2010 18:43

парсишь сурс, там она указана вместе с ID. И посылай на тот ID что спарсил.

Fepsis 09.03.2010 18:57

Цитата:

Сообщение от Deathdreams
А если у пользователя стена закрыта, как тогда ?

Помоему если закрыта стена, то ты не спарсишь параметр wall_hash без которого сообщение опять же не отправится...

eLWAux 09.03.2010 19:11

попробуй рандомное число добавить

dr.Web 09.03.2010 19:12

эта херня генится на пхп она статичная для конкретного акка.
парсь регэкспом её

Deathdreams 09.03.2010 19:13

Цитата:

Сообщение от Fepsis
Помоему если закрыта стена, то ты не спарсишь параметр wall_hash без которого сообщение опять же не отправится...

Хеш парситься довольно-таки просто:
http://vkontakte.ru/wall.php?act=write&id=[СОЛЁНЫЙ_ID]

Deathdreams 09.03.2010 19:14

Цитата:

Сообщение от eLWAux
попробуй рандомное число добавить

Если бы всё было так просто, я бы тему не стал создавать :)

Цитата:

Сообщение от dr.Web
эта херня генится на пхп она статичная для конкретного акка.
парсь регэкспом её

Читай выше, допустим страница закрыта.

Fepsis 09.03.2010 22:48

Цитата:

Сообщение от Deathdreams
Хеш парситься довольно-таки просто:
http://vkontakte.ru/wall.php?act=write&id=[СОЛЁНЫЙ_ID]

Я не про это тебе говорю... Ты видел какой запрос идёт на сервер при отправке сообщения на стену..?!
Там передаётся параметр (значение скрытго поля вормы) wall_hash вместе с сообщением и как ты говоришь солёным айди... Типа этого:

to_id=солёный айди
act=sent
wall_hash=aab9314dbf655a2188cebea4b207e1c2
message=Hi%2C%20man

и если ты не отправишь в запросе параметр wall_hash, то сообщение не улетит на стену... А это значение можно спарсить, помоему только в том случае, если открыт доступ к стене...

Deathdreams 09.03.2010 23:02

Цитата:

Сообщение от Fepsis
Я не про это тебе говорю... Ты видел какой запрос идёт на сервер при отправке сообщения на стену..?!
Там передаётся параметр (значение скрытго поля вормы) wall_hash вместе с сообщением и как ты говоришь солёным айди... Типа этого:

to_id=солёный айди
act=sent
wall_hash=aab9314dbf655a2188cebea4b207e1c2
message=Hi%2C%20man

и если ты не отправишь в запросе параметр wall_hash, то сообщение не улетит на стену... А это значение можно спарсить, помоему только в том случае, если открыт доступ к стене...

я-то тебя понял, а ты по ссылочке перейди и глянь, hash можно спарсить в любом случае.

mazaxaka 22.04.2010 20:19

парни подскажите как сейчас с помошью php отправлять сообщение на стенку. чтото у меня вообще не получается. парсю хеш пишет секюрити ерор . подставляю шес с запроса . ошибка

Deathdreams 22.04.2010 20:35

В переменной $content содержимое страницы пользователя.
Показываю пример парсинга хеша , солёного id и постинга записи
PHP код:

preg_match"#decodehash\('(.+)'\)#Uis"$content$hash_tmp );
preg_match'#name="to_id" value="([0-9]+)"#U'$content$to_tmp );
$hash strrev(substr($hash_tmp[1], -5).substr($hash_tmp[1], 4, -8)); 

потом идёт пост на http://vkontakte.ru/wall.php с данными:
Код:

"act=get10&wall_hash=".$hash."&wpage=100000&seed=".iconv('CP1251', 'UTF-8', $text)."&fpage=1&mid=".$to_tmp[1]."&n=3"

Failure 22.04.2010 20:43

хеш просто так не спарсишь,
найти его можно только в таком виде:
Код:

window.wall_post_hash = decodehash('32_bit_hash');
сама же функция decodehash
Код:

window.decodehash = function(hash) {
    dec_hash(hash);
    return window.decoded_hashes[hash];
  }

еще одна функция decoded_hashes
Код:

window.decoded_hashes = {};
  var dec_hash = function(hash) {
    (function(_){window.decoded_hashes[_]=(function(__){var ___=ge?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return geByClass?___:'___';})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);
  }

тот хэш который нужен для отправки на стену отличается (в этом и мысл функции decodehash)
запрос постом:
PHP код:

$post = Array(
'act'=>'get10',
'wall_hash'=>'hash'// тот который уже decodehash()
'wpage'=>'100000',
'seed'=>'ololo'// текст который слать
'fpage'=>'1',
'mid'=>'id'//парсится из <input type="hidden" id="to_id" name="to_id" value="[1-9]{8,}"/>
'n'=>'3'
);
$post http_build_query($post); 


Deathdreams 22.04.2010 21:10

Failure, я помоему написал саму функцию отправки.
Даже функцию hash_decode на php.

mazaxaka 22.04.2010 21:47

хм.. что то у меня не как не выходит отправить
PHP код:

$text "ololo";
    
$ch curl_init();
    
curl_setopt($chCURLOPT_URL'http://login.vk.com/?act=login');
    
curl_setopt($chCURLOPT_USERAGENT'Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1');
    
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
curl_setopt($chCURLOPT_HEADER1);
    
curl_setopt($chCURLOPT_TIMEOUT20); // таймаут
    
curl_setopt($chCURLOPT_REFERER'http://vkontakte.ru/index.php');
    
curl_setopt($chCURLOPT_COOKIE'remixlang=0; remixchk=5; remixsid=nonenone');
    
curl_setopt($chCURLOPT_POST1); 
    
curl_setopt($chCURLOPT_POSTFIELDS'email='.($email).'&pass='.($pass).'&expire=&vk=');
     
    
$data curl_exec($ch);
    if(!
$data) return('connection shit 3<br><br>');
    
curl_close($ch);
    
// Парсим хеш для отправки сообщения
    
    
preg_match"#decodehash\('(.+)'\)#Uis"$data$hash_tmp ); 
    
preg_match'#name="to_id" value="([0-9]+)"#U'$data$to_tmp ); 
    
$hash strrev(substr($hash_tmp[1], -5).substr($hash_tmp[1], 4, -8)); 
    
// Отправляем

    
$url "http://vkontakte.ru/wall.php?act=get10&wall_hash=".$hash."&wpage=100000&seed=".iconv('CP1251''UTF-8'$text)."&fpage=1&mid=".$to_tmp[1]."&n=3"


Deathdreams 22.04.2010 22:44

mazaxaka
я же написал, получи страницу того, кому нужно отправить (id1, например)
lol

mazaxaka 22.04.2010 22:54

страница получена при авторизаци и хранится в $datа


Время: 04:31