Author Topic: Протокол VKontakte  (Read 1089249 times)

BLFox and 59 Guests are viewing this topic.

Online dartraiden

Re: Протокол VKontakte
« Reply #1755 on: 18 02 2025, 16:27:37 »
@ghazan говорит, что Элзор уже починил, просто ещё не коммитил. Там попутно отвалился ещё и первый вход.
« Last Edit: 19 02 2025, 03:41:35 by dartraiden »
 

Offline MIR

Re: Протокол VKontakte
« Reply #1756 on: 18 02 2025, 16:49:41 »
Элзор уже починил, просто ещё не коммитил. Там попутно отвалился ещё и первый вход.


Я через Privoxy трафик с миранды пустил, с модификацией юзерагента на хромовский, подключилась нормально без всяких капчей и даже работала но недолго (косяк с файлом лога а не с ВК, отключить лог забыл, щяс отключил лог вроде больше не крашиться) если файл netlog.txt уже существует то миранда после запуска и подключения падает при попытке в него чтолибо записать.

VersionInfo
Quote
Miranda Crash Report from 18 фев 2025 21:45:06. Crash Dumper v.0.2.0.3

Miranda NG Version: 0.96.6 alpha build #27955 (2331374d1f)
Microsoft Windows XP Professional Service Pack 3 (build 2600)
Internet Explorer: 6.0.2900.5512 (build 62900.5512)

Likely cause of the crash plugin: Miranda NG

Exception: Access Violation at address 13013653. Reading from address 00000004.

Stack Trace:
---------------------------------------------------------------
13013653 (mir_app 12FC0000): (filename not available) (0): Netlib_CloseHandle
13013550 (mir_app 12FC0000): (filename not available) (0): Netlib_CloseHandle
130155B5 (mir_app 12FC0000): (filename not available) (0): Ordinal1093
1301716C (mir_app 12FC0000): (filename not available) (0): Netlib_HttpTransaction
1A057B37 (VKontakte 1A040000): (filename not available) (0): (function-name not available)

============

Exception: Access Violation at address 13018059. Reading from address FFFFFFF4.

Stack Trace:
---------------------------------------------------------------
13018059 (mir_app 12FC0000): (filename not available) (0): Netlib_Logf
01C9D0A8 ((module-name not available) 00000000): (filename not available) (0): (function-name not available)

[close]
« Last Edit: 18 02 2025, 17:06:43 by MIR »
 

Online dartraiden

Re: Протокол VKontakte
« Reply #1757 on: 18 02 2025, 16:52:17 »
Без отладочных символов это всё пустое.
 

Offline QIP User

Re: Протокол VKontakte
« Reply #1758 on: 18 02 2025, 17:42:07 »
Вопрос, наверное, к @Elzor . Есть какие нибудь перспективы? А то это очень критично.

Не забывайте только , что вы спрашиваете у человека вот с такой статистикой :


Date Registered:    16 11 2013, 17:28:36
Last Active:    05 12 2024, 02:29:4
 

Offline QIP User

Re: Протокол VKontakte
« Reply #1759 on: 18 02 2025, 17:46:10 »
Элзор уже починил, просто ещё не коммитил. Там попутно отвалился ещё и первый вход.
Интересно , а зачем откладывать коммит если уже починено ? Ведь известно же что отвалилось у всех людей.
Причём не доступно даже набета сборках
« Last Edit: 18 02 2025, 17:48:36 by QIP User »
 

Online dartraiden

Re: Протокол VKontakte
« Reply #1760 on: 18 02 2025, 17:57:05 »
Возможно, ещё недостаточно протестировал или не успел оформить коммит. Следует понимать, что человек занимается этим в своё свободное время.
« Last Edit: 18 02 2025, 17:58:46 by dartraiden »
 

Offline QIP User

Re: Протокол VKontakte
« Reply #1761 on: 18 02 2025, 19:05:02 »
Меня удивляет другое ) , проект миранда уже давнишний ) но чёрт возьми... конкретно на том что может ломаться и ломается , а точнее ломают регулярно , висит всего один человек ) то есть , вот случись что с этим человеком и протокол отвалится очень сильно и на долго пока не найдётся ещё один такой герой (а таких сейчас будет найти сложно) который захочет как либо связываться с ВК )
 

Offline -SM-

Re: Протокол VKontakte
« Reply #1762 on: 18 02 2025, 19:14:16 »
висит всего один человек
Никто тут нигде не висит. Всё сугубо по собственному желанию и собственной инициативе.
 

Online dartraiden

