Witam. Ponieważ coś zepsuliście przy ostatniej aktualizacji wdrażającej "niby 2FA" (prawdziwe 2FA to dzisiaj np. TOTP, passkey) i z użyciem libgadu nie da się dłużej zalogować do nowego konta (lub do starego po zmianie hasła, jak mniemam), a opiekuni libgadu nie są zainteresowani udzielaniem wsparcia, zacząłem analizować protokół używany w wersji webowej. Mam już własną bibliotekę umożliwiającą dostęp do katalogu użytkowników (z kodu GG desktopowego musiałem wyjąć definicje statusów czy tajnych pól api w rodzaju 'onlyAvailable', ale to było proste), ale troszkę mnie spowolniło wysyłanie wiadomości. Okazuje się, że zamiast wystawić normalne API, ktoś zadał sobie trud, żeby używając biblioteki sunrise połączyć się z serwerem prosody (xmpp) po websocketach. Oczywiście nic mnie nie powstrzyma przed naśladowaniem tego protokołu po swojej stronie, ale czy nie moglibyście po prostu normalnie wystawić serwera xmpp po HTTP, podać informację jak się z niego łączyć z Psi lub Gajima i oficjalnie przyznać się, że nie ma już czegoś takiego jak "protokół GG"? Dodam, że w kodzie jest też kilkunastoletnie ogłoszenie o poszukiwaniu pracowników – choćby po zamieszczonej przy nim dacie zgaduję, że chyba już nieaktualne?
Ogłoszenie
Zwiń
No announcement yet.
Pytania o protokół
Zwiń
X
-
Cześć
Zanim odwołam się do Twojego posta, chciałbym tylko zaznaczyć, że nie udzielamy informacji na temat działania protokołu GG i nie publikujemy takich informacji na świat.
Zamieszczone przez jaworsk Zobacz postaPonieważ coś zepsuliście przy ostatniej aktualizacji wdrażającej "niby 2FA" (prawdziwe 2FA to dzisiaj np. TOTP, passkey) i z użyciem libgadu nie da się dłużej zalogować do nowego konta
Zamieszczone przez jaworsk Zobacz postaz kodu GG desktopowego
Zamieszczone przez jaworsk Zobacz postaale czy nie moglibyście po prostu normalnie wystawić serwera xmpp po HTTP, podać informację jak się z niego łączyć z Psi lub Gajima i oficjalnie przyznać się, że nie ma już czegoś takiego jak "protokół GG"?
Zamieszczone przez jaworsk Zobacz postaDodam, że w kodzie jest też kilkunastoletnie ogłoszenie o poszukiwaniu pracowników – choćby po zamieszczonej przy nim dacie zgaduję, że chyba już nieaktualne?
Tutaj ponawiam też pytanie, o jakim kodzie mówimy? Jakiej wersji klienta i skąd uzyskałeś taką informacje.
Do zobaczenia na GG!GG Team
IT - Desktop, GG Chat (Widget & AI)
Sprawdź:
http://ggchat.com
Nie pomogę Ci w zakresie obsługi klienta, sprzedaży i moderacji.
-
Zamieszczone przez Norx Zobacz postaJeśli mogę spytać, skąd posiadasz taki dostęp i jakiej wersji "desktopowego" GG to dotyczy?
Na każdym linuxie:
Kod:$ tar xjf gg_64bit.tar.bz2 $ cd GG/ $ grep ^Version application.ini Version=12.4.112.12218 $ cd chrome/ $ unzip core.jar # tutaj przyda się dowolne narzędzie do otwierania przestarzałego bajtokodu mozilla spider-monkey version 34, ja użyłem irelance/jsc-decompile-mozjs-34 $ php ~/github/jsc-decompile-mozjs-34/run.php core/GGServerClient/GGProtocol.js.jsc | grep GGProtocol.STATUS | head -n 5 GGProtocol.STATUS_AVAILABLE=2; GGProtocol.STATUS_AVAILABLE_DESCRIPTION=4; GGProtocol.STATUS_AWAY=3; GGProtocol.STATUS_AWAY_DESCRIPTION=5; GGProtocol.STATUS_BLOCKED=6; ... $ php ~/github/jsc-decompile-mozjs-34/run.php client/PubDir/PubDir.js.jsc | grep -o "PARAM_[^,]*," | tail -n 5 PARAM_AGE_FROM:"ageFrom", PARAM_AGE_TO:"ageTo", PARAM_LIMIT:"limit", PARAM_OFFSET:"offset", PARAM_ONLY_AVAILABLE:"onlyAvailable", ...
Ogłoszenie o pracę znajduje się np. w pliku https://s1.gg.pl/6.45.0/js/start.js:
Zaglądasz do kodu? To świetnie! Każdy dobry webdeveloper to robi
Szukasz ciekawej pracy? pisz na adres praca@gadu-gadu.pl z dopiskiem PAI
(c) 2006-2013 GG Network S.A.
Kiedyś, gdy GG było kompilowane, być może dekompilacja była jakimś sposobem "zabezpieczania" protokołu przed światem. Dzisiaj, skoro i tak jest cały kod jawnie podany jest w javascript (np. w przeglądarce jest to DGG-Sunrise/6.45.0), trzeba jednak stosować coś więcej niż "security by obscurity". Taki na przykład Instagram czyta każdą wiadomość, analizuje pod kątem spamu i prowadzi rozbudowaną politykę shadowbanów. Jabber z kolei w ogóle nie ingeruje w to, do czego ludzie wykorzystuje protokół i decyzje w tym zakresie pozostawia adminom homeserverów. Pozostaje pytanie, czy GG chce być bardziej jak Instagram czy jak Jabber. I dlaczego podczas logowania hasło jest hashowane przestarzałym MD5, przecież to ma już znane podatności.
Komentarz
-
Witam ponownie!
Czy poniższa metoda wysyłania wiadomości z frontendu webowego będzie najwłaściwsza? Nie chciałbym czegoś zepsuć.
W konsoli dewelopera dowolnej przeglądarki wpisujemy:
Kod:mojsender = B.k().Ja.ld().items.items[0] mojsender.Ca = '123456' // UIN odbiorcy mojsender.Bg = () => void 0; // żeby nie pluł błędem mojsender.eua("Witam!")
Mam już w zasadzie wszystko, co potrzebuję, żeby użyć protobufa do wysłania wiadomości poza przeglądarką, jednak wolę się upewnić, że nie robię czegoś "na około".
Komentarz
-
Jaki jest Twój przypadek użycia? Jeśli potrzebujesz zrobić automat, który wysyła wiadomości, to mamy do tego API: https://boty.gg.pl/
Komentarz
-
Zamieszczone przez Wasky Zobacz postaJeśli potrzebujesz zrobić automat, który wysyła wiadomości, to mamy do tego API: https://boty.gg.pl/
Poza tym ja chciałem zrobić sobie czat na nr gg 65357531, testowałem go, wyłączyliście mi go i nie da sie go włączyć z powrotem
Komentarz
Komentarz