Re: Протокол VKontakte
« Reply #1763 on: 18 02 2025, 21:07:21 »
Quote
проект миранда уже давнишний
Это работает наоборот. Притока людей нет, т.к. софт маловостребованный, да ещё и не кроссплатформенный. А отток есть (кому-то надоедает, у кого-то кончается свободное время и появляется семья, кто-то переключается на другой язык программирования и другую платформу, как Робьер, ушедший разрабатывать коммерческий софт под Android).

Quote
висит всего один человек
Так не идут добровольцы. Вот, один доброволец к нам пришёл и написал протокол VK для Миранды. Он его и поддерживает. Бросит - ну, значит, не будет у нас протокола, пока через сколько-то лет ещё какой-то энтузиаст не придёт.

Если, не дай бог, отвалится @ghazan, то проект вообще загнётся очень быстро, поскольку серверная часть финансируется им из своего кармана, равно как и сборка осуществляется на его машине.

А насильно отлавливать программистов на улице, сажать в подвал на цепь и принуждать поддерживать протокол, к сожалению, запрещает Уголовный кодекс. А то б я себе с удовольствием душ эдак 100-200 крепостных заимел...
« Last Edit: 18 02 2025, 21:21:47 by dartraiden »
 

Offline QIP User

Re: Протокол VKontakte
« Reply #1764 on: 19 02 2025, 08:35:38 »
Идиотизм какой-то ) , вот правда ) , я считаю что если мессенджер не очень популярен и в нём есть самый популярный для России протокол , то на это направление надо набирать как можно больше программистов ) ну блин...  почему в России всё так-то ? Создаётя что-то удобное , доводится оно до ума и потом выясняется что всё держится не на группе людей , а всего на одном человеке... почему так-то ?  Подумайте хорошенько ) ведь нельзя же чтоб всем этим занимался только @ghazan и только Elzor ) вы чего ? )
 

Offline MIR

Re: Протокол VKontakte
« Reply #1765 on: 19 02 2025, 09:26:41 »
Возможно, ещё недостаточно протестировал или не успел оформить коммит. Следует понимать, что человек занимается этим в своё свободное время.


Временное исправление подручными средствами:
Временное потомучто примерно через минут 10 соединение разрывается, похоже в Privoxy гдето таймаут срабатывает, сильно в настройках там ещё не ковырялся и логи миранды не смотрел, вечером буду разбираться если ВК так и не исправят. keep-alive-timeout 0 поставил, всёравно разрывы минут через 10-15, хотя сам ВК на миранде прекрасно работает - проверил, причём после разрыва при повторном подключении миранда намертво зависает не выдавая никаких краш логов.


Ставим Privoxy https://www.privoxy.org/sf-download-mirror/
Для XP версия 3.0.32, для всех остальных можно выше 

Генерация SSL сертификата: openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.crt -days 3650
Кидаем сертификаты в папку с Privoxy, открываем файл сертификата cacert.crt и он автоматически добавиться в винду куда надо.
Quote from: Файл config.txt
#SSL config
ca-directory .
ca-cert-file cacert.crt
ca-key-file cakey.pem
ca-password 1234567890
#certificate-directory ./certs
trusted-cas-file trusted_cas_file.pem
Quote from: Файл default.action
{+https-inspection +ignore-certificate-errors +client-header-filter{UA_chrome}}
.vk.com
Quote from: Файл default.filter
CLIENT-HEADER-FILTER: UA_chrome
s@^(User-Agent:\s+).*$@$1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.140 Safari/537.3@i


Запускаем Privoxy, прописываем HTTPS прокси в миранде для протокола ВК
После чего ВК нормально подключяется без всяких капчей и полноценно работает, история загружается, сообщения принимаются и отправляются.
Но по какойто причине минут через 10-15 простоя отрубается (вечером буду разбираться)


я считаю что если мессенджер не очень популярен и в нём есть самый популярный для России протокол , то на это направление надо набирать как можно больше программистов

Был чел с мозгами и прямыми руками, создал Tox клиент Isotoxin который досихпор считается самым лучшим из имеющихся tox клиентов под винду, начял добавлять в него другие протоколы успел лишь XMPP добавить потом по многочисленным просьбам начял под линукс клиент портировать после чего через какоето время пропал безвести.
Толи забил на всё толи устранили, темболее на него официальные разрабы Tox'а агриться начяли за то что у себя на гитхабе выкладывал ядро с улучшениями хотя в основную команду разрабов он не входит.
Вот если этого чела найти - он снуля нормальную миранду без проблем напишит, хотя скорее просто плагин ВК для Isotoxin'а напишит т.к. основа давно готова.
« Last Edit: 19 02 2025, 09:39:20 by MIR »
 

Offline -SM-

Re: Протокол VKontakte
« Reply #1766 on: 19 02 2025, 09:54:35 »
то на это направление надо набирать как можно больше программистов
Вы сами с собой разговариваете?
Еще раз - тут не НАБИРАЮТ программистов в принципе. Тут программисты, если желают, сами приходят и сами что-то делают. Если не желают - то не приходят и не делают. За это не платят, только энтузиазм. Плюс к этому, энтузиазм не должен противоречить идеям "отцов-основателей".

Мессенджер, может, и не очень популярен, но практически безальтернативен - у меня, к примеру, база данных содержит все переписки с 2003 года, в ней горы бесценной рабочей информации по всяким алгоритмам, решениям, элеткронным компонентам и их применению, и т.д. Постоянно обращаюсь к разным перепискам из ICQ, где по 200-300К сообщений со многими контактами в базе.
« Last Edit: 19 02 2025, 09:59:01 by -SM- »
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1767 on: 19 02 2025, 11:36:14 »
Маленький статус по ситуации.
ВК очередной раз внес изменения на сервера, отстреливая старые браузеры / схемы работы и т.д.

В результате сервер стал почти любой запрос со стороны миранды считать подозрительным, и подсовывать капчу, результат рассмотрения никуда не уходил из-за бага, который был внесен примерно год назад при общей оптимизации кода. Впрочем, если бы он и уходил, принимать его сервер все равно отказывался бы из-за некоторых других новых требований, которые миранда по незнанию не выполняла.

Речь не только о юзерагенте – его подмена действительно в ряде случаев делала запросы менее подозрительными и кратковременно помогала.

Эту часть, я надеюсь, починил, изменения в ночник ушли. Но это не все.

Еще одна проблема, которую не удалось решить – мы больше не умеем получать токены доступа. Полученные альтернативным способом работают, полученные до изменений – предположительно работают, но миранда сейчас сама авторизовываться не умеет. Связано с тем, что вк в процессе авторизации стал жестко требовать умения выполнять JS, а мы по прежнему не браузер, у нас лапки.
Резюме: если вы не потеряли токен, то новый билд у вас будет работать. Если вы можете самостоятельно получить токен и засунуть его в базу – новый билд у вас работать будет. Если У вас нет токена – вы не авторизуетесь. Пока так.

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

Возможно что-то еще отвалилось, проверить все я не в состоянии.

Я еще смотрю, что можно сделать в плане авторизации. Предположительно починить и заставить работать так, как работало не получится. Скорее всего будет сделана возможность относительно удобным способом получить и засунуть токен в миранду. Постараюсь до конца недели, но я в процессе переезда в другой город, так что будем считать, что я обещал постараться, но не обещал постараться постараться.

Пока все.

 
The following users thanked this post: Thug, -SM-, Boris_M

Offline -SM-

Re: Протокол VKontakte
« Reply #1768 on: 19 02 2025, 12:05:46 »
Я еще смотрю, что можно сделать в плане авторизации.
А нет варианта открыть окно браузера, который в системе по умолчанию, и там авторизоваться?Так делают многие программы, к примеру, обработчик фото Capture One Pro - для проверки лицензионности проводит аутентификацию через свой сайт, через стандартный браузер. Это ведь не должно быть сложно. То есть, точно существует способ открыть страницу авторизации запуском процесса с системным браузером, и затем получить оттуда необходимый ответ (в данном случае токен). Вопрос только, как это сделать. На С# мне попадалось, на С++ - нет. Но раз там есть, то и тут можно.

В принципе, можно на C# аутентификатор отдельный сваять, работающий через системный браузер, и его запускать...
« Last Edit: 19 02 2025, 12:28:45 by -SM- »
 

Offline MIR

Re: Протокол VKontakte
« Reply #1769 on: 19 02 2025, 16:43:58 »
Эту часть, я надеюсь, починил, изменения в ночник ушли.


Источник обновлений -> Версия в разработке
Не оно? Потомучто ВК там пока ещё не появился

А нет варианта открыть окно браузера, который в системе по умолчанию, и там авторизоваться?
Вполне вариант, но лучше ещё чтоб дополнительно ссылку миранда выдавала которую можно скопировать и вставить в нужный браузер, а потом в тоже окно где была ссылка вставить токен в соседнее поле.
Потомучто у меня к примеру миранда, браузер и чясть софта на виртуальном диске, в любой комп флэшку воткнул и можно пользоваться, а браузеры поумолчянию везде разные + история и кэш в этих браузерах остаётся что совсем не безопасно