แแแแ แแ แแก แฐแแแ แแแ แฃแคแ แ แฎแจแแ แแ แแแแแฉแแแ แแแกแขแแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแแแแ แแแ แแแ Telegram, แ แแแแแแแ แแ แฌแงแแแแแแ แแ แแแแแชแแแแ แแ แแแ แซแแแแ แแฃแ แแแแแ แฅแกแแแฃแ แ แกแแกแขแแแแแแก แแจแแแแแแแแแจแ แแ แ.แจ. แแแแแแ แแฃแแแ, แซแแแแแ แชแแขแ แแแแแแแแ แแแ แแแแช แฉแแแคแแ แขแแฅแแแแฃแ แแแฌแงแแแแแแแแจแ - แแแฅแกแแแฃแ แแกแแแ แแงแแแแแแ แกแแแแแแ แแแ แขแแ (แแ แซแแแแแ แแแแกแฎแแแแแแฃแแก MTProto-แกแแแ) JSON-แแ แแแคแฃแซแแแแฃแ Bot API-แก แแ แฉแแแฃแแแแ แแ แแฆแแแแ แ แฌแแแแแแ แงแแแแ แแก แฅแแแ แแ แแแแ แ, แ แแแแแแช แแแกแแแฏแแ แแก แแแ แจแแแ แขแ แแแแแแก. แแแแฅแแแก แฌแแแแฌแแแแแฎแแแ แแก แฌแแ แฉแแแแ แแแแแแแ NPO Echelon Vasily-แจแ (แกแแแฌแฃแฎแแ แแ, แแแกแ แแแแแ แแจแ Habrรฉ-แแ แแ แแคแขแแแ แแ แแแ แฌแแแจแแแ) แแแแฌแงแ แกแแแฃแแแ แ Telegram แแแแแแขแแก แฌแแ แ แแฃแแแแแ แแแ แแจแ, แแแแแแแแแแแ แแ แแ แกแขแ แแฅแแแแแแก แแแขแแ แ แจแแฃแแ แแแ. แ แแขแแ Perl, แแแแแแ แแ แแแจแแแแ แแแแแฎแแแ? แแแแก แแแแ, แ แแ แฃแแแ แแ แกแแแแแก แแกแแแ แแ แแแฅแขแแแ แกแฎแแ แแแแแแ, แคแแฅแขแแแ แแแแ, แแก แแ แแ แแก แแแแแแ แ, แจแแแซแแแแ แแงแแก แแแแแกแแแแ แ แกแฎแแ แแแ, แกแแแแช แแแกแ แฃแแแแฃแแ แแแแแแแแแแ, แแ แจแแกแแแแแแกแแ แแแขแแ แแ แงแแแแ แแแ แฃแแแ แแแแแ แแก แแฃแแแแแ. แฃแคแ แ แแแขแแช, แแ แแแขแแแ แแคแแ แแกแแแ แ แแ แแ แแก - แแแแ, แแแแ แแ แแแแแแแแฌแแ. แฃแกแแคแ แแฎแแแแแแ แแ แแแแขแแ แแแฃแแ แแ แแแฃแฅแขแแ, แแฅแแแ แแ แจแแแแซแแแแ แแแแงแ แแแแ แแฎแแแแ แแแแงแแแแแแแก แแแ แแแแแแแแแแแก แแ แแ แแแ แแแแฏแแ แแ แแก (แแฃแแชแ, แแก แแ แแก แแแแ แ แแแฌแแแแก แแแขแ แแแแ). แแ แแ แแแกแแแแก, แแแแแแแแแแ แกแแแแแแ แแแ แแแ แแฃแจแแแแก "แจแฃแ" แแแแแแ (แกแแจแฃแแแแแแก แแแซแแแแ แแแแแฎแแ แชแแแแแ แแแแแกแแแแ แ API แแแแฎแแแแ).
แแฃแแชแ, แแ แแแกแขแแแแก แกแแ แแแจแ แแแแ แ แแ แแแขแแแ แแคแแ แแ แแแแแแแขแแแ แแ แแฅแแแแ. แแแแ แแ แแฅแแแแ แแแแ แ แกแฎแแ แขแแฅแแแแฃแ แ แแแขแแแ แแ แแ แฅแแขแแฅแขแฃแ แฃแแ แฎแแแฏแแฎแแแ (แแก แแกแแแ แแแแแแแแแแ แแแ, แแแแช แแฃแแแแแ แแ แแแฌแแ แก, แแแแ แแ แแแแแแแแแแแก แแแแแกแแแแ แแแแแ แแแแแแงแแแแแก). แแกแ แ แแ, แแแแแแ แ แแแแแแ แแงแ แแแแแแขแแก แแแแฎแแ แชแแแแแแแก แแชแแแแแแ แแฃแแแแแ แแคแแชแแแแฃแ แ แแแแฃแแแแขแแชแแแก แแแฎแแแแแ. แแแฃ, แแแแฃแจแแแ, แ แแ แแคแแชแแแแฃแ แ แแแแแแขแแแแก แฌแงแแ แแก แแแแ แแแฎแฃแ แฃแแแ (แแแแแ แแ แแฎแแ, แแแแ แ แแแฌแแแจแ, แฉแแแ แฃแคแ แ แแแขแแแฃแ แแ แแแแแแแแแแแ แแแแแก, แแฃ แ แ แแ แแก แแก แกแแแแแแแแแแจแ แฎแแแแ แแกแ แ แแ), แแแแ แแ, แ แแแแ แช แซแแแ แแฆแแแแจแ, แแแแแแแแแ, แแ แกแแแแแก แกแขแแแแแ แขแ, แ แแแแ แแชแแ RFC - แจแแกแแซแแแแแแแ แแฃ แแ แ แแแแแแขแแก แแแฌแแ แ แแฎแแแแ แกแแแชแแคแแแแชแแแก แแแฎแแแแแ, แฌแงแแ แแก แแแแแก โแแแแแแแแแ แแแแก แแแ แแจแโ, แแฃแแแแช แแคแแชแแแแฃแ แ (Telegram Desktop, แแแแแแฃแ แ). ), แแฃแแแแช แแ แแแคแแชแแแแฃแ แ แขแแแแแแ แแแแแ?
แแแแงแแ แแแ:
แแแแฃแแแแขแแชแแ ... แแ แแก? แฒแแ แแแแแ?.. แกแแแแแ แแฌแงแแ, แ แแแแ แช แแฎแแแแแแ แแ แแฌแแ แแแ? แแ แแแแแ แกแแ แแแแแแแชแแ: TL (Type Language) แแ แแแกแ แกแฅแแแ, แคแแแแแ แแ แแ แแแแแ แกแฎแแ แกแแจแแแแแ แกแแขแงแแ TL แกแแแขแแฅแกแแก แฅแแแฏแแฃแคแแก แแแแแ แแฆแฌแแ แ แแแแแแแก, แแแกแแช แแ แกแฃแ แก แแคแแชแแแแฃแ แ แแแแฃแแแแขแแชแแแก แฌแแแแแฎแแ แแแฅแขแแ แ, แ แแแแแก แแแแแแแ แแแ แแแฎแแ แฎแแ แแ แกแแแฃแแ TL แแแแแ แแแแแ แแแแจแ แขแแแแแแก แแแแแแแแแ แขแแแแก แแแแจแ แแแ แกแแแแ. แคแแแแแ
MT แแ แแขแ แกแแขแ แแแกแแแ แขแ แคแแแ แแแกแแฆแแแแแ, แจแแขแงแแแแแแแแแ, แกแแกแแแแ, Diffie-Hellman แจแแขแงแแแแแแแแแแก แแแแแแแแ, msg_id, msg_seqno, แแฆแแแ แแแ, แแแแแแแ แแ แแกแฌแแ แ แแแแแ แแฃแแแแแ แแ แกแฎแแ แแแแแกแแแฃแ แแแแแ RPC: แแแแฎแแแแแแ, แแแกแฃแฎแแแ, แจแแชแแแแแแ. แแแแแกแขแฃแ แแแแแ. แแแแแแแแแแฃแแแแ: แจแแขแงแแแแแแแแแแก แแแกแขแแก แกแขแแขแฃแกแแแ แแแแแแแ แแ แขแแแแแแแ. แ แแแแแ. แ แแแแ แฃแแแ แงแแคแแแแงแ แแแแ แแแฅแขแแแฃแแ?
API? แฒแแแ แซแแแแแ แแฅแแแแ!
แแแแฃแแแแขแแชแแ ... แแ แแก? แฒแแ แแแแแ?..
แแ แกแขแแขแแแกแแแแก แจแแแแจแแแแแแก แคแ แแแแแแขแแแแก แจแแแ แแแแแ แแแกแฃแ แแแคแฎแฃแแก แแแแฌแงแ. แแแแแ แแก แแ แ แแคแแชแแแแฃแ แกแแแขแแ
แกแแแแแ แแฌแงแแ, แ แแแแ แช แแฎแแแแแแ แแ แแฌแแ แแแ?
แแ แแฅแแก แแแแจแแแแแแแ แแฃแแแแแ แฌแแ แ แแฃ แแงแแแแแ, แแแแแแแแแ, แแแ แแแแแแแแแแแแก, แ แแแแ แแชแแ api_id
ะธ api_hash
(แแแ, แแแแช แแฃแจแแแแแ VKontakte API-แกแแแ, แแแจแแแแ แแกแแแ), แ แแแแแแแช แกแแ แแแ แ แแแแแชแแแแก แแแแแแแชแแแก. แแก แฃแแแ แแฃแ แแแแฃแแ แแแแแแแแแก แแแแ, แแแแ แแ แฃแคแ แ แแแขแก แแแกแแฃแแ แแแ แแแแแ, แแฃ แ แแขแแ แแ แจแแฃแซแแแแ แแแแแแแแแแแก แแแขแแ แแแก แแแกแ แแแแแฅแแแงแแแแ แแแแ แ แแแฌแแแจแ. แแแแแ แแแแงแแคแแแ แแแ แฉแแแแ แขแแกแขแแก แแแแจแแแแแแแแแแ, แแฃแแชแ แแกแแแ แซแแแแแ แจแแแฆแฃแแฃแแแ - แคแแฅแขแแ, แ แแ แแฎแแ แจแแแแซแแแแ แแแ แแแแกแขแ แแ แแแ แแฅแแแแก แแแแแ แแ แแฎแแแแ แแ แแ แแแแแชแฎแแแแก, แแกแ แ แแ แแ แฉแฅแแ แแแแ แแแแกแแขแแฎแ.
แแฎแแ แขแแฅแแแแฃแ แ แแแแแกแแแ แแกแแ แฃแแแ แแแแแแขแแ แแกแแแแแก, แ แแ แ แแแแกแขแ แแชแแแก แจแแแแแ แขแแแแแ แแแแแแ แฃแแแ แแแแแฆแแ แจแแขแงแแแแแแแแแ แแแแฃแแแแขแแชแแแก, แแ แแขแแแแแแก แแแแแฎแแแแแแแก แจแแกแแฎแแ แแ แ.แจ. แแแฃ, แจแแแซแแแแ แแแแแ แแฃแแแ, แ แแ แแแแกแแแแแแแแแ แกแแแขแ แฃแแ แแแแ "แแแแขแแแ" แแ แแแแแแ แซแ แแฃแจแแแแ แแแแแ แแขแฃแแแ แแแแแแ, แแแแช แแแแฌแงแ แแแแแแขแแแแก แจแแฅแแแ, แ แแแแแ. แฃแคแ แ แแแแแแแ. แแแแ แแ แแ แ, แแกแแแแกแ แแ แแคแแ แ แแแคแแฅแกแแ แแแฃแแ, แแแคแแ แแแชแแ แแ แแแกแฃแแ.
แแ แแฃ แแฃแแแแแ แฌแแ แ, แแแจแแ แแแฆแแแฃแแ แแแ แแแแขแ แแแแก แแแแแงแแแแแ แ แแแแฃแ แแ แฏแแ แแแแแ แจแแ แก แแ แแก. แแแฃแฎแแแแแแ แแแแกแ
แกแแแแแแแแแแจแ, แ แแแแ แช MTProto-แแแ, แแกแ แแแก แจแแแแแ, แแ แแแ แแฃแแแ แ แแแแแแแแ แแแแแแ (แ แแแแ แช OS-แแก แแแ แแแจแ แแแแฃแจแแแ แฃแชแฎแแแแ แฅแกแแแแก แฌแแ แแแแแแแแแแแแ แแแแแแแ, แคแแแแก แแแ แฆแแแแ), แแแแ, แแขแแแแแแฃแแ แแ แกแแจแแแแแ แแแแ แฎแแแก แจแแฃแจแแแก ...
แแ แแแแแ แกแแ แแแแแแแชแแ: TL (Type Language) แแ แแแกแ แกแฅแแแ, แคแแแแแ แแ แแ แแแแแ แกแฎแแ แกแแจแแแแแ แกแแขแงแแ
แแก แแแแ, แคแแฅแขแแแ แแแแ, แแ แแก Telegram-แแก แแ แแแแแแแแแก แแแกแแฆแแแ. แแ แแแแ แ แกแแจแแแแแ แกแแขแงแแ แแฅแแแแ, แแฃ แจแแแชแแแแแ แแแกแจแ แฉแแฆแ แแแแแแแก.
แแกแ แ แแ, แกแฅแแแ. แแฃ แแแฎแกแแแ แแก แกแแขแงแแ, แแฅแแแ:
int ? = Int;
long ? = Long;
double ? = Double;
string ? = String;
vector#1cb5c415 {t:Type} # [ t ] = Vector t;
rpc_error#2144ca19 error_code:int error_message:string = RpcError;
rpc_answer_unknown#5e2ad36e = RpcDropAnswer;
rpc_answer_dropped_running#cd78e586 = RpcDropAnswer;
rpc_answer_dropped#a43ad8b7 msg_id:long seq_no:int bytes:int = RpcDropAnswer;
msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;
---functions---
set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:bytes = Set_client_DH_params_answer;
ping#7abe77ec ping_id:long = Pong;
ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;
invokeAfterMsg#cb9f372d msg_id:long query:!X = X;
invokeAfterMsgs#3dc4b4f0 msg_ids:Vector<long> query:!X = X;
account.updateProfile#78515775 flags:# first_name:flags.0?string last_name:flags.1?string about:flags.2?string = User;
account.sendChangePhoneCode#8e57deb flags:# allow_flashcall:flags.0?true phone_number:string current_number:flags.0?Bool = auth.SentCode;
แแแแแแแแ, แ แแแแแแช แแแแก แแแ แแแแแ แฎแแแแแก, แแแขแฃแแชแแฃแ แแ แแแแแชแแแแก แแแฌแแ แแแแก แแฎแแแแ แแแฌแแแก - แแแ แแแ, แแก แแจแแแ แแ แกแขแ แฃแฅแขแฃแ แแแแ (แแฃแแชแ แกแแ แแ แแก แกแแฎแแแ, แแแ แชแฎแแแ แแฃ แแแ แฏแแแแ?), แแแแจแ แแ แแก แแแแแแ, แ แแก แจแแแแแแแช แขแแแ แแแแแก แแกแฎแแแ แแแฌแแแแจแ ... แแแแแ. แแฅ, แแฃแแฎแแก แคแ แฉแฎแแแแแจแ, แแแแแ แแ แแก แจแแแแแแแแ, แ แแแแ แช C ++-แจแ (แกแแแแแแแแแแจแ, แแ แ แกแแแแแแ). แแ แ แแก แแแจแแแแก แงแแแแ แกแฎแแ แกแแแแแแ, แแแแฎแแแก แแแจแแแแ, แซแแฎแแแแก แฌแแ แขแแแแแ, แแ แแชแแแขแแแ, แแแกแแกแแแ (แแ แแจแแแ แแ แแกแแแ แกแฎแแแแแกแฎแแ แแแแแแแก แกแฎแแแแแกแฎแแ แ แแแแก แแแจแแแแก), แฌแแ แแแแแแแแแแ แกแแแฆแแช, แแแแ แแ แแ แ แกแแแฆแแช, แแแฅแแกแแแขแแแแแ แ แแชแฎแแแแ - แแ แ แแช แแแแแแ แแ, แ แแแแ แแแแแฆแแ แแฅแแแแ แ แแแฃแแแ แฃแแ (แ แแแแแแช แแ แแฅแแแแ แฃแแ แงแแคแแแ แกแแ แแแ แแก แแแแ ) แแแแขแแก แแแแแแ? แแฅแแแ แฃแแแ แฌแแแแแแฎแแ แแแแฃแแแแขแแชแแ (แแแแฎ, แแ แแก แกแฅแแแแก แแแฃแแแแ JSON แแแ แกแแแจแ แแฎแแแแแฎแแ - แแแแ แแ แแก แแ แแแฃแกแขแแแก).
แแแแ แแแก แแแฎแกแแ
แคแฃแแฅแชแแแแแแฃแ แ แแแแแแก แแ แแแขแแแแขแฃแ แ แขแแแแก แแแกแแแแแก แแชแแแแ แแแแแฎแแแแแแแ, แ แ แแฅแแ แฃแแแ, แแแแแแฎแแก แแ แแแแก แแฆแฌแแ แแแแแแแ, แแฃแแแแช แแแแแแแแแแแ, แแแแ แแ แฃแคแ แ แแแชแแแแ แแ แจแแแซแแแแ แแแฅแแแก, แ แแ แแก แแแแแแแ แแ แแ แแก แชแฃแแ แแ แแแชแแแจแ. แแแแก แฌแแแแแฆแแแแแ แแ แแก:
- แแแแฎ, แแแแแแ แแแ แแแ แแฆแแ แก, แแแแ แแ แกแแแฌแฃแฎแแ แแ แแ แแ แแก แแแฆแฌแแฃแแ
- แ แฃแกแแแแก แฃแแแแแ แกแแขแแขแแแจแ แแแแแแแแแ IT แกแแแชแแแแแแแแจแแช แแ แแแแกแฎแแแแแแแ - แงแแแแ แแ แแแแฎแฃแแแแก แจแแกแแแแแแก แแฃแ แกแก
- แกแแแแแแแ, แ แแแแ แช แแแแแแแฎแแแ, แแ แแฅแขแแแแจแ แแกแแ แแ แแ แแก แกแแญแแ แ, แแแแแแแแ แแแแแงแแแแแฃแแแ แแฎแแแแ TL-แแก แแฎแแแแ แจแแแฆแฃแแฃแแ แฅแแแฏแแฃแคแ, แ แแแแแแช แแฆแฌแแ แแแแ
แ แแแแ แช แแแฅแแ #perl
FreeNode IRC แฅแกแแแจแ, แชแแแแแแก แแแแแฎแแ แชแแแแแก แแแ แแแญแ Telegram-แแแ Matrix-แแแ (แชแแขแแขแแก แแแ แแแแแ แแแฎแกแแแ แแแแแแ แแ แแกแฌแแ แแ):
แแกแแแ แจแแแ แซแแแแแ, แแแแฅแแก แแแแแแแแ, แแแแช แแแ แแแแแ แจแแแแแขแแแ แขแแแแก แแแแ แแ, แแฆแคแ แแแแแแแ แแ แแแแฌแงแ แแแกแแแ แแแแแจแแก แแชแแแแแแ, แกแฃแแแช แแ แแแแขแแ แแกแแแแ, แกแแญแแ แ แแงแ แแฃ แแ แ แแ แแฅแขแแแแจแ.
แแแแแ แแแฎแแ, แจแแจแแแแ แขแแแแแแก (แแแข, แแ แซแแแ แแ แ.แจ.) แกแแญแแ แแแแ, แ แแแแ แช แ แแฆแแช แแแแแแแขแแ แฃแแ, แแ แแแแแแก แแแแฎแแแแก - แกแแแแแแ แฏแแแจแ, แแกแแแ แฎแแแแ แฃแแแ แแแแฎแแ แชแแแแแแก - แแแแแแแแแ, แแชแแแแ แแแแแแ แแแแแงแแแแ. แแแฅแขแแ แ. แแแฃ, แคแแฅแขแแแ แแแแ, แแแกแแแแแฃ แแแฆแแแฃแ แแแแแแแก แแแแแแแ แกแแฎแแแแแก แฃแฌแแแแแ.
แแแแ แแ แแแ แ
TL แกแแแขแแฅแกแแก แฅแแแฏแแฃแคแแก แแแแแ แแฆแฌแแ แ แแแแแแแก, แแแแช แแ แแแแฎแฃแแแแก แแคแแชแแแแฃแ แแแแฃแแแแขแแชแแแก
constructor = Type;
myVec ids:Vector<long> = Type;
fixed#abcdef34 id:int = Type2;
fixedVec set:Vector<Type2> = FixedVec;
constructorOne#crc32 field1:int = PolymorType;
constructorTwo#2crc32 field_a:long field_b:Type3 field_c:int = PolymorType;
constructorThree#deadcrc bit_flags_of_what_really_present:# optional_field4:bit_flags_of_what_really_present.1?Type = PolymorType;
an_id#12abcd34 id:int = Type3;
a_null#6789cdef = Type3;
แงแแแแแแแแก แแฌแงแแแ แแแแกแแแฆแแ แแแ แแแแแแแแ แ, แ แแก แจแแแแแแแช, แกแฃแ แแแแแกแแแแแ (แแ แแฅแขแแแแจแ, แงแแแแแแแแก) แกแแแแแแแก แแแจแแแแแแ #
แฃแแแ แแงแแก CRC32 แแแชแแแฃแแ แขแแแแก แแฆแฌแแ แแแแแแก แแแ แแแแแแแแฃแแ แกแขแ แแฅแแแแแแ. แจแแแแแ แแแแแก แแแแแแแก แแฆแฌแแ แ, แแฃ แแกแแแ แแ แแแ - แขแแแ แจแแแซแแแแ แแงแแก แชแแ แแแแ. แแก แงแแแแแคแแ แ แกแ แฃแแแแแ แขแแแแแแก แแแจแแแ, แแ แขแแแแก แกแแฎแแแฌแแแแแแ, แ แแแแแกแแช แแแแแฃแแแแแแ แแแชแแแฃแแ แแแแกแขแ แฃแฅแขแแ แ - แแแฃ แคแแฅแขแแแ แแแแ แฅแแแขแแแ. แขแแแแแแก แแแจแแแก แแแ แฏแแแแ แแ แแก แขแแแ แแแแแแแ แคแฃแแ - แแแฃ แจแแแซแแแแ แจแแแกแแแแแแแแแแก แ แแแแแแแแ แกแแแชแแคแแแฃแ แขแแแก.
แแฃ แแแแกแแแฆแแ แแแ แฎแแแแ แฎแแแแก แจแแแแแ ---functions---
, แแแจแแ แกแแแขแแฅแกแ แแแแแ แแแ แฉแแแ, แแแแ แแ แแแแจแแแแแแแ แแแแกแฎแแแแแแฃแแ แแฅแแแแ: แแแแกแขแ แฃแฅแขแแ แ แแแฎแแแแ RPC แคแฃแแฅแชแแแก แกแแฎแแแ, แแแแแแ แแแฎแแแแ แแแ แแแแขแ แแแ (แแแ แแแ, แแแฃ แแแ แฉแแแ แแฃแกแขแแ แแแแแ แแแชแแแฃแแ แกแขแ แฃแฅแขแฃแ แ, แ แแแแ แช แฅแแแแแ แแ แแก แแฆแฌแแ แแแ, แแก แแฅแแแแ แแฎแแแแ แแแชแแแฃแแ แแแแจแแแแแแแ), แแ "แแแแแแแ แคแฃแแ แขแแแ" แแ แแก แแแแ แฃแแแแฃแแ แจแแแแแแก แขแแแ. แแแ แแแแแ, แแก แแแแแช แแแ แฉแแแ แแแแแแแ แคแฃแแ - แแฎแแแแ แแแแงแแคแแแแแแจแ แแแแกแแแฆแแ แฃแแ ---types---
, แแ แแก แแแแกแขแ แฃแฅแขแแ แ แแ แแแแแฎแแแแแ. แแแ แแคแแ แแแฌแแแแแฃแแ แคแฃแแฅแชแแแแแก แแแแแขแแแ แแแแแ แแแแ แแ แแฃแแแแขแแแแ, แ.แ. แ แแขแแแฆแแช, แ แแแแแแแแ แคแฃแแฅแชแแ แแแแแ แกแแฎแแแแ, แแแแ แแ แแแแกแฎแแแแแแฃแแ แฎแแแแแฌแแ แแ, แ แแแแ แช C++-แจแ, แแ แแ แแก แแแแแแแแกแฌแแแแแฃแแ TL-แจแ.
แ แแขแแ "แแแแกแขแ แฃแฅแขแแ แ" แแ "แแแแแแแ แคแฃแแ" แแฃ แแก แแ แแ แแก OOP? แกแแแแแแแแแแจแ, แแแแแแกแแแแก แฃแคแ แ แแแแแแ แแฅแแแแ แแแแแ แคแแฅแ แ OOP-แแก แแแแแกแแแ แแกแแ - แแแแแแแ แคแฃแแ แขแแแ, แ แแแแ แช แแแกแขแ แแฅแขแฃแแ แแแแกแ, แแ แแแแกแขแ แฃแฅแขแแ แแแ แแแกแ แแแ แแแแแ แ แจแแแแแแแแแแ แแแแกแแแแ, แฃแคแ แ แแแขแแช. final
แ แแแ แแแแแแก แขแแ แแแแแแแแแแจแ. แกแแแแแแแแแแจแ, แ แ แแฅแแ แฃแแแ, แแฅ แแกแแแแกแแแ แ แแแแฃแ แ แแแแแขแแแ แแฃแแ แแแแกแขแ แฃแฅแขแแ แแก แแแแแแแแแ OO แแ แแแ แแแแ แแแแก แแแแแจแ. แแแแแแแแ แแฅ แแฎแแแแ แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แแแแ, แแ แแ แกแแแแแก แแแแแแแแ (แแฃแแชแ แฅแแแแแ แแแชแแแฃแแ แคแฃแแฅแชแแแแแก แแ แแแแแแแแแก แแฆแฌแแ แแ แจแแแซแแแแ แแแแแแฌแแแแก แแแแแแฃแแแแ แแแแก แจแแกแแฎแแ, แแฃ แ แ แแ แแก แแกแแแ, แแแแ แแ แแก แกแฎแแ แ แแแแแแ) - แจแแแแซแแแแ แฌแแ แแแแแแแแแ แแแแกแขแ แฃแฅแขแแ แ, แ แแแแ แช แฆแแ แแแฃแแแแ, แกแแแแแแแช แจแแแแแแ แแแ แแคแแ แแแแขแแแแก แแแแแแแก แฌแแแแแฎแแแกแแก.
แ แแแแ แฎแแแแ แแก? แแแกแแ แแแแแแแขแแ แ, แ แแแแแแช แงแแแแแแแแก แแแแฎแฃแแแแก 4 แแแแขแก, แฎแแแแแก แแแแจแแแแแแแแก 0xcrc32
- แแ แฎแแแแแ แ แ แแฅแแแแ แจแแแแแ field1
แขแแแแ int
, แ.แ. แแแแฎแฃแแแแก แแฃแกแขแแ 4 แแแแขแก, แแ แแแแแคแแ แแแฃแ แแแแแ แขแแแแก PolymorType
แฌแแแแแแฎแแ. แฒฎแแแแแก 0x2crc32
แแ แแกแแแก, แ แแ แแแแแ แแ แ โโแแแแแ, แแแ แแแแ long
แแกแ แ แแ, แฉแแแ แแแแแฎแฃแแแแ 8 แแแแขแก. แแ แจแแแแแ แแกแแ แ แแฃแแ แขแแแ, แ แแแแแแช แแแกแแ แแแแแแแฃแแแ แแแแแ แแแแ. แฒแแแแแแแแ, Type3
แจแแแซแแแแ แแแแแชแฎแแแแแก แกแฅแแแแจแ, แ แแแแ แช แแ แแ แ แแแแกแขแ แฃแฅแขแแ แ, แจแแกแแแแแแกแแ, แจแแแแแแแจแ แฃแแแ แจแแฎแแแแก แ แแแแแแแแก 0x12abcd34
, แ แแก แจแแแแแแแช แแฅแแแ แฃแแแ แฌแแแแแแฎแแ แแแแแ 4 แแแแขแ int
แแ 0x6789cdef
, แ แแก แจแแแแแแแช แแ แแคแแ แ แแฅแแแแ. แกแฎแแ แแ แแคแแ แ - แแฅแแแ แฃแแแ แฉแแแแแแ แแแแแแแแแแกแ. แแแแแกแแแแ แจแแแแฎแแแแแจแ, แแแแก แจแแแแแ แแฃแแ แฃแแแแแแ 4 แแแแขแแก แแแแฎแแแก int
แแฆแแแ แ field_c
ะฒ constructorTwo
แแ แแแแแ แแแแแแแ แแแ แฉแแแแ แฌแแแแแฎแแแก PolymorType
.
แแแแแก แแฃ แแแแญแแ แแก 0xdeadcrc
แแแแกแแแแก constructorThree
, แจแแแแแ แงแแแแแคแแ แ แฃแคแ แ แ แแฃแแแแแ. แฉแแแแ แแแ แแแแ แกแคแแ แ bit_flags_of_what_really_present
แขแแแแ #
- แกแแแแแแแแแแจแ, แแก แแฎแแแแ แขแแแแก แแแขแกแแฎแแแแ nat
แแแจแแแแก "แแฃแแแแ แแ แ แแชแฎแแก". แแแฃ, แคแแฅแขแแแ แแแแ, unsigned int แแ แแแแแ แแ แจแแแแฎแแแแแ, แกแฎแแแแ แจแแ แแก, แ แแแแกแแช แฎแแแแแฃแฌแแ แแแ แ แแชแฎแแแแ แแแฎแแแแแ แ แแแแฃแ แกแฅแแแแแจแ. แแกแ แ แแ, แจแแแแแแ แแ แแก แแแแกแขแ แฃแฅแชแแ แแแแฎแแแก แแแจแแแ, แ แแช แแแจแแแแก, แ แแ แแก แแ แแก แแแแ - แแก แแฅแแแแ แแแแแฃแแแ แแฎแแแแ แแ แจแแแแฎแแแแแจแ, แแฃ แจแแกแแแแแแกแ แแแขแ แแแงแแแแแฃแแแ แแแแแแแแฃแ แแแแจแ (แแแแฎแแแแแแ, แ แแแแ แช แกแแแแแแ แแแแ แแขแแ แ). แแกแ แ แแ, แแแแฃแจแแแ, แ แแ แแก แแแขแ แแงแ แฉแแ แแฃแแ, แแแจแแ แฃแแแ แฌแแแแแแฎแแ แแแแ, แ แแแแ แแชแแ Type
, แ แแแแแกแแช แฉแแแแก แแแแแแแแจแ แแฅแแก 2 แแแแกแขแ แฃแฅแขแแ แ. แแ แแ แชแแ แแแแแ (แแฎแแแแ แแแแแขแแคแแแแขแแ แแกแแแ แจแแแแแแ), แแแแ แแก แแฅแแก แแแแ ids
แขแแแแ ids:Vector<long>
.
แจแแแซแแแแ แคแแฅแ แแแ, แ แแ แจแแแแแแแแแช แแ แแแแแ แแแแแแช แแแ แแแ แแ แฏแแแ. แฒแแแ แแ แแ แ. แแแแฅแแแก. แแก แแ แแ แแฃแแฎแแก แคแ แฉแฎแแแแแแก แจแแแแฎแแแแแจแ แ แแแแฃแ แกแฅแแแแแจแ แแ แแก แแแแแแงแแแแแ แแฎแแแแ แแแฅแขแแ แแกแแแแก. แแแแขแแก แแแแแแจแ แแก แแฅแแแแ 4 CRC32 แแแแขแ แแแแแ Vector แขแแแแกแแแแก, แงแแแแแแแแก แแแแแ, แจแแแแแ 4 แแแแขแ - แแแกแแแแก แแแแแแแขแแแแก แ แแแแแแแแ แแ แจแแแแแ แแแแแ แแก แแแแแแแขแแแ.
แแแแก แแแฃแแแขแแ แแก แคแแฅแขแ, แ แแ แกแแ แแแแแแแชแแ แงแแแแแแแแก แฎแแแแ 4 แแแแขแแก แกแแขแงแแแแจแ, แงแแแแ แขแแแ แแแกแ แแ แแแแแแแแแ - แแฆแฌแแ แแแแ แฉแแจแแแแแฃแแ แขแแแแแแช. bytes
ะธ string
แกแแแ แซแแก แฎแแแแ แกแแ แแฃแแแแแชแแแ แแ แแ แแแกแฌแแ แแแแ 4-แแ - แแแ แแแ, แ แแแแ แช แฉแแแก, แแแ แแแแฃแ แแ แแฆแแ แก แแ แจแแแแ แแแแ แแคแแฅแขแฃแ แแแแช แแ? แแแฃแฎแแแแแแ แแแแกแ, แ แแ TL-แก แแแขแแแชแแแแ, แ แแ แแคแแฅแขแฃแ แ แแ แแแแแ แกแแ แแฃแแแแแชแแแ, แแแแ แแ แฏแแแแแแ แแแ, แแแแแกแแแแ แ แแแคแแ แแแแแแ, แแฃแแแแช แแแแแแฃแ แ แแแแจแแแแแแแแแแ แแ แแ แแกแแแแแแแแแแ แกแขแ แแฅแแแแแแ 4 แแแแขแแแแ, แแฅแแแแ แแฃ แแ แ JSON แแแแ แแ แกแฅแแแ? แจแแฎแแแแ, แแ แแกแแญแแ แ แแแแแแกแแช แแ แจแแแซแแแแ แแแแแขแแแแ แชแแขแ แแ แแจแแแ, แงแแแแแคแแ แ แแแ แแแแแ แแ แแแแแแแแกแแแแกแแช แแ แแแคแแ แแแแแแแ, แแแแแแแแแแแ แแแแแแขแแ แแฎแแแ แแ แฉแแแแแ แแแแแแ แแแแกแขแ แฃแฅแขแแ แก?..
แแแแ แแ แแ แ, แแฃ แฌแแแแแแฎแแแ แแ แ แฉแแแก แแแแแ แแฆแฌแแ แแก, แแ แแแแ แกแ แฃแ แแแแฃแแแแขแแชแแแก แแ แแคแแฅแ แแ แแแแฎแแ แชแแแแแแแแ. แแแ แแแ แ แแแจแ, แแแแกแขแ แฃแฅแขแแ แแก CRC32 แแแแแแแแแแแ แแแ แแแแแแแแฃแแ แกแฅแแแแก แขแแฅแกแขแแก แแฆแฌแแ แแแแแแก แกแขแ แแฅแแแแ (แฌแแจแแแแ แแแแแแขแ แกแแแ แชแ แแ แ.แจ.) - แแกแ แ แแ, แแฃ แแฎแแแ แแแแ แแแแแแขแแแ, แจแแแชแแแแแ แแฆแฌแแ แแก แขแแแแก แกแขแ แแฅแแแ แแ, แจแแกแแแแแแกแแ, แแแกแ CRC32 แแ, แจแแกแแแแแแกแแ, แกแแ แแแแแแแชแแ. แแ แ แแก แแแแแแแแแแ แซแแแแ แแแแแแขแ, แแฃ แแแแฆแแแแ แแแแก แแฎแแแ แแ แแจแแแแ แแแงแแแแแฃแแ, แแแแ แแ แแแ แแ แแชแแแ แ แ แฃแแแ แแแแแแแแก แแแแแแ แจแแแแแ? ..
แแแแ แแช, แแแแแฎแกแแแแ CRC32, แ แแแแแแช แแฅ แซแแ แแแแแแ แแแแแแงแแแแแ แ แแแแ แช แฐแแจแแก แคแฃแแฅแชแแแแ แชแแแกแแฎแแ แแแแแกแแแฆแแ แแก แ แ แขแแแแก แฎแแแแ (แแ)แกแแ แแแแแแแชแแ. แแฅ แฉแแแ แจแแฏแแฎแแแแก แแ แแแแแแแก แฌแแแแจแ แแแแแแแ แ - แแ แแ แ, แแแแแแแแ แแ แแ แแก แแ แแ 232-แจแ, แแ แแแแ แแแแ แแ แแแขแ. แแแก แแแแฎแกแแแแ, แ แแ CRC32 แจแแฅแแแแแแ แแแแกแแแแก, แ แแ แแฆแแแแฉแแแแก (แแ แแแแแแกแฌแแ แแก) แจแแชแแแแแแ แกแแแแแฃแแแแแชแแ แแ แฎแจแ แแ, แจแแกแแแแแแกแแ, แแแแฃแแฏแแแแกแแก แแก แแแแกแแแแแ แกแฎแแแแแก แกแแแแแแแ? แแแแแแแแแ, แแแก แแ แแแแขแแ แแกแแแก แแแแขแแแแก แแแ แแฃแขแแชแแ: แแฃ แแฅแแแ แแแแแแ CRC32-แก แแ แ แฎแแแแแแ, แแแแ แแจแ แแฅแแแ แจแแชแแแแ แแแ แแแ 4 แแแแขแก แแแแแแแแ 4 แแแแขแแ - แแก แแแแแ แแฅแแแแ. แ แแแแกแแช แฉแแแ แแแแฅแแก แขแแฅแกแขแแก แกแขแ แแฅแแแแแ แแแแแแฃแ แ แแแแแแแแแ (แแ แชแแขแ แกแแกแแแแ แแแจแแแแ) แจแแงแแแแแก แกแแฎแแ, แแ แแก แกแแฎแแแแแ แแแแกแแแฃแแ แแแแ แจแแแแฎแแแแแแ แแ แแ แแก, แแกแแแ แแแ แแฃแขแแชแแแก แแแแแแแแ แแแแจแแแแแแแแแ แแแ แแแแ.
แกแฎแแแแ แจแแ แแก, แแแ แจแแแแแฌแแ แ แ แแงแ แแแแแแแแแ CRC32? แแ แ-แแ แ แแแ แแฃแ แฌแงแแ แแจแ (แฃแแแขแแแแแแแแช แแ) แแ แกแแแแแแ แฐแแจแแก แคแฃแแฅแชแแ, แ แแแแแแช แแแ แแแแแแแ แแแแแแฃแ แกแแแแแแแก 239 แ แแชแฎแแแ, แแ แฎแแแฎแแกแแแแก แแกแ แกแแงแแแ แแแ, แฐแ แฐแ!
แกแแแแแแแ, แแแ แแ, แแแแฎแแแแ, แ แแ แแแแกแขแ แฃแฅแขแแ แแแ แแแแแก แขแแแแกแแ Vector<int>
ะธ Vector<PolymorType>
แแฅแแแแ แแแแกแฎแแแแแแฃแแ CRC32. แแ แ แแช แจแแแฎแแแ แแ แแแแแขแแชแแแก แฎแแแแ? แแ แแแแ แแแก แแแแแกแแแ แแกแแ, แฎแแแแ แแฃ แแ แ แแก แขแแแแก แแแฌแแแ? แแแฅแแแ, แฉแแแ แแแแแแชแแแ แแแ แแแแกแ แแแแ แแก แแแกแแแก Vector<int>
แงแแแแแคแแ แ แแแกแแแแแแ, แกแแแ แซแ แแ แแแแแ 40000 แแแแขแ. แแ แแฃ แแก Vector<Type2>
, แ แแแแแแช แจแแแแแแ แแฎแแแแ แแ แแ แแแแแกแแแแ int
แแ แแก แแ แแแแแ แแแ แขแแแจแ - แฃแแแ แแแแแแแแ แแ 10000xabcdef0 34 แฏแแ แแ แจแแแแแ 4 แแแแขแ int
, แแ แแแแก แจแแฃแซแแแ แฉแแแแแแแก แแแแก แฉแแแแแแ แแแแกแขแ แฃแฅแขแแ แแกแแแ fixedVec
แแ 80000 แแแแขแแก แแแชแแแแ แแกแแ แแแแแแแขแแ แแฎแแแแ 40000?
แแก แกแฃแแแช แแ แแ แแก แฃแกแแฅแแฃแ แ แแแแ แแฃแแ แแแแฎแแ - แฌแแ แแแแแแแแแ, แ แแ แแแแฆแแแ แฏแแฃแคแแก แแแแฎแแแ แแแแแแ แกแแแก, แ แแแแแแแแแ แแแแแแฃแแก แแฅแแก ID, แกแแฎแแแ, แแแแ แ - แกแฎแแแแแ แแแแแแฃแ แ แแแแจแแ แแก แกแแจแฃแแแแแแ แแแแแชแแแฃแแ แแแแแชแแแแแแก แ แแแแแแแแแจแ แจแแแซแแแแ แแงแแก แแแแจแแแแแแแแแ. แแก แแ แแก Telegram-แแก แกแแ แแแแแแแชแแแก แแคแแฅแขแฃแ แแแ, แ แแแแแแช แ แแแแแแแ แแแฃแแแ แฉแแแแแแ.
แแกแ แ แแ ...
แแแฅแขแแ แ, แ แแแแแก แแแแแแแ แแแ แแแฎแแ แฎแแ
แแฃ แจแแแชแแแแแ แแแแแแแแขแแ แแแแก แแฆแฌแแ แแก แแแแ แแแแก แแ แแแแฎแแแแแแ, แแแแแแฎแแแ, แ แแ แแแฅแขแแ แ (แแ แแฃแแแแช แแแขแ แแชแ) แคแแ แแแแฃแ แแ แชแแแแแแก แ แแแแแแแแ แคแฃแ แชแแแก แแแแแขแแแแก แขแแแแแแก แแแจแแแแแแ. แแแแ แแ แกแแแแแแแ แแกแแแ แญแ แแแ, แกแแแแแแ แแแแแฏแ แแแแแขแแแแแฃแแแ แแ แฃแแ แแแแ แแแชแแแฃแแแ แแแฅแขแแ แแก แแแแแแ แขแแแ, แ แแแแแแช แแกแแแ แแ แแ แแก แแแแแแจแแ แแแฃแแ แขแแแแแ. แ แ แจแฃแแจแแ แแฅ? แแแแแจแ แแ แแแ แแแแ แแแ, แแแแกแแแฃแแ แแแแ แคแฃแแฅแชแแแแแแฃแ แ, แกแแแแแแ แขแแแแฃแ แแ แกแขแ แฃแฅแขแฃแ แแก แ แแแฃแ แกแแฃแแแ แแฆแฌแแ แ - แจแแแแแแแแแ แแแแแกแ แแแ แแแชแ แจแแคแแกแแแแ แงแแแแแคแแ แก แแแแแแแก แแ แแแแแแแแแก. แแแแจแ แแแแแชแแแแ แกแแ แแแแแแแชแแ แแแแ แแ แกแแญแแ แแ แแคแแฅแขแฃแ แแแ: แกแแแแแ แแกแแ แฃแแ แแแแ แแฆแฌแแ แแ ัะฟะธัะพะบ, แ.แ. แแ แ แแแแแแแขแแก แกแขแ แฃแฅแขแฃแ แ - แแแ แแแแ แแ แแก แแแแแชแแแแ แแแแแแแขแ, แแแแ แ แแ แแก แแแแแ แกแขแ แฃแฅแขแฃแ แ แแ แชแแ แแแแ แแแแแแ แแฃแแแกแแแแก (แแแแแขแ (cons)
แแแกแแจแ). แแแแ แแ แแแแก แแจแแแ แแ แแแกแญแแ แแแแ แแแแแแฃแ แแแแแแแขแ แแแแแขแแแแ แฎแแ แฏแแแก 4 แแแแขแก (CRC32 TL-แแก แจแแแแฎแแแแแจแ) แแแกแ แขแแแแก แแฆแกแแฌแแ แแ. แแแกแแแแก แแฆแฌแแ แ แแแ แขแแแแ แคแแฅแกแแ แแแฃแแ แแแแ, แแแแ แแ แแแแแแแ แฃแชแแแแ แกแแแ แซแแก แแแกแแแแก แจแแแแฎแแแแแจแ แแฌแงแแแขแ.
แแกแ แ แแ, แ แแแแแ TL แแ แแแซแแแแ แกแแจแฃแแแแแแก แแแแแแงแแแแแ แแแฅแขแแ แ, แแก แฃแแแ แแแแแแขแแก แแฎแแ แแก. แกแแแแแแ แฏแแแจแ, แแแแฃแแแแขแแชแแแจแ แแแแฅแแแแแ:
แกแแ แแแแแแแชแแ แงแแแแแแแแก แแงแแแแแก แแ แแกแ แแ แแแแแ แแแแกแขแ แฃแฅแขแแ แก โแแแฅแขแแ แกโ (const 0x1cb5c415 = crc32 (โแแแฅแขแแ แ t:Type # [t ] = Vector tโ), แ แแแแแแช แแ แแ แแก แแแแแแแแแแฃแแ t แขแแแแก แชแแแแแแก แแแแแ แแขแฃแ แแแแจแแแแแแแแแ.
แแ แฉแแแแแ แแแ แแแแขแ แแก แแแแจแแแแแแแ t แแ แแ แแก แฉแแ แแฃแแ แกแแ แแแแแแแชแแแจแ, แ แแแแแ แแก แแแฆแแแฃแแแ แจแแแแแแก แขแแแแแแ (แงแแแแแแแแก แชแแแแแแ แแงแ แแแกแแ แแแแแแแชแแแแแ).
แแแแแแแ แแแ: vector {t:Type} # [ t ] = Vector t
- แแแแ แแ แแ แกแแ แแแแแ แแแแแแ แขแแแ แแ แแแแแแก, แ แแ แแแ แแแแ แ แแชแฎแแ แฃแแแ แแงแแก แแแฅแขแแ แแก แกแแแ แซแแก แขแแแ! แแ แแก แแ แกแแ แแ แแแงแแแแ. แแก แแ แแก แแแชแแแฃแแแแ, แ แแแแแแช แฃแแแ แแแฎแกแแแแแ แแ แแแแแฎแแ แชแแแแแ แแฅแแแแ แฎแแแแแแ. แกแฎแแแแแ, แแแแฃแแแแขแแชแแ แแฃแแฌแ แคแแแแแแช แแ แแฆแแแจแแแแก, แ แแ แขแแแ แงแแแแแ:
Vector t แแแแแแแ แคแฃแแ แคแกแแแแแขแแแ แแ แแก "แขแแแ", แ แแแแแก แแแแจแแแแแแแ แแ แแก แแแแแกแแแแ แ t แขแแแแก แแแแจแแแแแแแแแแก แแแแแแแแแแ แแแ, แงแฃแแจแ แแ แจแแจแแแแ.
... แแแแ แแ แแ แแแแแแแก แแแกแแ แคแแแฃแกแแ แแแแก. แ แแชแ แแแแแแแขแแแแก แแแญแแแแแ แแแฆแแแแ (แจแแแซแแแแ แฃแแแแแ แกแแขแแขแแก แแฃแ แกแแแแแแช แแแชแแแแแแ), แแแแแฌแงแแแขแ แฅแฃแแแแแก แแฆแแแแก แแ แฃแงแฃแ แแ, แแฃ แ แแแแ แฃแแแ แแแฃแจแแแ แแ แแฅแขแแแแจแ, แแแแจแ แจแแแแแญแแแแแแ แ แฉแแแ: แแฅ แกแแ แแแแฃแแ แแแแแแแขแแแ แแแงแแ แแแ , แแจแแแ แแ Cool People (แแ แ แแแแแแแขแแแแกแ - ACM-แแก แแแแแ แฏแแแแฃแแ) แแ แแ แ แแแแแ. แแแแแแ - แแแคแฃแญแแแ - แแแฆแฌแแฃแแแ.
แกแฎแแแแ แจแแ แแก, แ แแแแแแแแแก แจแแกแแฎแแ. แแแแแฎแกแแแแ
#
แแก แแ แแก แกแแแแแแแnat
แแฃแแแแ แแแ แ แแชแฎแแ:แแ แแก แขแแแแก แแแแแแแแฅแแแแแแ (typeexpr) แแ แ แแชแฎแแแแ แแแแแแแแฅแแแแแแ (nat-expr). แแฃแแชแ, แแกแแแ แแแแแ แแแแ แแ แแก แแแแกแแแฆแแ แฃแแ.
type-expr ::= expr nat-expr ::= expr
แแแแ แแ แแ แแแแขแแแแจแ แแกแแแ แแ แแแแแ แแ แแ แแก แแฆแฌแแ แแแ, แ.แ. แแก แแแแกแฎแแแแแแ แแแแแ แฃแแแ แแแแแแฎแกแแแ แแ แแ แฎแแแแ แแแแฎแแ แชแแแแแแก.
แแแแฎ, แจแแแแแแแก แขแแแแแ (vector<int>
, vector<User>
แแฅแแแแแ แกแแแ แแ แแแแแขแแคแแแแขแแ แ (#1cb5c415
), แ.แ. แแฃ แแชแแ แแแ แ แแแแแชแฎแแแแแฃแแแ แ แแแแ แช
users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
แแแจแแ แแฅแแแ แแแแแแแแ แแ แ แแฎแแแแ แแแฅแขแแ แก, แแ แแแแ แแแแฎแแแ แแแแแแ แแแฅแขแแ แก. แฒฃแคแ แ แแฃแกแขแแ, แฃแแแ แแแแแแแแแ - แ แแแแฃแ แแแแจแ, แแแแแแฃแ แแแแแแแขแก, แแฃ แแ แ แจแแจแแแ แขแแแก, แแฅแแแแ แแแแกแขแ แฃแฅแขแแ แ แแ แแแ แแ แแแแแกแแแ แแกแแ แแแแฎแแ แชแแแแแแแกแแก แกแแญแแ แ แแฅแแแแ แจแแแแฌแแแแ - แแ แฉแแแ แแแแแแแแแแแแแแก แแฃแกแขแแ แแ แแแฅแขแแ แแก แแแแแแฃแ แแแแแแแขแจแ แแ แขแแแแก? แแ แแฃ แแก แแงแ แ แแแแ แกแแฎแแก PHP, แ แแแแแจแแช แแแกแแแ แจแแแซแแแแ แจแแแชแแแแแก แกแฎแแแแแกแฎแแ แขแแแแแก แกแฎแแแแแกแฎแแ แแแแแแแขแแแจแ?
แแ แแ แแก แแฌแงแแ แคแแฅแ แก - แกแแญแแ แแ แแฃ แแ แ แแกแแแ TL? แแฅแแแ แแขแแแกแแแแก แจแแกแแซแแแแแแ แแงแแก แแแแแแแแแก แกแแ แแแแแแแขแแ แแก แแแแแงแแแแแ, แแแแแ แแ แแขแแแฃแคแ, แ แแแแแแช แแแจแแ แฃแแแ แแ แกแแแแแแ? แแก แแงแ แแแแ แแ, แแแแ แแ แแฅแขแแแแก แแแแฎแแแแ.
แแ แกแแแฃแแ TL แแแแแ แแแแแ แแแแจแ
TL แแแแแแแ VKontakte-แก แแแฌแแแแแแจแ แฏแแ แแแแแ แชแแแแแ แแแแแแแแแแแแ, แแฃแ แแแแก แฌแแแแก แแแงแแแแแ แแ (แแฃแชแแแแแแแ), แฏแแ แแแแแ Telegram-แแก แแแแแแแแ แแแแแแ. แแ แฆแแ แแแแแ
Templates are not used now. Instead, the same universal constructors (for example, vector {t:Type} [t] = Vector t) are used w
แแแแ แแ แกแแกแ แฃแแแกแแแแก แแแแแแฎแแแแ แกแฃแ แแแ, แ แแแ แแแแงแแแ, แแกแ แแแฅแแแ, แแแ แแแแแแแก แแแแแแขแแก แแแแแฃแชแแแก.
#define ZHUKOV_BYTES_HACK
#ifdef ZHUKOV_BYTES_HACK
/* dirty hack for Zhukov request */
แแ แแก แแแแแแ:
static const char *reserved_words_polymorhic[] = {
"alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta", NULL
};
แแก แคแ แแแแแแขแ แแฎแแแ แจแแแแแแแแก, แ แแแแ แแชแแ:
intHash {alpha:Type} vector<coupleInt<alpha>> = IntHash<alpha>;
แแก แแ แแก hashmap แจแแแแแแแก แขแแแแก แแแแแแ แขแแแ, แ แแแแ แช int - Type แฌแงแแแแแแแก แแแฅแขแแ แ. C++-แจแ แแกแ แแแแแแงแฃแ แแแ:
template <T> class IntHash {
vector<pair<int,T>> _map;
}
แแกแ, alpha
- แกแแแแแแซแ แกแแขแงแแ! แแแแ แแ แแฎแแแแ C++-แจแ แจแแแแซแแแแ แแแฌแแ แแ T, แแแแ แแ แฃแแแ แแแฌแแ แแ แแแคแ, แแแขแ... แแแแ แแ แแ แแฃแแแขแแก 8 แแแ แแแแขแ แแกแ, แคแแแขแแแแ แแแกแ แฃแแแ แแแขแแแ. แแกแ แ แแ, แ แแแแ แช แฉแแแก, แแ แแฎแแ แแแขแแ แแฃแ แแจแ แแงแ แแแแฎแแแแแแ แแกแแแ แแแแแแแแแ:
-- ะะฐะดะพ ัะดะตะปะฐัั ะฒ TL ัะฐะฑะปะพะฝั
-- ะะป... ะั ะฟัััั ะฟะฐัะฐะผะตััั ะทะพะฒัั ะฐะปััะฐ, ะฑะตัะฐ,... ะะฐะบะธะต ัะฐะผ ะตัั ะฑัะบะฒั ะตััั... ะ, ัััะฐ!
-- ะัะฐะผะผะฐัะธะบะฐ? ะั ะฟะพัะพะผ ะฝะฐะฟะธัะตะผ
-- ะกะผะพััะธัะต, ะบะฐะบะพะน ั ัะธะฝัะฐะบัะธั ะฟัะธะดัะผะฐะป ะดะปั ัะฐะฑะปะพะฝะพะฒ ะธ ะฒะตะบัะพัะฐ!
-- ะขั ะดะพะปะฑะฐะฝัะปัั, ะบะฐะบ ะผั ััะพ ะฟะฐััะธัั ะฑัะดะตะผ?
-- ะะฐ ะฝะต ััััะต, ะพะฝ ัะฐะผ ะพะดะธะฝ ะฒ ัั
ะตะผะต, ะทะฐั
ะฐัะบะพะดะธัั -- ะธ ะพะบ
แแแแ แแ แกแแฃแแแ แ แแงแ TL-แแก โแแแแแแแโ แแแ แแแ แแกแแฎแฃแ แแแแฎแแ แชแแแแแแแแ. แแแแแ แแแแแแแแแ Telegram-แแก แ แแแแฃแ แแแแแแขแแแจแ แแแแฎแแ แชแแแแแแแก แแแแฎแแแแแแ.
แแแกแแแแก แกแแขแงแแ:
แแแกแแแ, [09.10.18 17:07] แงแแแแแแ แแแขแแ, แขแ แแแ แแแแ แแชแฎแแแแแก, แ แแ แแแกแขแ แแฅแชแแแแแก แแแแแฃแแแแ แแแแแขแแ แแแก, แจแแแแแ แแ แญแแแญแแแ แแแแ แขแงแแก แแ แแแแแแแ แแขแแ แ แงแแแแ แฏแแแแแ แแแแแแคแแ แแก.
แจแแแแแแ, แฏแแ แแแแแแแแแ pilot.jpg
แจแแแแแ jekichan.webp แแแแแแแ
แ แ แแฅแแ แฃแแแ, แแแแแ แแแแแแแกแ แแ แแแแแแแขแแแแก แแชแแแแ แแแแแแแแแแแกแแแ แจแแแแแซแแแ แแแแแแแ, แ แแ แแแ แฌแแแแแแฎแแก Aho, Ullman แแ แแชแแแแแแแ แแ แคแแฅแขแ แแแแฃแกแขแ แแแก แกแขแแแแแ แขแฃแ แแแกแขแ แฃแแแแขแแแก แแแฌแแแฃแแแแแก แแแแแแแแแแแจแ แแแแ DSL แจแแแแแแแแแแแแก แแแกแแฌแแ แแ, แแ แ? ..
แแแขแแ แ
16.12 04:18 แแแกแแแ: แฉแแแ แแแ แแ, แแแฆแแชแแก แแ แแแแฃแคแแ lex + yacc
16.12 04:18 แแแกแแแ: แแแ แแ แแแ แแแฎแกแแ
16.12 04:18 แแแกแแแ: แแแ แแ, แแ แแแแแแฎแแแแก VK-แจแ แฎแแแแแแก แ แแแแแแแแ
16.12 04:19 แแแกแแแ: แกแฎแแแแ 3k+ แกแขแ แแฅแแแ<censored>
แแแ แกแแ แแก แแแชแแแแ
แแฅแแแ แแแแแแแแแแกแ? แแแแฎแแ แ แแแแ
nametype = re.match(r'([a-zA-Z.0-9_]+)(#[0-9a-f]+)?([^=]*)=s*([a-zA-Z.<>0-9_]+);', line);
if (not nametype):
if (not re.match(r'vector#1cb5c415 {t:Type} # [ t ] = Vector t;', line)):
print('Bad line found: ' + line);
1100+ แกแขแ แแฅแแแ แแแแแแจแ, แ แแแแแแแแ แ แแแฃแแแ แฃแแ แแแแแแแแฅแแแแ + แแแฅแขแแ แฃแแ แขแแแแก แกแแแชแแแแฃแ แ แจแแแแฎแแแแแแ, แ แแช, แ แ แแฅแแ แฃแแแ, แกแฅแแแแจแแ แแแแแชแฎแแแแแฃแแ, แ แแแแ แช แฃแแแ แแงแแก TL แกแแแขแแฅแกแแก แแแฎแแแแแ, แแแแ แแ แแ แกแแแขแแฅแกแแ แแงแแแแแแ, แฃแคแ แ แแแแแแแแแแแ. ...แกแแแแแฎแแแแ, แ แแขแแ แจแแแแฌแฃแฎแแ แแแแแ แแก แกแแกแฌแแฃแแะธแแแขแ แคแแคแฃแแ, แแฃ แแแแแชแแแแแแแช แแ แแแแ แแแแ แแแก แแแก แแแ แฉแแแแก แแแแฃแแแแขแแชแแแก แแแฎแแแแแ ?!
แกแฎแแแแ แจแแ แแก... แแแฎแกแแแก, CRC32 แฉแแแแ แแแกแแฃแแ แแ? แแกแ แ แแ, Telegram Desktop แแแแแก แแแแแ แแขแแ แจแ แแ แแก แแแแแแแแแแกแแแแก แกแแ แแ แขแแแแแแกแแแแก, แ แแแแแแจแแช แแแแแแแแแแแ CRC32 แแ แจแแแกแแแแแแแ แ แแแแ แช แแแฉแแแแแแแ แแแแแ แแแแจแ!
แแแกแแแ, [18.12 22:49] แแ แแฅ แฃแแแ แแคแแฅแ แ, แกแแญแแ แแ แแฃ แแ แ แแกแแแ TL
แแแขแแ แแแขแแฃแแ แแแแฎแแ แชแแแแแแแแแก แแ แแแ แ แแ แแกแฃแ แแ, แแแแแฌแงแแแแ แฎแแแแแแก แฌแงแแแขแแแแก แฉแแกแแแก, แแแ แกแแ แแแแก แแแฎแแแแ แ แแจแแแแ แแ แแแแแฎแแแแแแ แแแแแแ แขแแแแแแ
tdesktop, แแฃแแชแ, แแกแแแ
แแแแแแฎแกแแแ แแ แแฃแแฅแขแ แแ แแ แแแแแแ แแแแก แจแแกแแฎแแ, แฉแแแ แแแก แชแแขแ แแแแแแแแแแแ แแแแฃแแ แฃแแแแแแ.
แแแ แแ, telegram-cli แแ แแแคแแชแแแแฃแ แแ, Telegram Desktop แแคแแชแแแแฃแ แแ, แแแแ แแ แ แแช แจแแแฎแแแ แแแแแ แฉแแแแแก? แแ แแแ แแชแแก?.. แแแแ แแแแแก แแแแแแขแแก แแแแจแ แกแแแ แแแ แแ แแงแ แกแฅแแแแก แแแ แกแแ แ (แ แแช แแฉแแแก แแแแฎแแแแก แฆแแ แแแแแก แจแแกแแฎแแ, แแแแ แแ แแก แแ แแก แแแแ แ แแแฌแแแแกแแแแก), แแแแ แแ แแงแ แแแแแ แ แแแแแแแแ แกแแกแแชแแแ แแแแ, แแแแ แแ แแแ แจแแกแแฎแแ แฅแแแแแ แแแชแแแฃแแ แฅแแแแแแงแแคแแแแแ.
แกแฎแแ แ แ แแแแฎแแแแก แแแแแแก แแ แแฅแขแแแแจแ แกแแ แแแแแแแชแแ? แแแแแแแแแ, แแแ แแแแคแฃแญแแก, แ แ แแฅแแ แฃแแแ, แแแขแแก แแแแแแแ แแ แแแ แแแแแ แแแแแแแ:
vasily:
flags.0? true
แแแจแแแแก, แ แแ แแแแ แแ แกแแแแแก แแ แญแแจแแแ แแขแแ, แแฃ แแ แแจแ แแแงแแแแแฃแแแvasily:
flags.1? int
แแแจแแแแก, แ แแ แแแแ แแ แกแแแแแก แแ แกแแญแแ แแแแก แแแกแแ แแแแแแแชแแแกแแแกแแแ: แขแ แแแ, แแ แแแฌแแ, แ แแก แแแแแแ!
แแแกแแแ: แกแแแฆแแช แแแแฃแแแแขแจแ แแ แแก แแแฎแกแแแแแ, แ แแ true แแ แแก แแฃแแแแแแ แกแแแ แซแแก แจแแจแแแแ แขแแแ, แแแแ แแ แแ แแ แแแแฃแ แแ แ แแแแแก แจแแแ แแแแแ แแแแ แแแแฃแแแแขแแแแแแ.
แแแกแแแ: แฆแแ แแแแฎแแ แชแแแแแแแแจแแช แแ แแ แแก แแกแแแแกแ, แแแแ แแ แแแแ แ แงแแแแ แฏแแแแ แแ แ แแแแแแแขแแแแ.
แขแแแแแแแแแแ แ แแก แแขแงแแแ? MTProto-แก แแแแแก แฌแแ แแฃแงแฃแ แแ, แแแแแแแแ - แแแแฃแแแแขแแชแแแจแ แแ แแก แแกแแแ แแแฌแแแแแ, แแแแ แแ แแแจแแแ %
แแแ แแฎแแแแ แแฆแฌแแ แแแแ, แ แแแแ แช "แแแชแแแฃแแ แจแแจแแแแ แขแแแแก แจแแกแแแแแแกแ", แ.แ. แฅแแแแแ แแแชแแแฃแ แแแแแแแแแแจแ แแ แจแแชแแแแแ, แแ แ แแแแ แแแฃแกแแแฃแแแแแแ:
แแแกแแแ, [22.06.18/18/38 XNUMX:XNUMX] แแ แ แแแแแแแก:
msg_container#73f1f8dc messages:vector message = MessageContainer;
แแแแกแฎแแแแแแฃแแจแ:
msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;
แแ แแก แแ แ แแแแ แแแแกแฎแแแแแแแ, แ แแแแฃแ แชแฎแแแ แแแแจแ แ แแฆแแช แจแแจแแแแ แแแฅแขแแ แ แแแแแก
แแ แแ แแแแแฎแแแก แจแแจแแแแ แแแฅแขแแ แฃแแ แแแแแแ แขแแแแแ แแ แแ แจแแแฎแแแแ แแ
แขแแแแแแแจแ แฎแแแแ แแแฌแแ แแแ แแแแแแแ
แแแกแแ แกแฅแแแแ แแแแแแฅแแแงแแ แแแแแแ แขแแแ
msg_container
แแกแแ แแ แแกแแ, แแแแฎแแ แ แฉแแแ. แแ แแ แแก แแฆแฌแแ แแแ.
แแแแแ แแแแฉแแ แแแ, [22.06.18/19/22 XNUMX:XNUMX PM] แแ tdesktop-แจแ?
แแแกแแแ, [22.06.18/19/23 XNUMX:XNUMX] แแแแ แแ แแแแ TL แแแ แกแแ แ แ แแแฃแแแขแแ แแแแ แแแแแ แแ แช แจแแญแแแก
// parsed manually
TL แแจแแแแแแ แ แแแกแขแ แแฅแชแแแ, แแแก แกแ แฃแแแ แแ แแแแ แแฎแแ แชแแแแแแก
แแ แแ แแ แแก % แกแฅแแแแก แแแ แแแ แกแแแจแ
แแแแ แแ แแฅ แแแแฃแแแแขแแชแแ แแฌแแแแแฆแแแแแแแ แแแแแก แแแแก, แแแแขแแ xs
แแก แแ แแแแขแแแแจแ แแฅแแ แแแแแแแ, แแแ แฃแแ แแแแ แจแแแซแแแ แแแแแแฌแงแแแแแแ แกแแแแแขแแแแก แแฆแฌแแ แ
แแแ, แขแ-แแ แแแแ แแแฎแ, แแแฎแแแแ แ แแแขแ แแก แแแ แแจแ แแแ แฎแแแแแ
โแแแ แแ, แแแฅแแแ,โ แแขแงแแแก แกแฎแแ แแแแแฎแแแแ, โแแฅแแแ แแแ แแขแแแแแ แงแแแแแคแแ แก, แแกแ แ แแ แแฉแแแแแ แ แแแแ แช แฃแแแ.โ
แแแกแแแ แแแกแฃแฎแแแก: โแ แแช แจแแแฎแแแ แแแ แกแแ แก, แแ แแญแแ แแแแ แแกแแแแกแ แ แแ
args: /* empty */ { $$ = NULL; }
| args arg { $$ = g_list_append( $1, $2 ); }
;
arg: LC_ID ':' type-term { $$ = tl_arg_new( $1, $3 ); }
| LC_ID ':' condition '?' type-term { $$ = tl_arg_new_cond( $1, $5, $3 ); free($3); }
| UC_ID ':' type-term { $$ = tl_arg_new( $1, $3 ); }
| type-term { $$ = tl_arg_new( "", $1 ); }
| '[' LC_ID ']' { $$ = tl_arg_new_mult( "", tl_type_new( $2, TYPE_MOD_NONE ) ); }
;
แ แแฆแแชแแแแ แแ แฃแคแ แ แฐแแแแก แแแแ แ
struct tree *parse_args4 (void) {
PARSE_INIT (type_args4);
struct parse so = save_parse ();
PARSE_TRY (parse_optional_arg_def);
if (S) {
tree_add_child (T, S);
} else {
load_parse (so);
}
if (LEX_CHAR ('!')) {
PARSE_ADD (type_exclam);
EXPECT ("!");
}
PARSE_TRY_PES (parse_type_term);
PARSE_OK;
}
แแ
# Regex to match the whole line
match = re.match(r'''
^ # We want to match from the beginning to the end
([w.]+) # The .tl object can contain alpha_name or namespace.alpha_name
(?:
# # After the name, comes the ID of the object
([0-9a-f]+) # The constructor ID is in hexadecimal form
)? # If no constructor ID was given, CRC32 the 'tl' to determine it
(?:s # After that, we want to match its arguments (name:type)
{? # For handling the start of the '{X:Type}' case
w+ # The argument name will always be an alpha-only name
: # Then comes the separator between name:type
[wd<>#.?!]+ # The type is slightly more complex, since it's alphanumeric and it can
# also have Vector<type>, flags:# and flags.0?default, plus :!X as type
}? # For handling the end of the '{X:Type}' case
)* # Match 0 or more arguments
s # Leave a space between the arguments and the equal
=
s # Leave another space between the equal and the result
([wd<>#.?]+) # The result can again be as complex as any argument type
;$ # Finally, the line should always end with ;
''', tl, re.IGNORECASE | re.VERBOSE)
แแก แแ แแก แแแแแ แแแฅแกแแ แ:
---functions--- return FUNCTIONS;
---types--- return TYPES;
[a-z][a-zA-Z0-9_]* yylval.string = strdup(yytext); return LC_ID;
[A-Z][a-zA-Z0-9_]* yylval.string = strdup(yytext); return UC_ID;
[0-9]+ yylval.number = atoi(yytext); return NUM;
#[0-9a-fA-F]{1,8} yylval.number = strtol(yytext+1, NULL, 16); return ID_HASH;
n /* skip new line */
[ t]+ /* skip spaces */
//.*$ /* skip comments */
/*.**/ /* skip comments */
. return (int)yytext[0];
แแแแ. แฃแคแ แ แแแ แขแแแแ, แ แแแแแ แ แแ แแแฅแแแ."
แแแแแแแ, แกแแแแแแ แฏแแแจแ, แแแ แกแแ แ แแ แแแแแก แแแแแ แแขแแ แ TL-แแก แ แแแแฃแ แแ แแแแแงแแแแแฃแแ แฅแแแฏแแฃแคแแกแแแแก แฏแแแแ แแ แแแแขแแแแก แแแแฎแแแแแแ 100 แกแขแ แแฅแแแจแ แแ แแแแแ แแขแแ แแก 300 แกแขแ แแฅแแแจแ (แงแแแแแก แฉแแแแแแ print
's แแแแแ แแ แแแฃแแ แแแแ), แแแ แจแแ แแก, แแแ แแคแแ แกแแแแแแแแ, แแแ แแคแแ แแแคแแ แแแชแแ แแแขแ แแกแแแฅแขแแแแกแแแแก แแแแแแฃแ แแแแกแจแ. แแแแแแฃแแ แแแแแแแ แคแฃแแ แขแแแ แแแแแแฅแชแแแ แชแแ แแแ แแแกแขแ แแฅแขแฃแ แกแแแแแแกแ แแแแกแแ แแ แแแแกแขแ แฃแฅแขแแ แแแ แแแกแแแ แแแแแแแแ แแแแแ แแฆแแแแ แแ แแฅแแ แกแแ แแแแแแแชแแแกแ แแ แแแกแแ แแแแแแแชแแแก แแแแแแแแ.
แขแแแแแแก แแแแแแแแแ แขแแแแก แแแแจแ
แซแแแแ แ แแแ แแคแ แแแ แแแ, แแ แ? แแ แ, แแก แแ แแ แแก แฐแแแแแแ แ (แแฃแแชแ แแ แแแ แฉแแแแแ แแแแแแแฃแ แ แแแแแ), แแ แแแแ แแแกแขแฃแแแขแ TL-แจแ. แแแกแแ แแแงแ แแแแแแ แแแแ แฃแแแ แแแแแแฌแแแแก แงแแแแแแแแ แ แจแแแแฌแแแแ. แแแ แแ, แแแ แแ, แแ แ แแก, แแ แแแแ แแแแฎแแ แชแแแแแแ, แแแแ แแ แแแ แแแแแช แฃแแแ แแฆแฌแแ แแก แแกแแแ. แแ แ แ แจแแกแแซแแแแแแแแแ แแแแแแ?
แแแ แแแ แ แแแจแ, แจแแแฆแฃแแแแแ. แแฅ แฉแแแ แแฎแแแแแ แคแแแแแแแก แแขแแแ แแแแก แแแแฃแแแแขแแชแแแจแ:
แจแแแแแ แคแแแแแก แแ แแแแแ แจแแแแแ แกแ แแงแแคแ แแแฌแแแแแแ. แงแแแแ แแแฌแแแก แฃแแแ แฐแฅแแแแแก แแแแแ แแแแ ( แแแฌแแแ_แแแแ ) แแ แฃแแแ แแแแแงแแคแแแแแแแก แจแแแแแแ แแแ แแแแแ:
part_size % 1024 = 0
(แแงแแคแ 1 แแ-แแ)524288 % part_size = 0
(512 แแ แแแแแแ แแ แแงแแคแ แแแฌแแแแก แแแแแแ)แแแแ แแแฌแแแ แแ แฃแแแ แแแแแงแแคแแแแแแแก แแ แแแ แแแแแก, แแฃ แแแกแ แแแแ แแแแแแแแ part_size-แแ.
แแแแแแฃแ แแแฌแแแก แฃแแแ แฐแฅแแแแแก แ แแแแแ แแแแแ แ, แคแแแแแก_แแแฌแแแ, แฆแแ แแแฃแแแแแ 0-แแแ 2,999-แแแ.
แคแแแแแก แแแงแแคแแก แจแแแแแ แแฅแแแ แฃแแแ แแแ แฉแแแ แกแแ แแแ แแ แแแกแ แจแแแแฎแแแก แแแแแแ. แแแแแงแแแแแ
upload.saveBigFilePart แแ แจแแแแฎแแแแแจแ, แแฃ แคแแแแแก แกแ แฃแแ แแแแ 10 แแ-แแ แแแขแแ แแupload.saveFilePart แแแขแแ แ แคแแแแแแแกแแแแก.
[โฆ] แจแแแซแแแแ แแแแ แฃแแแแก แแแแแชแแแแ แจแแงแแแแแก แแ แ-แแ แแ แจแแแแแแ แจแแชแแแแ:
- FILE_PARTS_INVALID - แแแฌแแแแแแก แแ แแกแฌแแ แ แ แแแแแแแแ. แฆแแ แแแฃแแแแ แแ แแ แแก แจแแ แแก
1..3000
แแ แแก แแฃ แแ แ แ แแแแแแแ แแแแแแแ แกแฅแแแแจแ? แแ แแก แแฃ แแ แ แแก แ แแฆแแชแแแแ แแ แแแแแฎแแขแฃแแ TL-แแ? แแ แ. แแแแ แแ แแแแแขแแแ, แแแซแแแแแแฃแแแ แขแฃแ แแ แแแกแแแแแแช แแ แจแแซแแ แแแชแแแฃแแ แขแแแแแแก แแฆแฌแแ แ แแแแแแแแแแแ. แแ แแแก แจแแแซแแ แแแแแ แแ แแ แ แแแแก แแแแแแแแ, แแฎแแ แฃแคแ แ แชแแแแแแ แ แแแแ แช enum
- แขแแแ, แ แแแแแแช แจแแแแแแ แแแแจแแแแแแแแแแก แคแแฅแกแแ แแแฃแแ (แแชแแ แ) แ แแแแแแแแแก แฉแแแแแแแแกแแแ. แแกแแ แแแแแแ, แ แแแแ แแชแแ C - แ แแชแฎแแแแ, แแแแแแแแแกแฌแแแแ, แแฅแแแแ แแฎแแแแ แขแแแแแแ แแแกแแฃแแ แแ. แ แแชแฎแแแแ. แแแแ แแ แแกแแแ แแ แแก แแแกแแแแแ, แกแขแ แแฅแแแแแ... แแแแแแแแแ, แแแ แแ แแฅแแแแ แแแแก แแฆแฌแแ แ, แ แแ แแก แกแขแ แแฅแแแ แแฎแแแแ แขแแแแคแแแแก แแแแแ แก แจแแแซแแแแ แจแแแชแแแแแก, แแ แ?
แแ แชแแ แแ แแก แแ แแ แแก TL-แจแ. แแแแ แแ แแ แแก, แแแแแแแแแ, JSON แกแฅแแแแจแ. แแ แแฃ แแแแแแก แจแแฃแซแแแ แแแแแ แแขแแกแขแแก 512 KB-แแก แแแงแแคแแก แจแแกแแฎแแ, แ แแ แแก แฏแแ แแแแแ แฃแแแ แจแแแแฌแแแแก แแแแจแ, แแแจแแ แแแ แฌแแฃแแแแ, แ แแ แแแแแแขแ แฃแแ แแแแ แแแ แจแแซแแ แแแแแแแแแ แแแแแ แ แแแแแแแแแแก แแแ แแ 1..3000
(แแ แจแแกแแแแแแกแ แจแแชแแแแ แแแ แฌแแ แแแแจแแ) แจแแกแแซแแแแแแ แแฅแแแแแแ, แแ แ? ..
แกแฎแแแแ แจแแ แแก, แจแแชแแแแแแแกแ แแ แแแแ แฃแแแแแก แแแแจแแแแแแแแแแก แจแแกแแฎแแ. แแแแแ แแฃแแแแแแแแ แแแแแแแกแแช แแ, แแแแช TL-แแ แแฃแจแแแแแ - แแก แแแจแแแแ แแ แแแแแแฉแแแ แแแแแแฃแแ แคแฃแแฅแชแแ TL-แจแ แ แแแแฃแ แแ แจแแฃแซแแแ แแแแแ แฃแแแก แแ แ แแฎแแแแ แแฆแฌแแ แแแ แแแแ แฃแแแแแก แขแแแ, แแ แแแแ แจแแชแแแแ. แแแแ แแ แแก แแ แแ แแก แแแแแ แแชแฎแฃแแ แแแแ TL-แแก แกแแจแฃแแแแแแ. แ แ แแฅแแ แฃแแแ, แแแกแแแแแแ แแ แแแคแแแ แแ แแ แแก แแฃแชแแแแแแแ แแ แแฅแขแแแแจแ (แแฃแแชแ, แกแแแแแแแแแแจแ, RPC แจแแแซแแแแ แแแแแแแแก แกแฎแแแแแกแฎแแ แแแแ, แฉแแแ แแแแก แแแแฃแแ แฃแแแแแแ) - แแแแ แแ แ แแช แจแแแฎแแแ แแแชแแฃแ แ แกแแแงแแ แแแแ แแแกแขแ แแฅแขแฃแแ แขแแแแแแก แแแแแแแขแแแแก แชแแแแแแแก แกแแกแฃแคแแแแแก? .. แแแฆแ แแฃแฅแกแแ แ - แแกแ แแแแฎแแแแ.
แแ แแแแแก, แ แแช แจแแแฎแแแ แแแแฎแแแแแแแก? แแกแ, แแฅ, แแแแแแแ, แแแแแ แแฆแฌแแ แ แแฅแแก แแก แกแฌแแ แแ แกแฅแแแแจแ (แแกแแ, แแก แแ แแก JSON แกแฅแแแแจแ), แแแแ แแ แแฃ แแก แฃแแแ แแแซแแแฃแแแ, แแแจแแ แ แ แจแแแซแแแแ แแแฅแแแก แแ แแฅแขแแแฃแ แแฎแแ แแแ - แงแแแแ แจแแแแฎแแแแแจแ, แแแแแฎแแแแแแแก แแ แแก แแแแกแฎแแแแแแแแแก แงแฃแ แแแ แแแแแแฃแ แแ? แแแแแ แแแฎแแ แแฅ
-channelFull#76af5481 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int = ChatFull;
+channelFull#1c87a71a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_view_stats:flags.12?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int = ChatFull;
แแ
-message#44f9b43d flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long = Message;
+message#44f9b43d flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long = Message;
แแแฆแแชแแก แแแกแฌแแแก, แแแแ แแ GitHub, แแแแแแแแแ, แฃแแ แก แแแแแแก แฎแแแก แฃแกแแแแก แชแแแแแแแแแก แแกแแ แแ แซแแ แฎแแแแแจแ. แแแแแจแ "แแแแแ 10 แแแแกแฎแแแแแแ" แแ แ แแกแแช แขแแแแ แแแจแแแแ แฎแแแแแก แแ แแก แแก, แ แแ แแแกแแฌแงแแกแ แแ แแแกแแกแ แฃแแ แแ แแแ แแแแแแแแจแ แแ แแ แแ แแแแแแ, แแฅแแแ แฃแแแ แฌแแแแแแฎแแ แกแแแฆแแช แจแฃแแจแ ... แฉแแแ แแแ แแ, แแก แแ แแ แแก แแฎแแแแ แแแแ แแฃแแแ, แแแแ แแ แแฎแแแแ แแแแฃแแแฃแ แแ แแแแแแงแฃแ แแแ แแแแซแฃแ แ แแ แแแฃแฌแแกแ แแแแแแแ.
แกแฎแแแแ แจแแ แแก, แแแแ แแแก แกแแฌแแแแแแก แจแแกแแฎแแ. แ แแขแแ แแ แแก แกแแญแแ แ แแแขแแก แแแแแแ? แแ แแขแงแแแ แกแฃแแ แชแฃแแ แขแแแแแแก แแแแ แแแก แแแแแกแแแ แแกแแ? แแฎแกแแ แฉแแแก แกแฅแแแแก แแแ แแแแแ แแแ แกแแแแจแ. แแแแแแแ, แแแแฎ, แแกแ แแงแ, แงแแแแแ แแแชแแแแกแแแแก แแฎแแแ แขแแแ แจแแแฅแแแ. แแก แ แฃแแแแแแขแแแ แฏแแ แแแแแ แแ แกแแแแแก แแ แคแแ แแแ, แแแแแแแแแ:
storage.fileUnknown#aa963b05 = storage.FileType;
storage.filePartial#40bc6f52 = storage.FileType;
storage.fileJpeg#7efe0e = storage.FileType;
storage.fileGif#cae1aadf = storage.FileType;
storage.filePng#a4f63c0 = storage.FileType;
storage.filePdf#ae1e508d = storage.FileType;
storage.fileMp3#528a0677 = storage.FileType;
storage.fileMov#4b09ebbc = storage.FileType;
storage.fileMp4#b3cea0e4 = storage.FileType;
storage.fileWebp#1081464c = storage.FileType;
แแแแ แแ แแฎแแ แฌแแ แแแแแแแแแ, แแฃ แแฅแแแ แแแฅแแ 5 แแ แฉแแแแแ แแแแ แแฅแแแแก แกแขแ แฃแฅแขแฃแ แแจแ, แแแจแแ แแแแญแแ แแแแแ 32 แขแแแ แงแแแแ แจแแกแแซแแ แแแ แแแแขแแกแแแแก. แแแแแแแแขแแ แแฃแแ แแคแแแฅแแแ. แแกแ แ แแ, TL แแแแ แแแก แแ แแกแขแแแฃแ แ แกแแฌแแแแแ แแแแแ แแ แแฎแแ แจแแแฏแแฎแ แกแแ แแแแแแแชแแแก แแแแชแ แ แ แแแแแแแก แแฃแฏแแก แขแ แแแก.
แแแ แแ แแแแกแ, แแแแแแแแแ แแก แแแญแแแ แแแแแ แแ แฆแแแแแ แกแแแฃแแแ แแแ แแคแแก. แแแแแแแแแ, MTProto-แจแ (แจแแแแแแ แแแแ) แแแกแฃแฎแ แจแแแซแแแแ แจแแแฃแแจแแก Gzip-แแ, แงแแแแแคแแ แ แแแแแแ แฃแแแ - แแแ แแ แคแแแแแแกแ แแ แกแฅแแแแก แแแ แฆแแแแแกแ. แแ แแฎแแ แแ แแ แแแแแฆแ แแแแแ RpcResult, แแ แแแแ แแแกแ แจแแแแแ แกแ. แแแ, แ แแขแแ แแแแแแ แแแแก? .. แงแแแแ แฏแแแจแ แฃแแแ แแแแญแ แ, แ แแ แจแแแฃแแจแแ แงแแแแแแ แแฃแจแแแแแแก.
แแ แแแแแ แแ แแ แแแแแแแแ, แฉแแแ แแ แแฎแแ แแฆแแแแแฉแแแแ แจแแชแแแแ - แแแแแแแแแแ InputPeerUser
แแแชแแแแ InputUser
. แฒแ แแแ แแฅแแ. แแแแ แแ แแแฃแจแแแ! แแแฃ แกแแ แแแ แก แแ แแแแขแแ แแกแแแแ แขแแแ. แ แแแแ แจแแแซแแแแ แแก? แแแกแฃแฎแ, แแแแแ, แแแฐแงแแแแ แแแแแก แคแ แแแแแแขแแแก telegram-cli-แแแ:
if (tgl_get_peer_type (E->id) != TGL_PEER_CHANNEL || (C && (C->flags & TGLCHF_MEGAGROUP))) {
out_int (CODE_messages_get_history);
out_peer_id (TLS, E->id);
} else {
out_int (CODE_channels_get_important_history);
out_int (CODE_input_channel);
out_int (tgl_get_peer_id (E->id));
out_long (E->id.access_hash);
}
out_int (E->max_id);
out_int (E->offset);
out_int (E->limit);
out_int (0);
out_int (0);
แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แแฅ แฎแแแแ แกแแ แแแแแแแชแแ แฒฎแฒแฒแฒแฒ, แแ แแ แแก แแแแแ แแ แแแฃแแ แแแแ! แแฅแแแ แกแแ แแแ แแช แแแแแแแแฃแ แแ แแงแแก แแแแแ แแแแ?.. แแ แแแชแแแจแ แแ แแฎแแ แแแแแแแแแก แจแแแแฎแแแแแจแ แแแฃแจแแแแแก, แแแแ แแ แแแแแฎแแแแแแแ แ แแแแ แจแแแซแแแแ แแแแแแแแแแแ? แแแแกแแแแก แแ แแงแ แแก แกแฅแแแ? แแ แจแแแแแ แแแแแแแแแแ แ แจแแแแแ แแแแฎแแแแ.
แแแ แกแแแแ. แคแแแแแ
แ แแขแแ แฐแฅแแแ แกแฅแแแแก แแแ แกแแแแก แคแแแแแ, แจแแแซแแแแ แแแแแแชแแแ แแฎแแแแ แแแแแฅแแแงแแแแฃแแ แกแฅแแแแแแก แแกแขแแ แแแก แกแแคแฃแซแแแแแ. แ แแแแ แช แฉแแแก, แแแแแแแ แแแขแแ แแแก แแฉแแแแแแแแแ, แ แแ แซแแ แแแแแ แ แแ แจแแแซแแแแ แแแแแแแแก แฃแชแแแแแ แกแฅแแแแ แแ แแฎแแแแ แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ แแแฃแแแแแ แแแแแ แแขแฃแ แแแแฎแแแแแแแ, แ แแ แแกแแแ แแแแแแแ แกแฎแแ แแแ แกแแแ. แแ แแแชแแแจแ, แแแ แแ แแแแแช แแ - แแ แแฎแแแ, แ แแแแ แช แแฅแแ, "แแ แแแก", แคแแแก แซแแแแแ. แแแแ แแ แแแแฎแแ, แ แแแแ แแแแแแแ แแก. แแแ แแแแแ, แแแแแแแแแ แงแฃแ แแแ แจแแฃแซแแแแแแ แแงแ - แกแแกแแชแแแแ, แแแแ แแ แกแแแแแแกแ แคแแแแก แกแฅแแแ แฃแแ แแแแ แแ แแ แกแแแแแก. แคแแแแแ แแแแฌแงแ 2-แแ. แแแแฃแแแแขแแชแแ แแแแฃแแแแแ แกแแแชแแแแฃแ แ TL แแแฎแแกแแแแแแแแก แจแแกแแฎแแ:
แแฃ แแแแแแขแ แแฎแแ แก แฃแญแแ แก Layer 2-แก, แแแจแแ แฃแแแ แแฅแแแก แแแแแงแแแแแฃแแ แจแแแแแแ แแแแกแขแ แฃแฅแขแแ แ:
invokeWithLayer2#289dd1f6 {X:Type} query:!X = X;
แแ แแฅแขแแแแจแ, แแก แแแจแแแแก, แ แแ แงแแแแแ API แแแแแซแแฎแแแแก แฌแแ แแ แแก int แแแแจแแแแแแแ
0x289dd1f6
แแแแแแแก แแแแแ แแแแ แฃแแแ แแแแแแขแแก.
แแแ แแแ แแฆแแ แก. แแแแ แแ แ แ แแแฎแแ แจแแแแแ? แแแ แ แแแแแแ
invokeWithLayer3#b7475268 query:!X = X;
แแแจ แ แ แแ แแก แจแแแแแแ? แ แแแแ แช แแแแแแ แแแกแแฎแแแแ แแ
invokeWithLayer4#dea0d430 query:!X = X;
แกแแกแแชแแแ? แแ แ, แฏแแ แแแ แแ แกแแชแแแ, แแแคแแฅแ แแ แ แ แแแแแแฃแแ แกแฎแแ แคแแแแก แแแแฎแแแแ แฃแแแ แแงแแก แจแแคแฃแแฃแแ แแกแแ แกแแแชแแแแฃแ แขแแแจแ - แแฃ แแกแแแ แงแแแแ แแแแกแฎแแแแแแฃแแ แแแฅแแ, แกแฎแแแแแแ แแ แ แแแแ แแแแแแกแฎแแแแแ แแกแแแ? แแ แฌแแ แกแฃแ แ แแฆแแช 4 แแแแขแแก แแแแแขแแแ แกแแแแแแ แแคแแฅแขแฃแ แ แแแแแแแ. แฒแกแ
invokeWithLayer5#417a57ae query:!X = X;
แแแแ แแ แแจแแแ แแ, แ แแ แชแแขแ แฎแแแก แจแแแแแ แแก แ แแฆแแช แแแฅแแแแแแ แแแฎแแแแ. แแ แแแแแกแแแแแ แแแแแแ:
แแแแแฎแแแแ: แแแฌแงแแแฃแแ Layer 9, แแแแฎแแแ แ แแแแแแแแแ
invokeWithLayerN
แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแ แแแinitConnection
แฐแแ! 9 แแแ แกแแแก แจแแแแแ, แกแแแแแแแ แแแแแแแ แแแแแ, แ แแช แแแแแแแ แแแขแแ แแแข แแ แแขแแแแแแแจแ แฏแแ แแแแแ 80-แแแ แฌแแแแจแ - แแแ แกแแแก แแแแแแแ แแแแแ แแ แแฎแแ แแแแจแแ แแก แแแกแแฌแงแแกแจแ!
แแแ แ แ แ แแ แแก แจแแแแแแ?..
invokeWithLayer10#39620c41 query:!X = X;
...
invokeWithLayer18#1c900537 query:!X = X;
แแฎแแ แแ แจแแแแซแแแ แแชแแแ. แแฎแแแแ แแแแแ 9 แคแแแแก แจแแแแแ, แกแแแแแแแ แแแแแแขแ แฃแแแแแ แกแแแฃแ แ แแแแกแขแ แฃแฅแขแแ แ แแแ แกแแแก แแแแ แแ, แ แแแแแกแแช แแแแจแแ แแก แแแกแแฌแงแแกแจแ แแฎแแแแ แแ แแฎแแ แฃแแแ แแแแแซแแฎแแแ แแ แคแแแแแจแ แแแแจแแแแแแแ แแแแฅแแก แแแฅแ แ, แแฎแแ แแก แแฎแแแแ แแแ แแแแแ แแแ แกแแแ, แแแ. แงแแแแแแ แกแฎแแแแแ. แแ แแแแแแ แแแแแแ แแแฃแแแ.
แแ แ?..
แแแกแแแ, [16.07.18/14/01 XNUMX:XNUMX] แแแ แแกแแแแก แแแคแแฅแ แ:
แขแแแแกแแ แแแ แ แแแแแแแแก แแแแแแแแแก แแแแฎแแแแแก แแแ แแจแ. แแแแฎแแแแแแ แฃแแแ แจแแคแฃแแฃแแ แแงแแก InvokeWithLayer-แจแ. แกแแ แแแ แ แแ แแฎแแแแก แแแแแฎแแแแแแก, แแ แแ แกแแแแแก แแแกแฃแฎแแแแกแ แแ แแแแแฎแแแแแแแก แจแแคแฃแแแแก แกแขแ แฃแฅแขแฃแ แ.แแแแ. แแแแแแขแก แแ แจแแฃแซแแแ แแแแกแแแฆแแ แแก แแก แคแแแ, แ แแแแแจแแช แแแก แกแฃแ แก แแแแแฎแแแแแแ
แแแแแ แแแแฉแแ แแแ, [16.07.18/14/02 XNUMX:XNUMX PM] InvokeWithLayer แแ แแแชแแแจแ แงแแแแ แฏแแแ แแ แแ แแก?
แแแกแแแ, [16.07.18/14/02 XNUMX:XNUMX] แแก แแ แแแแแ แแ แแแแ
แแแแแ แแแแฉแแ แแแ, [16.07.18/14/02 XNUMX:XNUMX] แ แแช แแ แกแแแแแแ แฃแแแ แแแจแแแแแแก แกแแกแแแก แแแกแแฌแงแแกแจแ แคแแแแก.
แกแฎแแแแ แจแแ แแก, แแฅแแแแ แแแแแแแแแแ แแแแก, แ แแ แแแแแแขแแก แแแฅแแแแแแแ แแ แแ แแก แแแแแแแแกแฌแแแแแฃแแ
แแแแแฎแแแแแแ, แ.แ. แขแแแ Updates
แกแฅแแแแจแ, แแก แแ แแก แแก, แ แแกแแช แกแแ แแแ แ แฃแแแแแแแก แแแแแแขแก แแ แ API แแแแฎแแแแแก แกแแแแกแฃแฎแแ, แแ แแแแ แแแแแฃแแแแแแแแ, แ แแแแกแแช แฎแแแแ แแแแแแแ. แแก แแแแแแแฅแกแฃแ แ แแแแแ, แ แแแแแแแช แแแแฎแแแฃแแ แแฅแแแแ แกแฎแแ แแแกแขแจแ, แแแแ แแ แแฎแแ แแแแจแแแแแแแแแแ แแแชแแแแ, แ แแ แกแแ แแแ แ แแแ แแแแแก แแแแแฎแแแแแแก แแแจแแแแช แแ, แ แแแแกแแช แแแแแแขแ แแคแแแแแจแแ.
แแแ แแแแ, แจแแคแฃแแแแแ แฃแแ แแก แแฅแแแกแแก แแแแแแฃแ แแแแแขแ, แ แแแ แแแฃแแแแแก แแแกแ แแแ แกแแ, แแแแขแแ แแแแแแฃแ แแ แฌแแ แแแแฅแแแแแ แจแแแแแแ แจแแกแแซแแ แแ แแแแแแแแ:
- แกแแ แแแ แ แฃแแแแแแแก แแแแแฎแแแแแแก แแแแแแขแก แแแแแ, แกแแแแ แแแแแแขแ แแ แแขแงแแแก, แ แแแแ แแแ แกแแแก แฃแญแแ แก แแฎแแ แก
- แ แ แฃแแแ แแแแแแแแก แแแแแแขแแก แแแแแฎแแแแแก แจแแแแแ?
- แแแแช แแแ แแแขแแแแแ แแ แกแแ แแแ แแก แแแ แ แคแแแแก แแแแแ แแ แแ แจแแแชแแแแแ แแ แแชแแกแจแ?
แ แแแแ แคแแฅแ แแแ, แแก แแ แแก แฌแแแแแ แแแแ แแฃแแ แแแ แแแแแแ แแ แแ แแฅแขแแแแจแ แแก แแ แจแแแซแแแแ แแแฎแแแก, แ แแแแแ แกแแ แแแ แ แกแฌแแ แแ แแ แแก แแแฌแแ แแแ (แงแแแแ แจแแแแฎแแแแแจแ, แแแ แแแ แแ แแก แแแแแชแแแแ)? แฐแ! แแ แแฅแแก แแแแจแแแแแแแ แ แแแแ !
แแฃแกแขแแ แแแแก แจแแแฎแแแแ แแแแแกแขแแจแ. 14 แแแแแกแขแแก แแแฉแแแ แจแแขแงแแแแแแแแแ, แ แแ แ แแฆแแช แแฎแแแแแแแ Telegram แกแแ แแแ แแแแ ... แแ แจแแแแแ แแฃแ แแแแแแจแ:
2019-08-15 09:28:35.880640 MSK warn main: ANON:87: unknown object type: 0x80d182d1 at TL/Object.pm line 213.
2019-08-15 09:28:35.751899 MSK warn main: ANON:87: unknown object type: 0xb5223b0f at TL/Object.pm line 213.
แแ แจแแแแแ แ แแแแแแแแ แแแแแแแแขแ แกแขแแแแก แแแแแ (แแแ แแแ, แแแแแ แแ แแก, แฎแ แแแคแแฅแกแแ แแ). แงแแแแแแแ แแแแก แจแแแแแ, แแฃ แ แแแแ แแ แแฅแแ แแฆแแแ แแแฃแแ แแฅแแแแก TL-แจแ - แแก แแ แแแแแแ แฎแแแแแฌแแ แแแแ, แจแแแแแแ แแแแแแจแ แงแแแแ แแแแแก, แแแแแแแ แแแ แจแแฃแซแแแแแแ แแแฎแแแแ. แ แ แฃแแแ แแแแแแแแก แแกแแ แกแแขแฃแแชแแแจแ?
แแกแ, แแแ แแแแ, แ แแช แแแแแแก แแแแแ แแแแแก, แแ แแก แแแแแจแแ แแ แฎแแแแฎแแ แชแแ. แแ แฃแจแแแแ. แฉแแแ แแแแแฃแแแแ CRC32 - แแก แแฆแแแฉแแแ แแแแแฅแขแแแ 73-แ แกแฅแแแแแแ, แแฃแแชแ แฉแแแ แแแแฃแจแแแแ แกแฅแแแ 82-แแ. แฉแแแ แงแฃแ แแแฆแแแแ แแแแแแแแแ แแแ แแฃแ แแแแแแก - แแ แแก แแแแแขแแคแแแแขแแ แแแ แแ แ แแแแกแฎแแแแแแฃแแ แกแฅแแแแแแ!
แแฅแแแ แแ แแแแแแ แแฎแแแแ แฉแแแแก แแ แแแคแแชแแแแฃแ แแแแแแขแจแแ? แแ แ, แฉแแแ แแแงแแแแแ Telegram Desktop 1.2.17-แก (แแแ แกแแ แแแฌแแแแแฃแแ Linux-แแก แแแกแขแ แแแฃแชแแแ), แแก แฌแแ แก แแแแแแแแแแกแแก แแฃแ แแแแจแ: MTP แแแฃแแแแแแแ แขแแแแก id #b5223b0f แฌแแแแแฎแฃแแ MTPMessageMediaโฆ
Google-แแ แแฉแแแแ, แ แแ แแกแแแแกแ แแ แแแแแแ แฃแแแ แจแแแฅแแแ แแ แ-แแ แ แแ แแแคแแชแแแแฃแ แแแแแแขแก, แแแแ แแ แจแแแแแ แแแ แกแแแก แแแแ แแแ แแ, แจแแกแแแแแแกแแ, แแแ แแฃแแแแ แแแแกแฎแแแแแแฃแแ แแงแ ...
แแกแ แ แแ, แ แ แฃแแแ แแแแแแแแก? แแ แแ แแแกแแแ แแแแจแแ แแแ: แแแ แกแชแแแ แกแฅแแแแก แแแแแฎแแแแ 91-แแแ, แแ แแแแแแฌแงแแแขแ แแแแแแแแ แ แแแแแแแแ แแฆแ แแ แแชแแแ 73-แแแ. แแ แแแ แแแแแแ แแฃแจแแแแแ, แแแแ แแ แ แแแแแ แแกแแแ แแแแแ แแฃแแแ, แแแ แแแแแแ, แ แแแแแแ แแแ แกแแ แแญแแ แแแแแ แแแแแ แแแแแฎแขแแแ. แแ แแแแแ, แแ แช แ แแแแแ แฎแแแก แแแแแฌแแแ แแแแแแ.
แแแแแแแแแแแ, แแ แแแแแฎแแ แฎแ แกแแขแฃแแชแแแก แ แแแ แแแฃแชแแ แแแ: แฉแแแ แแแฌแงแแแ แแแแแแขแก, แแแแแ แแแ แแแ, แแแแแแแฌแงแแแ แกแฅแแแ แกแฎแแ แคแแแแแ, แแแแแขแแแ แแแ, แแแแแ แแแแแญแแ แแ แแ แแแแแแ, แแแแแ แฃแแแแ แฌแแแแแ - แแฐ, แกแฅแแแแก แแแแแ แแแ แแ แแ แแก แแ แแแแแแขแแก แแแแแขแแแ แแแ แ แแแแแแแแ แฌแฃแแ แแแแแฎแแแ แแแแ. แแฅแแแ แแแแฆแแแ แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แแแแก แแแแแแก แกแฎแแแแแกแฎแแ แคแแแแแแแแ.
แแฎแกแแ? แ แแแแ แช แกแฎแแแแแกแฎแแ แแ แแแแ แแแแแ แ แกแแแแขแแแแแแแแ แแแฎแแแแแแ, แกแแ แแแ แ แจแแแแแแ แกแฎแแแแแกแฎแแ แขแแแแก แแ แแชแแกแแแแกแแแ แกแฎแแแแแกแฎแแ แแแแฅแแแแแแ. แแแแ แแแแแแแแแ, แแ แ-แแ แแแ แกแแ แแแ แแ, แ แแแแแแช แแแกแฃแฎแแกแแแแแแแแ โแแฃแคแแ แแ แแแแแโ, แ แแแจแ แแงแแแแแก แแแแก, แ แแช แฃแคแ แ แแแฆแแแแ แแแกแชแ แแ แแแ แแแกแชแแก แแก แกแฅแแแแจแ, แ แแแแแแช แแงแ แแแแแ แแ แแแแก แแ แแก. แแ แกแแแแ แแก แ แแแ "แแแแแแแ" แแงแ, แแแ แแคแแ แก แแแแแแแแแแ.
แแฃ... แแแแ แแ แแก แกแแจแแแแแ แงแแแแ แฏแแแแ?!.. แแ แ, แแแแฃแ แแแแแแแ แคแแฅแ แแแแ, แแคแแชแแแแฃแ แ แแแแแแขแแแแก แแแแก แแแแแแฎแแแแ. Android-แแก แแแ แกแแแจแ แฉแแแ แแแ แแแแฃแแแแ TL แแแ แกแแ แก, แแแแ แแ แแแแฃแแแแ แแแ แคแแแแก (github แฃแแ แก แแแแแแก แแแก แจแแฆแแแแแแ) (แแ)แกแแ แแแแแแแชแแแ. แแฅ แแ แแก แแแแแก แคแ แแแแแแขแแแ:
public static class TL_message_layer68 extends TL_message {
public static int constructor = 0xc09be45f;
//...
//ะตัะต ะฟะฐัะบะฐ ะฟะพะดะพะฑะฝัั
//...
public static class TL_message_layer47 extends TL_message {
public static int constructor = 0xc992e15c;
public static Message TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
Message result = null;
switch (constructor) {
case 0x1d86f70e:
result = new TL_messageService_old2();
break;
case 0xa7ab1991:
result = new TL_message_old3();
break;
case 0xc3060325:
result = new TL_message_old4();
break;
case 0x555555fa:
result = new TL_message_secret();
break;
case 0x555555f9:
result = new TL_message_secret_layer72();
break;
case 0x90dddc11:
result = new TL_message_layer72();
break;
case 0xc09be45f:
result = new TL_message_layer68();
break;
case 0xc992e15c:
result = new TL_message_layer47();
break;
case 0x5ba66c13:
result = new TL_message_old7();
break;
case 0xc06b9607:
result = new TL_messageService_layer48();
break;
case 0x83e5de54:
result = new TL_messageEmpty();
break;
case 0x2bebfa86:
result = new TL_message_old6();
break;
case 0x44f9b43d:
result = new TL_message_layer104();
break;
case 0x1c9b1027:
result = new TL_message_layer104_2();
break;
case 0xa367e716:
result = new TL_messageForwarded_old2(); //custom
break;
case 0x5f46804:
result = new TL_messageForwarded_old(); //custom
break;
case 0x567699b3:
result = new TL_message_old2(); //custom
break;
case 0x9f8d60bb:
result = new TL_messageService_old(); //custom
break;
case 0x22eb6aba:
result = new TL_message_old(); //custom
break;
case 0x555555F8:
result = new TL_message_secret_old(); //custom
break;
case 0x9789dac4:
result = new TL_message_layer104_3();
break;
แแ
boolean fixCaption = !TextUtils.isEmpty(message) &&
(media instanceof TLRPC.TL_messageMediaPhoto_old ||
media instanceof TLRPC.TL_messageMediaPhoto_layer68 ||
media instanceof TLRPC.TL_messageMediaPhoto_layer74 ||
media instanceof TLRPC.TL_messageMediaDocument_old ||
media instanceof TLRPC.TL_messageMediaDocument_layer68 ||
media instanceof TLRPC.TL_messageMediaDocument_layer74)
&& message.startsWith("-1");
แฐแ... แแแแฃแ แแ แแแแแแงแฃแ แแแ. แแแแ แแ, แแแแแ, แแก แแ แแก แแแแแ แแ แแแฃแแ แแแแ, แแแจแแ แแแ แแ? .. แแแแ แแ แแก แแแแแแแแแ แแฎแแ แก แฃแญแแ แก แงแแแแ แแแ แกแแแก! แแแ แแแแแ, แแแฃแแแแแ แแ, แ แแขแแ แแ แแก แงแแแแแคแแ แ แแ แ แแ แแแแจแ แจแแ แแฃแแ แแ แกแแแแฃแแแ แฉแแแแแ แแ แงแแแแแแแแ แ _old7
แ แแขแแแฆแแช แแ แแแแก แแแแฅแแแแแแก แแแแแแก... แแฃแแชแ, แงแแแแแแ แแแขแแ แแแแแแแแ
TL_message_layer104
TL_message_layer104_2
TL_message_layer104_3
แแแญแแแ, แแ แแ แคแแแแแแช แแแ แแแแแฌแงแแแขแแ?! แแแ แแ, แแแ แแ, "แแ แ", แแแฅแแแ, แแแแแฃแจแแแก แจแแชแแแแแ, แแแ แแ, แแก แฎแแแแ, แแแแ แแ แกแแแ? .. แแแจแแแแ แแกแแ แแแแแ แกแแแแแแกแแแแ? แแก แ แ แแแ แแแแ แแคแแแ, แฃแแแชแ แแแแ? ..
แกแฎแแแแ แจแแ แแก, แแกแแแแกแ แ แแ แฎแแแแ Telegram Desktop-แแก แฌแงแแ แแแแจแ - แแฃ แแกแแ, แแ แกแฅแแแแก แแแแแแแ แ แแแแแแแแ แฉแแแแแ แแ แชแแแแก แแแก แคแแแแก แแแแแ แก, แแแแ แแ แแกแฌแแ แแแก แ แแฆแแชแแก. แแ แแแ แแแแแจแ, แ แแแแกแแช แแ แแ แกแแแแแก แกแฅแแแแก แแแแแชแแแแแแก แแคแแชแแแแฃแ แ แฌแงแแ แ, แกแแแแแ แจแแแแซแแแ แแแกแ แแแฆแแแ, แแแ แแ แแแแแแขแแก แแคแแชแแแแฃแ แ แฌแงแแ แแแแแกแ? แแ แแฅแแแ แแฅแแแแ แแฆแแแ, แแแ แแฅแแแแแ แแแ แฌแแฃแแแแฃแแ, แ แแ แกแฅแแแ แแแแแแแแ แกแฌแแ แแ, แกแแแแ แแ แจแแแแแฌแแแแ แงแแแแ แแแแแแก.
แ แแแแ แจแแแซแแแแ แแแแก แขแแกแขแแ แแแ? แแแแแแแแแแ, แ แแ แแ แแแฃแแแก, แคแฃแแฅแชแแฃแ แ แแ แกแฎแแ แขแแกแขแแแแก แแแงแแแ แฃแแแแ แแแแแแขแแ แแแจแ แแแแแแแ แแแแ.
แแแ แแ, แแแแแ แแแแแแฎแแแแ แแแแแก แกแฎแแ แแแฌแแแก:
public static class TL_folders_deleteFolder extends TLObject {
public static int constructor = 0x1c295881;
public int folder_id;
public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) {
return Updates.TLdeserialize(stream, constructor, exception);
}
public void serializeToStream(AbstractSerializedData stream) {
stream.writeInt32(constructor);
stream.writeInt32(folder_id);
}
}
//manually created
//RichText start
public static abstract class RichText extends TLObject {
public String url;
public long webpage_id;
public String email;
public ArrayList<RichText> texts = new ArrayList<>();
public RichText parentRichText;
public static RichText TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
RichText result = null;
switch (constructor) {
case 0x1ccb966a:
result = new TL_textPhone();
break;
case 0xc7fb5e01:
result = new TL_textSuperscript();
break;
แแก โแฎแแแแ แจแแฅแแแแแโ แแแแแแขแแ แ แแฅ แแแ แแฃแแแแก, แ แแ แแ แคแแแแแก แแฎแแแแ แแแฌแแแ แแฌแแ แแแ แฎแแแแ (แฌแแ แแแแแแแแแแแ แขแแฅแแแแฃแ แ แแแจแแแ แ?), แแแแแ แฉแแแ แแ แแแแฅแแแแ แแแแแ แแ แแแฃแแแ. แแฃแแชแ, แแแจแแ แฉแแแแแ แกแฎแแ แแแแฎแแ - แ แแ แฌแงแแ แแแแ แฎแแแแแกแแฌแแแแแแ แแ แ แแแแแแแแ (a la blobs แฅแแแจ GPL Linux kernel-แจแ), แแแแ แแ แแก แฃแแแ แแแแ แ แแแฌแแแแก แแแแแ.
แแแแ แแ แกแแแแแ แแกแแ. แแแแแ แแแแแแแแแ แแ แแขแแแแแแ, แ แแแแแก แแแแแ แแแแแ แแก แกแแ แแแแแแแชแแ แแแกแแแแก.
MT แแ แแขแ
แแกแ แ แแ แแแแฎแกแแแ
แแแแแแแแแ, "แแแกแแฏแ" (แแแกแแฏแ) แแ "แกแแกแแ" (แกแแกแแ) - แแฅ แแกแแแ แแแจแแแแก แ แแฆแแช แแแแกแฎแแแแแแฃแแก, แแแแ แ Telegram แแแแแแขแแก แฉแแแฃแแแแ แแ แแแขแแ แคแแแกแจแ. แแกแ, แงแแแแแคแแ แ แแแแแแแ แแแแแแแแจแ, แแแกแ แแแขแแ แแ แแขแแชแแ แจแแแซแแแแ OOP-แแก แแแแแกแแแ แแกแแ, แแ แฃแแ แแแแ แแฌแแแแก แกแแขแงแแแก "แแแแแขแ" - แแก แแ แแก แแแแแแ, แกแแขแ แแแกแแแ แขแ แแแแ, แแ แแ แแก แแแแแ แจแแขแงแแแแแแแแแ, แ แแแแ แช แแแขแแ แคแแแกแจแ, แแแแ แแ. แกแแแกแแฎแฃแ แแก แแแ แแแ. แแแแ แแ แกแฎแแแแ ... แแแแ แแ แแแ แแแแ แ แแ.
แกแแขแ แแแกแแแ แขแ แคแแแ
แแแ แแแแ แ แแช แแ แแก แขแ แแแกแแแ แขแ. แแแแขแงแแแแ 5 แแแ แแแแขแแ:
- TCP
- แแแแกแแแแขแ
- แแแแกแแแแขแ HTTPS-แแ
- HTTP
- HTTPS
แแแกแแแ, [15.06.18/15/04 XNUMX:XNUMX] แแ แแกแแแ แแ แแก UDP แขแ แแแกแแแ แขแ, แแแแ แแ แแก แแ แแ แแก แแแแฃแแแแขแแ แแแฃแแ
แแ TCP แกแแ แแแ แแแแขแจแ
แแแ แแแแ แแกแแแแกแแ UDP-แก TCP-แแ, แแแแแแฃแแ แแแแแขแ แจแแแชแแแก แแแแแแแ แแแแก แแแแแ แก แแ crc-แก
แ แแขแแ แแ แแก แแกแ แแขแแแแแแฃแแ แแขแแแ แแแแแแแก แแแแฎแแ?
แแแ แแ แแฎแแ แแฅ
- แจแแแแแแแแฃแแ
- แกแแจแฃแแแ
- แจแแคแฃแแฃแแ แจแฃแแแแแฃแ แ
- แกแ แฃแแ
แแแ แแ, แจแฃแแแแแฃแ แ MTProxy-แแกแแแแก แแแแแขแแแฃแแ แแงแ, แแก แแแแแแแแแแแ แแแแแแขแ แชแแแแแแ แแแแแแแแแแก แแแแ. แแแแ แแ แ แแขแแ แแแแแ แแ แ โโแแแ แกแแ (แกแฃแ แกแแแ), แ แแชแ แจแแแซแแแแ แแแแก แแแแแแแแ? แแแฎแแแ แแ แกแแแแแแ แแแแกแฎแแแแแแแ แแฎแแแแ แแแแ, แแฃ แ แแแแ แฃแแแ แแแแงแแแแ แแแแแแ แ MTProto-แก แกแแแ แซแ แแ แแแขแแแ แแแ, แ แแช แจแแแแแแแจแ แแฅแแแแ แแแแฎแแแฃแแ:
- แจแแแแแแแแฃแแจแ แแก แแ แแก 1 แแ 4 แแแแขแ, แแแแ แแ แแ แ 0xef แจแแแแแ body
- แจแฃแแแแแจแ แแก แแ แแก 4 แแแแขแแก แกแแแ แซแ แแ แแแแ แแ แแแ แแแแแ แแแแแแขแแ แฃแแแ แแแแแแแแแก
0xeeeeeeee
แแแฃแแแแแก, แ แแ แแก แแ แแก แจแฃแแแแแฃแ แ - แกแ แฃแแแ, แงแแแแแแ แแแ แแแขแแแฃแแ, แฅแกแแแฃแ แแก แแแแแกแแแ แแกแแ: แกแแแ แซแ, แแแแแแแ แแแแก แแแแแ แ แแ แแ แ แแก, แ แแช แซแแ แแแแแแ แแ แแก MTProto, body, CRC32. แแแแฎ, แแก แงแแแแแคแแ แ TCP-แแก แกแแจแฃแแแแแแ. แ แแแแแแช แแแแฌแแแแก แกแแแแแแ แขแ แแแกแแแ แขแก แแแแขแแแแก แกแแ แแฃแแ แแแแแแแก แกแแฎแแ, แแ แแ แแก แกแแญแแ แ แแแแแแแแแแ แแแ, แแแแกแแแฃแแ แแแแ แกแแแแแขแ แแแ แฏแแแแแ. แแแ แแ, แแฎแแ แแ แแแแแแ แแขแแกแขแแ, แ แแ TCP-แก แแฅแแก 16-แแแขแแแแ แจแแแแฌแแแแแก แฏแแแ, แแแแขแแ แฎแแแแ แแแแแชแแแแ แแแ แฃแคแชแแ. แจแแกแแแแจแแแแแ, แแแ แแ แแแแกแ, แ แแ แฉแแแ แ แแแแฃแ แแ แแแแฅแแก แแ แแแขแแแ แแคแแฃแแ แแ แแขแแแแแ แฐแแจแแแแ 16 แแแแขแแ แแแขแ, แงแแแแ แแก แจแแชแแแแ - แแ แแแแแ แฃแคแ แ แแแขแ - แแฅแแแแ แแแคแแฅแกแแ แแแฃแแ SHA แจแแฃแกแแแแแแแแแ แฃแคแ แ แแแฆแแ แแแแแแ. CRC32-แจแ แแแแแ แแแ แ แแ แแฅแแก.
แจแแแแแแ แแ ABridged, แกแแแแช แจแแกแแซแแแแแแแ แแ แแ แแแแขแแก แกแแแ แซแ, Intermediate-แก, แ แแแแแแช แแแแ แแแแแก "แแ แจแแแแฎแแแแแจแ, แแฃ แกแแญแแ แแ 4-แแแแขแ แแแแแชแแแแ แแแกแฌแแ แแแ", แ แแช แกแแแแแแ แกแแกแฃแแแแแ. แ แ, แแแแแแแ, แ แแ Telegram-แแก แแ แแแ แแแแกแขแแแ แแแแแแแ แแแฃแฎแแ แฎแแแแแแ แแ แแแ, แ แแ แแแ แแ แจแแฃแซแแแแ แแแแแชแแแแแแก แฌแแแแแฎแแ แกแแแแขแแแแ แแแกแฌแแ แแแฃแ แแฃแคแแ แจแ? แแฅแแแ แฏแแ แแแแแ แฃแแแ แแแแแแแแ แแก, แ แแแแแ แแแแฎแแแก แจแแฃแซแแแ แแแแแแ แฃแแแ แแแแแกแแแแ แ แ แแแแแแแแแก แแแแขแ (แแ แแกแแแ แแ แแก แแ แแฅแกแ แกแแ แแแ แแแ, แแแแแแแแแ ...). แแ, แแแแ แแก แแฎแ แแ, แ แแขแแ แฃแแแ แจแแแแฌแฃแฎแแ Abridged, แแฃ แฏแแ แแแแแ แแแแฅแแก แกแแแแแฃแ แ แแแแแจแแแ แแแแแแแ 16 แแแแขแแแแ - แแแแแแแ 3 แแแแขแ แแแแฏแแ ?
แแฅแแแแแ แจแแแแแญแแแแแแ, แ แแ แแแแแแแ แแฃแ แแแก แซแแแแแ แฃแงแแแ แก แแแแแกแแแแแแแแก แแแแแแแแแแ, แแแ แจแแ แแก แฅแกแแแแก แแ แแขแแแแแแแ, แ แแแแฃแ แ แแ แแฅแขแแแฃแแ แกแแญแแ แแแแแก แแแ แแจแ.
แกแฎแแ แกแแขแ แแแกแแแ แขแ แแแ แแแแขแแแ, แแแ แจแแ แแก. แแแ แแ MTProxy แแฎแแ แแ แแแแแแฎแแแแแ, แแฅแแแ แกแฎแแ แแแกแขแจแ แแฃ แแฅแแแแ แแแแฎแแแแ. แฉแแแ แแฎแแแแ แแฎแแ แแแแแฎแกแแแแแ แกแฌแแ แแ แแ MTProxy-แแก แจแแกแแฎแแ, แ แแ 2018 แฌแแแก แแแกแ แแแแแจแแแแแแแ แแแแแแ, แแ แแแแแแแ แแแแ แกแฌแ แแคแแ แแกแฌแแแแแก แแแกแ แแแแแแแแ, แ แแแแแแช แแแแแฃแแแแแแ แแงแ แแแแแแ แแแแก แจแแแแแแแแ แแแแแแแ แแแแแขแแก แแแแ! แแ แแกแแแ แแก แคแแฅแขแ, แ แแ MTProxy แกแแ แแแ แ แแแฌแแ แแแ (แแกแแ Waltman-แแก แแแแ ) C-แแ แแแแแแขแแ แแงแ แแแแแฃแแ Linux-แแก แกแแแชแแคแแแแกแแแ, แแฃแแชแ แแก แกแแแ แแแ แแ แแงแ แกแแญแแ แ (แคแแ แแฃแแแแ แแแแแแกแขแฃแ แแแก), แแ แ แแ แแกแแแแกแ แกแแ แแแ แ แแ Go-แแ แแ Node.js-แแ. แจแแแกแแแแแแแ แแกแแ แแแแแแ แฎแแแก.
แแแแ แแ แแ แแแแแแแแแแแก แขแแฅแแแแฃแ แ แแแแแแแแแแก แจแแกแแฎแแ แแแกแแแแแแก แแแแงแแคแแแแแแก แแแแแก, แกแฎแแ แกแแแแแฎแแแแก แแแแฎแแแแแก แจแแแแแ แแแแแแแขแแแ. แแฎแแ แแแแแแแแแ แแ-5 OSI แคแแแแแ, แกแแกแแแแ - แ แแแแแแแช แแแแแแแกแแก MTProto แกแแกแแ.
แแแกแแฆแแแแแ, แจแแขแงแแแแแแแแแ, แกแแกแแแแ, Diffie-Hellman
แแกแแแ แแฅ แแ แฌแแ แแ แแแแแ แกแฌแแ แแ... แกแแกแแ แแ แแ แแก แแแแแ แกแแกแแ, แ แแแแแแช แฉแแแก แแแขแแ แคแแแกแจแ แแฅแขแแฃแ แ แกแแกแแแแแก แฅแแแจ. แแแแ แแ แแแแกแแแแแก.
แแฅ แฉแแแ แแแแแฆแแ แชแแแแแแ แกแแแ แซแแก แแแแขแแแแก แกแขแ แแฅแแแ แกแแขแ แแแกแแแ แขแ แคแแแแแแ. แแก แแ แแก แแ แแแจแแคแ แฃแแ แจแแขแงแแแแแแแ แแ แฉแแแฃแแแแ แแแ แขแแฅแกแขแ - แแฃ แฉแแแ แฏแแ แแแแแ แกแแแแแแซแ แแแแแแแ แแแแแแก แแขแแแแ แแแ แ แแ แ แแแแฃแ แแ แแแแแแแแ. แ แแแแ แชแแแแแแแ, แ แแแแแแกแแช โแแแกแแฆแแแโ แฐแฅแแแ, แแกแแฃแแ แแแ? แแแแแ แแแแแ แแแแแ แแก แกแแแแแฎแ แแแแแ Telegram-แแก แแฃแแแแกแแแแก (แแแแแจแก แแแฎแแ, แ แแ แฉแแแ แกแแแฃแแแ แ แแแแฃแแแแขแแชแแ แแแแแแกแฃแ แแแแ แแแแแก 4 แกแแแแแ แแแแแแแแ แแแแ แแ แแแฆแแแ แขแแแแก, แฃแคแ แ แแแแแแ แแงแ แแแแแแ แแ แคแ แแแแก แแแขแแแแแ แแกแ, แ แแแแ แช แแ แแก):
แแ แ แกแฃแแแแฅแขแแ แ.แฌ แกแแกแแ - แแ แแ แแคแแชแแแแฃแ แ แแแแแแขแแแแก แแแขแแ แคแแแกแจแ โแแแแแแแแ แ แกแแกแแแแแกโ แฅแแแจ, แกแแแแช แแแแแแฃแแ แกแแกแแ แจแแแกแแแแแแแ แแแแ แแแฌแงแแแแแแแแก/แแแแ แแชแแฃแ แกแแกแขแแแแก.
แแแแ แแ MTProto แกแแกแแ, แ แแแแแกแแช แแฅแแก แจแแขแงแแแแแแแแแแก แแแแแแแ แแแแก แแแแแ แ (แแแแแแ แแแแแก แแแแแแแ) แแ แ แแแแแแช แจแแแซแแแแ แแแแ แซแแแแแก แกแฎแแแแแกแฎแแ TCP แแแแจแแ แแแก แจแแ แแก. แ แแแแแแแแ MTProto แกแแกแแแก แแแงแแแแแ แจแแกแแซแแแแแแแ แแ แแแ แแฃแแแ, แแแแแแแแแ, แคแแแแแก แฉแแแแขแแแ แแแแก แแแกแแฉแฅแแ แแแแแ.แแ แแ แก แจแแ แแก แกแฎแแแแแแ แแ แแก แแแแชแแคแชแแ แแแขแแ แแแแชแแแก. แแแแแแแแ แแแฃแ แจแแแแฎแแแแแจแ แจแแแซแแแแ แแแฅแแแก UI แกแแกแแ แแแแแแ แ แแช แแแขแแ แแแแชแแแกแแแแ แแ แกแแแฌแฃแฎแแ แแ, แแก แ แแฃแแแ. แฉแแแ แแฃแงแฃแ แแแ:
- แแฎแแแ แแแฌแงแแแแแแแแก แแแแฎแแแ แแแแแ แฏแแ แฅแแแแก auth_key แแ แแแแแจแแ แแแก แแแก แแแแแ แแจแแ, แแแแแแแแแ, SMS-แแ - แแแแขแแ แแแขแแ แแแแชแแแก
- แแก แแแฎแแ แแแ แแแแจแ MTProto แกแแกแแ, แ แแแแแกแแช แแฅแแก
session_id
แกแแแฃแแแ แแแแจแ.- แแ แแขแแแแ แแแแแแแแชแแ แแแขแแ แแแแชแแแก ะธ
session_id
แจแแแซแแแแ แแฌแแแแก แแแแแแแแแ - แแก แกแแขแงแแ แแแฎแแแแแ แแแแแแ แแ แแแแแแขแแก แแแแฃแแแแขแแชแแแกแ แแ แแแแจแ- แจแแแแแ แแแแแแขแก แจแแฃแซแแแ แแแฎแกแแ แแแแแแ แแ MTProto แกแแกแแแแ แแแแแแก แฅแแแจ auth_key - แแแแแ DC-แแ.
- แจแแแแแ แแ แ แแฆแแก แแแแแแขแแ แฃแแแ แแแแแฎแแแแก แคแแแแ แกแฎแแ DC - แแ แแ DC-แกแแแแก แแฎแแแ แฌแแ แแแแฅแแแแแ auth_key !
- แแฃแแฎแ แ แกแแกแขแแแแก, แ แแ แแก แแ แแ แแก แแฎแแแ แแแแฎแแแ แแแแแก แ แแแแกแขแ แแชแแ, แแแแ แแ แแแแแ แแแขแแ แแแแชแแแก (UI แกแแกแแ), แแแแแแขแ แแงแแแแแก API แแแ แแแก
auth.exportAuthorization
แกแแฎแแจแ DCauth.importAuthorization
แแฎแแ DC-แจแ.- แแ แแ แแ แแแแแ, แจแแแซแแแแ แ แแแแแแแแ แฆแแ แแงแแก MTProto แกแแกแแแแ (แแแแแแฃแแ แแแแแกแแ
session_id
) แแ แแฎแแ DC-แแ, แฅแแแจ แแแกแ auth_key.- แแ แแแแแก, แแแแแแขแก แจแแแซแแแแ แกแฃแ แแแก Perfect Forward Secrecy. แงแแแแแ auth_key แแงแ แแฃแแแแแ แแแกแแฆแแแ - แแแแ DC - แแ แแแแแแขแก แจแแฃแซแแแ แแแ แแแแก
auth.bindTempAuthKey
แแแแแงแแแแแแกแแแแก แแ แแแแแแ auth_key - แแ แแกแแ, แแฎแแแแ แแ แแ temp_auth_key แแแแ DC, แกแแแ แแ แงแแแแแกแแแแก MTProto แกแแกแแแแ แแ DC-แก.แจแแแแจแแแ แแแ แแแ (แแ แแแแแแแแ แแแ แแแแแ) แแกแแแ แแ แแ auth_key แแแแ. แแแแแแ แแแฃแแ แงแแแแแก แจแแ แแก MTProto แกแแกแแแแ แแแแแ DC-แแ.
แ แแก แแแจแแแแก "แกแฎแแแแแกแฎแแ TCP แแแแจแแ แแแก แจแแ แแก"? แแก แแแจแแแแก, แ แแ แแก แ แแฆแแช แแกแแแแกแ แแแขแแ แแแแชแแแก แฅแฃแฅแ-แคแแแแแแ แแแแกแแแขแแ - แแก แแแ แฉแฃแแแแแ (แแแแแ แฉแแแก) แแแแ TCP แแแแจแแ แก แแ แกแแ แแแ แแแ, แแแแ แแ แแ แ แแฆแแก แแก แแแฃแแ แแกแแแแ. แแฎแแแแ HTTP-แแกแแแ แแแแกแฎแแแแแแแ, MTProto-แจแ, แกแแกแแแก แจแแแแแ, แจแแขแงแแแแแแแแแ แแแแแแแแแแ แฃแแแ แแแแแ แแแ แแ แแแกแขแฃแ แแแแ, แแกแแแ แจแแแแแแแ แแแแ แแแจแ, แแแแจแแ แ แแแฌแงแแ - แแฎแแแ แแแแจแแ แแก แแแแงแแ แแแแก แจแแแแแ, แกแแ แแแ แ แกแแแแแแแแแแ แแแแแแแแแแแแแ แแ แกแแกแแแแ แงแแแแแคแแ แก, แ แแช แแแ แแ แแแแฌแแแ แฌแแแ TCP แแแแจแแ แ.
แแฃแแชแ, แแแแแ แแแงแแแแแแ แแแคแแ แแแชแแ แจแแแฃแแจแแแ แแ แแแแแ แแแแก แกแแกแแแแ แแแ แแ แแชแแกแแก แจแแแแแ. แแแแแแ แแฃแแแ, แแแฎแแ แชแแแแแแ แแฃ แแ แ แฉแแแแก แแแแแแขแก แแฃแแแแแ? - แแแแฃแแ แฃแแแแ แกแแฌแงแแกแก.
แแกแ แ แแ, แฉแแแ แแแฌแแ แแแแแ auth_key
on
แแแกแแแ, [19.06.18/20/05 1:255] data_with_hash := SHAXNUMX(แแแแแชแแแแแ) + แแแแแชแแแแแ + (แแแแแกแแแแ แ แจแแแแฎแแแแแแ แแแแขแ); แแกแแแ, แ แแ แกแแแ แซแ แฃแแ แแก XNUMX แแแแขแก;
แแแจแแคแ แฃแแ_แแแแแชแแแแแ := RSA(แแแแแชแแแแแ_แฐแแจแ, แกแแ แแแ แแก_ แกแแฏแแ แ แแแกแแฆแแแ); 255 แแแแขแ แกแแแ แซแแก แ แแชแฎแแ (แแแแ แแแแแแแ) แแแแฆแแแแฃแแแ แกแแญแแ แ แกแแแซแแแแ แแแแ แกแแญแแ แ แแแแฃแแแ แแ แจแแแแแ แแแแฎแแแ 256 แแแแขแแแ แ แแชแฎแแแ.แแแ แแแแฆแแก แแแแ DH
แแ แฐแแแแก แฏแแแแ แแแแ แแแแแแแแแก DH-แก
dx-แจแ แแ แ แกแแฏแแ แ แแแกแแฆแแแ แแ แแ แแก
แแแแแก แแ แแแแแก, แฉแแแ แแแแแ แแแแแ, แแแแ แแ แแแแแฅแ แแแ แฉแ - แกแแแฃแจแแแก แแแแแกแขแฃแ แแแ แฎแแแแ แแแแแแขแแก แแแแ , แ แแ แแแ แจแแซแแ แ แแชแฎแแแก แคแแฅแขแแ แแแแ แแแ. แแแชแแแก แขแแแ DoS แจแแขแแแแแแกแแแ. แแ RSA แแแกแแฆแแแ แแแแแแงแแแแแ แแฎแแแแ แแ แแฎแแ แแ แแ แแแแแ แแฃแแแแแ, แซแแ แแแแแแ แแแจแแคแแ แแกแแแแก new_nonce
. แแแแ แแ แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแก แแ แแ แจแแฎแแแแแ แแแ แขแแแ แแแแ แแชแแ แฌแแ แแแขแแแฃแแแ, แ แ แแแแแฌแแแ แฌแแแแจแ?
แแแกแแแ, [20.06.18/00/26 XNUMX:XNUMX] แฏแแ แแ แแแแแฆแฌแแแแ แแแแแแแแขแฃแ แแแแฎแแแแแแ
แแฎแแแแ แแแแฃแแแแแแ DH-แก
แฎแแแ, แขแ แแแกแแแ แขแแ แแแแจแ แฌแแ แแ, แ แแ แแแก แจแแฃแซแแแ แแแกแฃแฎแแก แแแชแแแ 4 แแแแขแแ แจแแชแแแแแก แแแแแ. แแ แแก แแ แแก แแก
แแแ, แแแแฎแ แ -404, แแแ แ แ แ?
แแ แแ แแแก: โแแแแญแแ แ แกแแ แแแ แแก แแแกแแฆแแแแ แแแจแแคแ แฃแแ แจแแแ efigna แแแแแก แแแแแแญแแแ, แแแแแ DHโ แแ แกแฃแแแแฃแ แแ แแแกแฃแฎแแแก 404
แ แแก แคแแฅแ แแแ แกแแ แแแ แแก แแกแแ แแแกแฃแฎแแ? แฒ แ แฃแแแ แแฅแแ? แแ แแแแก แฐแแแแฎแแแก (แแแแ แแ แแแแแ แแแขแ แแแแ แ แแแฌแแแจแ).
แแฅ แแแแแ แแแขแแ แแกแ แแแแแก แแแแแ แ แแ แแก แแแกแแแแแแแแแ
แกแฎแแ แกแแฅแแ แแ แแแฅแแก, แแฎแแแแ แแแแ แแแแก แฌแแ แแ แฃแแแ แแแแแงแแแแแแ แแแชแแแแแแแ
แแ แ 32 แแแขแแแแ แแแแแ แ. แฉแแแแแแแ แแกแแแ แ แแแแ แช แงแแแแ
แแแแ แแ แแ แ, แแก แแ แ แแญแแ แแแแแ แแแ แแแ แ แแแจแ, แ แแแแ แช BE
แแแแแ แแแแฉแแ แแแ, [20.06.18/15/49 404:XNUMX PM] แแ แแแแก แแแแ XNUMX?
แแแกแแแ, [20.06.18/15/49 XNUMX:XNUMX] แแแแฎ!
แแแแแ แแแแฉแแ แแแ, [20.06.18/15/50 XNUMX:XNUMX] แแกแ แ แแ, แแ แแแกแแแก, แ แ แจแแแซแแแแ "แแแ แแแแแ"
แแแกแแแ, [20.06.18 15:50] แแแแฎแแแแแแ
แแ แแแ แแแแแแ แแกแแแ แแแจแแ แแแ แขแแ แแแแงแแคแแแแ%)
แจแแชแแแแแก แแแฎแกแแแแแแช แแ แแ แแฅแแ แแแแแกแแแฃแแ
แแแกแแแ, [20.06.18/20/18 5:XNUMX] แแฐ, แแ แแก แแกแแแ MDXNUMX. แฃแแแ แกแแแ แแแแกแฎแแแแแแฃแแ แฐแแจแแ
แแแกแแฆแแแแก แแแแแก แแแแแแญแแ แแแแแแแแแแแ แจแแแแแแแแแ แแ:
digest = md5(key + iv) fingerprint = substr(digest, 0, 4) XOR substr(digest, 4, 4)
SHA1 แแ sha2
แแกแ แ แแ แแแแแงแแแแ auth_key
2048 แแแขแ แแแแแ แแแแแฆแแ แแแคแ-แฐแแแแแแแก แแแฎแแแแแ. แฒ แ แแ แแก แจแแแแแแ? แจแแแแแ แแฆแแแแแฉแแแ, แ แแ แแ แแแแแแจแแก แฅแแแแ 1024 แแแขแ แแ แแแแแ แแ แแ แแแแแแงแแแแแ... แแแแ แแ แแฎแแ แแแแแ แแแคแแฅแ แแ. แแ แแขแแแแ แฉแแแ แแแแฅแแก แกแแแ แแ แกแแแแฃแแแ แกแแ แแแ แแแ. แจแแแฅแแแ TLS แกแแกแแแก แแแแแแแ, แซแแแแแ แซแแแ แ แแ แแชแแแฃแ แ. แแแแ แแ แกแแ แแแ แแ แฏแแ แแ แแคแแ แ แแชแแก แแแแก แจแแกแแฎแแ, แแฃ แแแ แแแ แ แฉแแแ! แฏแแ แแ แ, แ แแแแฃแ แแ แแแขแแ แแแแชแแ. แแแแ. แแฃ แคแแฅแ แแแแแ โแจแแกแแแ-แแแ แแแแโ, แ แแแแ แช แแก แแแ แ แแงแ ICQ-แจแ, แแ แแฃแแแแช โแจแแกแแแแก แแแกแแฆแแแโ, แ แแแแ แช SSH-แจแ (แแแแแแแแแ, แแแแแแ แ gitlab / github-แแ). แแแแแแแฃแ แ แแแแฎแแแ. แแ แแฃ แกแแ แแแ แ แแแแแกแฃแฎแแแก "แแ แขแแแแคแแแแก แแแแ แแแก แกแฎแแ DC แแแกแแฎแฃแ แแแ"? แแ แแฃแแแแช "แแฅแแแแ แขแแแแคแแแแก แแแแแ แ แแแ แซแแแฃแแแ"? แงแแแแแแ แแแ แแ, แ แแช แจแแแแแซแแแ แแแแแแแแแ, แแ แแก แแแกแแฆแแแแก แจแแแแฎแแ แแ แแแแแแ, แ แแ แแก แแแแแช แแฅแแแแ แแแแแกแแแแแ แแ แแ แ แแแแแแแ.
แกแฎแแแแ แจแแ แแก, แแแแฅแแแ โแแแแแฆแแโ. แแแแแแแแแ, แแแแแแแแ แกแแ แแแ แก? แแก แงแแแแแ? แฉแแแ แแแญแแ แแแแ แแ แแแขแแแ แแคแแฃแแ แจแแแแฌแแแแ:
แแแกแแแ, [21.06.18/17/53 2:XNUMX PM] แแกแแแ แกแแแแแแแแแ แแแแแแฃแ แแแแแแขแแแก แจแแแแแฌแแแ XNUMX แแแแขแแแแ แแแแแ แ แกแแแแ แขแแแแกแแแแก%)
แแแแ แแ แกแฃแแแช แแ แแ แแก แแแกแแแแแ, แแแคแแแฎแแ
แแแกแแแ, [21.06.18/18/02 XNUMX:XNUMX] แแแแ แแ แแแแแแก แ แ แฃแแแ แแแแแแแแก, แแฃ แแฆแแแฉแแแ, แ แแ แแก แแ แแ แแก แแแ แขแแแ
แแ แฃแแฅแแแแก. แแแแฎแแ, แ แแก แแแแแแแก แแ แจแแแแฎแแแแแจแ แแแแ แแแแแก แแคแแชแแแแฃแ แ แแแแแแขแ? แ
278 static const char *goodPrime = "c71caeb9c6b1c9048e6c522f70f13f73980d40238e3e21c14934d037563d930f48198a0aa7c14058229493d22530f4dbfa336f6e0ac925139543aed44cce7c3720fd51f69458705ac68cd4fe6b6b13abdc9746512969328454f18faf8c595f642477fe96bb2a941d5bcd1d4ac8cc49880708fa9b378e3c4f3a9060bee67cf9a4a4a695811051907e162753b56b0f6b410dba74d8a84b2a14b3144e0ef1284754fd17ed950d5965b4b9dd46582db1178d169c6bc465b0d6ff9ca3928fef5b9ae4e418fc15e83ebea0f87fa9ff5eed70050ded2849f47bf959d956850ce929851f0d8115f635b105ee2e4e15d04b2454bf6f4fadf034b10403119cd8e3b92fcc5b";
279 if (!strcasecmp(prime, goodPrime)) {
แแ แ, แ แ แแฅแแ แฃแแแ แแฅ แแแแ แแ แแก แ แแชแฎแแแก แกแแแแ แขแแแแก แจแแแแฌแแแแแแ, แแแแ แแ แแแ แแแแ แแ แแแแแแแขแแแแจแ แกแแแแแ แแกแ แชแแแแ แแฆแแ แแแฅแแก.
แแแ แแ, แฉแแแ แแแแแฆแแ แแแแแแ แ แแแกแแฆแแแ. แจแแกแแแ, แ.แ. แแแแแแแแแ แแแแฎแแแแแแ, แแฃแชแแแแแแแแ แจแแแแแแแ แแแจแแคแแ แแก แจแแกแ แฃแแแแ, แฃแแแ AES-แแก แแแแแงแแแแแแ.
แจแแขแงแแแแแแแแก แแแกแแฆแแแ แแแแแกแแแฆแแ แแแ, แ แแแแ แช แฌแแ แแแแก แขแแฅแกแขแแก SHA128-แแก 256 แจแฃแ แแแขแ (แกแแกแแแก, แจแแขแงแแแแแแแแก ID แแ แ.แจ. แฉแแแแแแ), แแแแขแแแแก แแแแขแแแแก แฉแแแแแแ, แ แแแแแแแช แแกแแฎแฃแแแ แแแขแแ แแแแชแแแก แแแกแแฆแแแแแแ แแฆแแแฃแแ 32 แแแแขแแ.
แแแกแแแ, [22.06.18/14/08 XNUMX:XNUMX PM] แกแแจแฃแแแ แซแฃแแแ
แแแแแฆแ
auth_key
. แงแแแแ. แจแแแแแแ แแแ... แแแแกแแแแแแแแแแแ แแ แฉแแแก. แแแแแกแฃแคแแแ แจแแแกแฌแแแแแ แฆแแ แแแแแก แแแแ.แแแแแแแแแกแฌแแแแ, แ แแ MTProto 2.0 แแแแแฎแแแก 12-แแแ 1024 แแแแขแแแแ แฉแแกแฎแแแก, แแ แแแ แแแแ, แ แแ แแแฆแแแฃแแ แจแแขแงแแแแแแแแก แกแแแ แซแ แแงแแคแ 16 แแแแขแแ.
แแแจ, แ แแแแแแ แแแแแจแแก แฉแแกแแ?
แแแแฎ, แแฅแแช 404 แจแแชแแแแแก แจแแแแฎแแแแแจแ
แแฃ แแแแแแ แงแฃแ แแแฆแแแแ แจแแแกแฌแแแแ แแแแแ แแแ แแ แแแแฃแแแแขแแชแแแก แขแแฅแกแขแ, แแแ แจแแแแจแแ, แ แแ แแฅ MAC แแ แแ แแก. แแ แ แแ AES แแแแแแงแแแแแ แแแแแแ แ IGE แ แแแแแจแ, แ แแแแแแช แกแฎแแแแแ แแ แแแแแแงแแแแแ. แแกแแแ, แ แ แแฅแแ แฃแแแ, แฌแแ แแ แแแแก แจแแกแแฎแแ FAQ-แจแ... แแฅ, แแแแแแแแแ, แจแแขแงแแแแแแแแก แแแกแแฆแแแ แแ แแก แแแแแ แแ แแก แแแจแแคแ แฃแแ แแแแแชแแแแแแก SHA แฐแแจแ, แ แแแแแแช แแแแแแงแแแแแ แแแแแแแแแแก แจแแกแแแแฌแแแแแแ - แแ แจแแฃแกแแแแแแแแก แจแแแแฎแแแแแจแ, แแแแฃแแแแขแแชแแ แ แแขแแแฆแแช แแแ แฉแแแ แแแ แฉแฃแแแ แแแแแ แแ แแแแก (แแแแ แแ แ แแช แจแแแฎแแแ แฃแกแแคแ แแฎแแแแแก, แแแฃแแแแแแแแ แแแแแแขแแฎแแ?).
แแ แแ แแแ แแ แแแขแแแ แแคแ, แจแแกแแซแแแ แแ แ แแแแแจแ แแ แจแแแแฎแแแแแจแ แแแแ แแฃแแ แแแแแกแแแ แแกแแ แแ แแคแแ แแ แชแฃแแ. แแแแ แแ แแ แแแแแแแแแ แจแแแแซแแแ แแแแแกแแฎแแแ แแ แแฅแขแแแฃแแ แแ แแแแแแ, Telegram Desktop-แแก แแแแแแแแแก แแแแแงแแแแแแ. แแก แจแแคแ แแแก แแแแแแฃแ แฅแแจแก (แงแแแแ แแก D877F783D5D3EF8C) แแกแแแ, แ แแแแ แช แจแแขแงแแแแแแแแแ MTProto-แจแ (แแฎแแแแ แแ แจแแแแฎแแแแแจแ, แแแ แกแแ 1.0), แ.แ. แฏแแ แจแแขแงแแแแแแแแก แแแกแแฆแแแ, แจแแแแแ แแแแแ แแแแแชแแแแแ (แแ แกแแแฆแแช แแแแแ แแแแแแ แ แแแแ auth_key
256 แแแแขแ, แ แแแแแก แแแ แแจแแช msg_key
แฃแกแแ แแแแแ). แแกแ แ แแ, แแ แแแแแแ แจแแกแแแฉแแแแ แฎแแแแ แแแ แคแแแแแแแ. แแแ แซแแ, แแฅแแแ แฃแแแ แจแแแแแฎแแ แแแแแชแแแแแแก แแ แ แแกแแ - แแแจแแคแ แฃแแ แแ แแแจแแคแ แฃแแ. แแ แแฃ แแ แแก แแแแแแแแขแแแ, แแ แกแขแ แแแแแแแก แแแแแ, แแแแแแแแแ? .. แแแแกแแแฃแ แ แกแฅแแแแแ MAC-แแ แจแแคแ แฃแแ แขแแฅแกแขแแก แจแแแแแ แแแซแแแแก แกแแจแฃแแแแแแก แฌแแแแแแฎแ แแก แแแแแแ, แแแฃแงแแแแแแแแ แแแแแแขแแแ. แแ MTProto-แกแแแ แแ แแแ แฃแแแ แแแแแแแแ แแแแแ แแแจแแคแแ แแ แแ แแแจแแคแ แแ แแแแแ แจแแขแงแแแแแแแ, แแฎแแแแ แแแแก แจแแแแแ แแแแแแขแแแแ แแแ แฅแกแแแจแ แแ แแแกแแแ. แแแแขแแ, Telegram Desktop-แแก แฃแแฎแแแก แแแ แกแแแแจแ แฅแแจแจแ user_data
แกแฎแแ แคแแ แแแขแ แฃแแแ แแแแแแงแแแแแ - AES-แแ CTR แ แแแแแจแ.
แแแกแแแ, [21.06.18/01/27 20:XNUMX AM] แแฐ, แแ แแแแแ แแแแ แ แ แแ แแก IGE: IGE แแงแ แแแ แแแแ แแชแแแแแแ "แแแจแแคแแ แแก แแแแแแขแแคแแแแชแแแก แ แแแแแแกแแแแก", แแแแแแแแ แแแแแ Kerberos-แแกแแแแก. แแก แแงแ แฌแแ แฃแแแขแแแแแ แแชแแแแแแ (แแก แแ แฃแแ แฃแแแแแงแแคแก แแแแแแแแแแก แแแชแแแก) แแ แฃแแแ แแแแฎแกแแแก. แแก แแงแ XNUMX แฌแแแแแ แซแแแแแก แแแกแแฌแงแแกแ แแแจแแคแแ แแก แแแขแแ แแแแชแแแก แ แแแแแแกแแแแก, แ แแแแแแช แแฃแจแแแแก, แ แแแแแแช แชแแขแ แฎแแแก แฌแแ แแฃแแแแแแชแแแก แแแแฆแฌแแ แแกแแ แ แแแแแแแจแ, แ แแแแ แแชแแ OCB แแ GCM.
แแฎแแ แแ แแ แแฃแแแแขแแแ แแแแแแแก แแฎแ แแแแ:
Telegram-แแก แฃแแแ แแงแแคแ แแฃแแแ, แ แแแแแกแแช แแแแแแแ แแฃแ แแแ แฎแแแแซแฆแแแแแแแแก, แจแแแแแแ ACM-แแก แแฅแแกแ แฉแแแแแแแแกแแแ, แ แแแแแแแแแ แแแฎแแแแ แ แแแแแแแขแแแแก แแแฅแขแแ แแ. แแแ แแแแฎแแแแแแ แแ แ แฌแแแ แแแกแญแแ แแแ MTProto-แก แแแแแแแแแแแ แแแ แกแแแก แแแแแกแแงแแแแแแแ.
แฒ แ แแ แแก แกแแกแแชแแแ. แแ แ แฌแแแ แแแแแ แแแแแแ
แแ แจแแแแแซแแแ แฃแแ แแแแ แแแแฆแแ แขแ
แแแ แแ, แแแฅแแแ, แฉแแแ แแแแแแแแแ แแแจแแคแแ แ แแ แกแฎแแ แแแฃแแแกแ. แจแแแแแซแแแ แกแแแแแแแ แแแแแแแแแแ TL แกแแ แแฃแแ แแแแฎแแแแแแ แแ แแแแแฆแแ แแแกแฃแฎแแแแก แแแกแแ แแแแแแแแ? แ แ แฃแแแ แแแแแแแแแแก แแ แ แแแแ ? แแฅ แแ แแก แแแแแแ
Vasily, [25.06.18/18/46 XNUMX:XNUMX PM] แแฎแแแแก แแแแจแแ แแก แแแแชแแ แแแแก แแ แจแแแแแฎแแแก แแแคแแ แแแชแแแก แแแแฎแแแ แแแแแก แแแฌแงแแแแแแแแกแ แแ แแแแแแแชแแแจแ.
แแก แแฆแแแก app_id, device_model, system_version, app_version แแ lang_code.
แแ แแแ แแแแฃแแ แจแแแแแฎแแ
แแแแฃแแแแขแแชแแ, แ แแแแ แช แงแแแแแแแแก. แแแแแกแฃแคแแแ แจแแแกแฌแแแแแ แฆแแ แฌแงแแ แ
แแฃ แงแแแแแคแแ แ แฃแฎแแจแแ แแแแแแ แแงแ invokeWithLayer-แแ, แแแจแแ แ แ แแ แแก แแก? แแแแแแแก, แ แแ แแแแฃแจแแแ, แฉแแแ แแแแฅแแก - แแแแแแขแก แฃแแแ แฐแฅแแแแ แกแแ แแแ แแกแแแแก แกแแแฎแแแแ แ - แแ แแก แแแแฎแแแแ, แ แแแแแก แแแแแแแแแช แแแแแแแแ:
แแแกแแแ, [25.06.18/19/13 XNUMX:XNUMX] แแแแแ แแฃ แแแแกแฏแแแแแ, แแแ แแแแ แแแ แ แแ แแแแแแจแแ แแแฎแแแฃแแ แแ แแแแแ แแแแแแ แแ แแก invokewithlayer-แจแ.
แ แแขแแ แแ แจแแแซแแแแ initConnection แแงแแก แชแแแแ แแแ แ, แแแแ แแ แฃแแแ แแงแแก แจแแคแฃแแแ? แแแแฎ, แ แแแแ แช แแฆแแแฉแแแ, แแก แฃแแแ แแแแแแแแก แงแแแแ แฏแแ แแ แงแแแแแ แกแแกแแแก แแแกแแฌแงแแกแจแ แแ แแ แ แแ แแฏแแ แแแ, แ แแแแ แช แแแแแแ แ แแแกแแฆแแแแ. แแแแ แแ! แแแก แแ แจแแฃแซแแแ แแแฃแ แแแแก แแ แแแแขแแ แแแแแฃแแ แแแแฎแแแ แแแแแ! แแฅ แฉแแแ แแแแแแแ แแ แแขแแแแแแ, แ แแแแแจแแช แแก แแแแแแงแแแแแ
API แแแแแแแแแก แแฎแแแแ แแชแแ แ แแแฌแแแแ แฎแแแแแกแแฌแแแแแ แแ แแแแขแแ แแแแแฃแแ แแแแฎแแแ แแแแแแแกแแแแก:
- auth.sendCode
- auth.resendCode
- account.getPassword
- auth.checkPassword
- auth.checkPhone
- auth.signUp
- auth.signIn
- แแแขแแ แแแแชแแ.import แแแขแแ แแแแชแแ
- help.getConfig
- help.getNearestDc
- help.getAppUpdate
- help.getCdnConfig
- langpack.getLangPack
- langpack.getStrings
- langpack.getDifference
- langpack.getLanguages
- langpack.getLanguage
แแแ แแแแ แแแแแแแ auth.sendCode
, แแ แแ แแก แแก แซแแแ แคแแกแ แแแ แแแแ แแแแฎแแแแ, แ แแแแแจแแช แแแแแแแแแแแแแ api_id แแ api_hash แแ แ แแก แจแแแแแแแช แแแฆแแแ SMS-แก แแแแแ. แแ แแฃ แแ แแกแฌแแ DC-แแ แแแแแแแ (แแ แฅแแแงแแแก แขแแแแคแแแแก แแแแ แแแก แแแกแแฎแฃแ แแแ แกแฎแแ, แแแแแแแแแ), แแแจแแ แแแแแฆแแแ แจแแชแแแแแก แกแแกแฃแ แแแแ DC-แแก แแแแ แแ. แแแแก แแแกแแ แแแแแแ, แ แแแแ IP แแแกแแแแ แแก แฃแแแ แแแแฃแแแแจแแ แแแ DC แแแแ แแ, แแแแแแฎแแแ แแแ help.getConfig
. แแ แแฎแแ แแงแ แแฎแแแแ 5 แฉแแแแฌแแ แ, แแแแ แแ 2018 แฌแแแก แชแแแแแแ แแแแแแแแแแก แจแแแแแ แ แแแแแแแแ แกแแแ แซแแแแแแ แแแแแแ แแ.
แแฎแแ แแแแแฎแกแแแแ, แ แแ แแ แแขแแแแ แแแแแฆแแ แแแแแแแฃแ แ แกแแ แแแ แ. แซแแแแแ แซแแแ แ แแ แแ แแก แแฎแแแแ IP แแแกแแแแ แแแก แแแฆแแแ? แ แแขแแ แแ แฃแแแ แแแแแแแแ แแก แแ แกแฎแแ แแแแ แแชแแแแ MTProto-แก แแแจแแคแ แฃแ แแแฌแแแจแ? แแแกแแแก แแ แแขแแกแขแ: "แ แแแแ แจแแแแซแแแแ แแแ แฌแแฃแแแแ, แ แแ แแก แแ แแ แแก RKN, แ แแแแแแช แฃแแแกแฃแฎแแแก แงแแแแ แแแกแแแแ แแแแแ?". แแแแกแแแ, แจแแแแฎแกแแแแแ, แ แแ, แคแแฅแขแแแ แแแแ, แแคแแชแแแแฃแ แแแแแแขแแแจแ แฉแแจแแแแแฃแแ RSA แแแกแแฆแแแแแ, แ.แ. แจแแแแซแแแ แฃแแ แแแแ แแแจแแแ แแก แแแคแแ แแแชแแ. แกแแแแแแแแแแจแ, แแก แฃแแแ แแแแแแแ แกแแแแขแแแแก แแแแ แแแก แแแแแ แแแคแแ แแแชแแแกแแแแก, แ แแแแแแกแแช แแแแแแขแแแ แแฆแแแแ แกแฎแแ แแ แฎแแแแ (แแแแแแฃแ แแ, แ แแ แแก แแ แจแแแซแแแแ แแแแแแแแก แแแแแ MTProto-แจแ, แ แแแแแ แแฅแแแ แฏแแ แแแแแ แฃแแแ แแชแแแแ แกแแ แแแฃแแแแจแแ แแแ).
แฒแฒแฒ แฒแฒ. แแแแแแขแแก แแแขแแ แแแแชแแแก แแ แแขแแแแ แฉแแแ แฏแแ แแ แแแ แ แแแขแแ แแแแแฃแแ แแ แแ แแแแแแ แแแแกแขแ แแ แแ แฉแแแแ แแแแแชแฎแแแ. แฉแแแ แแฎแแแแ แแฎแแ แแแแแแ แแแแฎแแ, แ แแก แแแกแฃแฎแแแก แกแแ แแแ แ แแ แแแแขแแ แแแแแฃแแ แแแแฎแแแ แแแแแกแแแแก แฎแแแแแกแแฌแแแแ แแแแแแแแแ. แฒแ แแฅโฆ
แแแกแแแ, [10.07.18 14:45]
https://core.telegram.org/method/help.getConfig config#7dae33e0 [...] = Config; help.getConfig#c4f9186b = Config;
https://core.telegram.org/api/datacenter config#232d5905 [...] = Config; help.getConfig#c4f9186b = Config;
แกแฅแแแแจแ แแแแแก แแแ แแแแ, แแแแ แ
tdesktop แกแฅแแแแจแ แแแกแแแ แแแแจแแแแแแแ แแ แแก
แแแแฎ, แแแก แจแแแแแ, แ แ แแฅแแ แฃแแแ, แแแแฃแแแแขแแชแแ แแแแแฎแแแ. แแฃแแชแ แแแแ แแก แจแแแซแแแแ แแกแแ แจแแฃแกแแแแแ แแแฎแแแก. แแ แ แแแแ แฃแแแ แแชแแแแก แแฎแแแแแแ แแแแแแแแแ แแ? แแฅแแแ แแแแแชแฎแแแ แ แแ แแแ แแแแกแขแ แแ แแ, แจแแแแขแงแแแแแแ? แแแกแแแแ แแก แแแแแแแ, แแแแ แแ แกแแแฌแฃแฎแแ แแ, แแแก แแ แแคแแ แ แแแฃแแแแแแแก (แแแแแ แแ แแฎแแ, แแแแแ แแแแ แ แแแฌแแแจแ แแแกแแฃแแ แแแ).
... แแฅแแแ แจแแแแจแแแ, แ แแ แฉแแแ แฃแแแ แ แแแแ แฆแแช แแแแแแแแแ API-แแ, แ.แ. แจแแแแแ แแแแแแ แแแแแฎแแแแแ แแ แ แแแ แแแแแแ แฉแแ MTProto แแแแแจแ? แแแกแแแแแ แ แแ แแคแแ แแ:
แแแกแแแ, [28.06.18/02/04 2:XNUMX AM] แแ, แแกแแแ แแแแแแแแ แแแแ แแแแแแ แ แแแแแ แแแแก eXNUMXe-แแ
Mtproto แแแแกแแแฆแแ แแแก แแแจแแคแแ แแก แแแแแ แแแแแแก แแ แแแกแแฆแแแแแก แแ แแแ แแแแแแแกแแแแก, แแกแแแ แ แแแแ แช แชแแขแ แจแแคแฃแแแแก แกแขแ แฃแฅแขแฃแ แแก
แแแแ แแ แแกแแแ แแฃแแแแแแ แฃแ แแแแ แกแขแแแแก แกแฎแแแแแกแฎแแ แแแแแแแก, แแแแขแแ แงแแแแแแแแก แแ แแ แแก แแแแแแ, แกแแ แแแกแ แฃแแแ mtproto แแ แแแแฌแงแ แจแแแแแแ แแแแ.
แ แแแแ แแ แแก แจแแ แแฃแแ? แแแแแแแแแ, แแฅ แแ แแก แแแแแ แแ แแแแแแ แแแกแแฆแแแ PFS-แกแแแแก (แกแฎแแแแ แจแแ แแก, Telegram Desktop-แแ แแ แแชแแก แ แแแแ แแแแแแแแก แแก). แแก แจแแกแ แฃแแแแฃแแแ API แแแแฎแแแแแ auth.bindTempAuthKey
, แ.แ. แฃแแแฆแแแกแ แแแแแแแ. แแแแ แแ แแแแแแ แแฃแแแ, แแก แฎแแแก แฃแจแแแก แแแจแแคแแ แแก แฅแแแแ แแแแแแ - แแแแก แจแแแแแ, แแแแแแแแแ, แแฅแแแ แแแแแ แฃแแแ แแแแแแแแ แแก initConnection
แแ แ.แจ., แแก แแ แแ แแก แฃแแ แแแแ แแแ แแแแฃแ แ แแแแฎแแแแ. แชแแแแ, แแก แแกแแแ แแแแฌแแแแก แแแแก, แ แแ แแฅแแแ แจแแแแซแแแแ แแฅแแแแแ แแฎแแแแ แแ แแ แแ แแแแแแ แแแกแแฆแแแ DC-แแ, แแฃแแชแ แแแแ auth_key_id
แแแแแแฃแ แจแแขแงแแแแแแแแจแ แกแแจแฃแแแแแแก แแแซแแแแ แจแแชแแแแแ แแแกแแฆแแแ แแแแแแฃแ แงแแแแ แจแแขแงแแแแแแแแจแ, แแ แ แแ แกแแ แแแ แก แแฅแแก แฃแคแแแแ แแแแแกแแแแ แแ แแก โแแแแแแฌแงแแกโ แแ แแแแแแ แแแกแแฆแแแ - แ แ แฃแแแ แแแแแแแแก แแ แจแแแแฎแแแแแจแ, แแแแฃแแแแขแแชแแแจแ แแ แแ แแก แแแแฅแแแแ ... แแแ แแ, แ แแขแแ แจแแฃแซแแแแแแ แแฅแแแแ แ แแแแแแแแ แแแกแแฆแแแแก แฅแแแ, แ แแแแ แช แกแแแแแแแแ แแแ แแแแแแก แแแแแแแฅแขแจแ, แแแแ แแ ?..
แแ แแก แ แแแแแแแแ แกแฎแแ แ แแ, แ แแช แฃแแแ แแฆแแแแจแแแก MTProto แแแแแจแ.
แจแแขแงแแแแแแแแแแก แแแแแแแแ, msg_id, msg_seqno, แแฆแแแ แแแ, แแแแแแแ แแ แแกแฌแแ แ แแแแแ แแฃแแแแแ แแ แกแฎแแ แแแแแกแแแฃแ แแแแแ
แ แแขแแ แฃแแแ แแชแแแ แแแ แจแแกแแฎแแ? แแแแก แแแแ, แ แแ แแกแแแ "แแแแแแแแก" แแ แแ แกแแคแแฎแฃแ แแ แแแฆแแ แแ แแฅแแแ แฃแแแ แแชแแแแ แแแ แจแแกแแฎแแ API-แกแแแ แแฃแจแแแแแกแแก. แแแแฃแจแแแ, แฉแแแ แแ แแแแแแขแแ แแกแแแก msg_key, แฅแแแแ แแแแแ แแแจแแคแ แ แงแแแแแคแแ แ แฉแแแแแแแก. แแแแ แแ แแแจแแคแ แฃแแ แแแแแชแแแแแแก แจแแแแแ, แฉแแแ แแแแฅแแก แจแแแแแแ แแแแแแ (แแกแแแ แแแแแชแแแแแแก แกแแแ แซแ, แ แแแ แแแชแแแแ แกแแ แแ แแก แฉแแกแแ, แแแแ แแ แแก แแ แแ แแก แแแแจแแแแแแแแแ):
- salt-int64
- session_id - int64
- message_id - int64
- seq_no-int32
แจแแแแฎแกแแแแแ, แ แแ แแแ แแแ แแ แแก แแ แแ แแแแแ DC. แ แแขแแ แแชแ แแแแก แจแแกแแฎแแ? แแ แ แแฎแแแแ แแแแขแแ, แ แแ แแ แแก แแแแฎแแแแ get_future_salts
, แ แแแแแแช แแแแฃแแแแแ, แ แแแแแ แแแขแแ แแแแแแ แแฅแแแแ แแแ แแแแฃแแ, แแ แแแแ แแแแขแแ, แ แแ แแฃ แแฅแแแแ แแแ แแแ โแแแแแแแแโ, แแแจแแ แจแแขแงแแแแแแแ (แแแแฎแแแแ) แฃแแ แแแแ แแแแแแ แแแแ. แกแแ แแแ แ, แ แ แแฅแแ แฃแแแ, แแแแฎแกแแแแแก แแฎแแ แแแ แแแก แแแชแแแแ new_session_created
- แแฆแแแ แซแแแแแแ แแแแแฌแแแก แ แแแแ แแ แแแแแแแแแแ แแแ. แแ แแก แแแแฎแแ แแแแแแแแก แแฎแแแแก แแแแแแแชแแแก แแ แฅแแขแแฅแขแฃแ แแแ.
แกแแ แแแ แก แฃแคแแแแ แแฅแแก, แกแแแ แแแ แฉแแแแแแแแก แกแแกแแแแ แแ แฃแแแกแฃแฎแแก แแ แแแแ แแ แแแแแ แแแแแแแก แแแแ. แกแแแแแแแแแแจแ, แ แ แแ แแก MTProto แกแแกแแ แแแแแแขแแก แแฎแ แแแแ? แแก แแ แ แชแแคแ แแ session_id
ะธ seq_no
แจแแขแงแแแแแแแแแ แแ แกแแกแแแก แคแแ แแแแแจแ. แ แ แแฅแแ แฃแแแ, แแ แซแแ แแแแแ TCP แแแแจแแ แ. แแแฅแแแ, แฉแแแแแ แแแแแแขแแ แฏแแ แแแแแ แแ แแชแแก แแแแ แ แ แแแแก แแแแแแแแ, แแแแแจแฃแแ, แฎแแแแฎแแ แแแแแแจแแ แแแ. แแฃ แแก แแแฎแแ แกแฌแ แแคแแ - แซแแแแ แกแแกแแ แแแแ แซแแแแ แแฎแแ TCP แแแแจแแ แจแ, แแแแแ แแแ seq_no
แฃแคแ แ. แแฃ แแแแก แแแแ แแ แ แแแกแญแแ แแ, แกแแ แแแ แแ แจแแแซแแแแ แฌแแจแแแแก แแแ, แ แแแแแ แแแก แแฎแแ แแกแแช แแ แแก แ แแแ, แ แแแแ แช แแแแแ แแแแแ.
แ แ แฃแแแ แแงแแก seq_no
? แแฐ, แแก แ แแฃแแ แแแแฎแแแ. แจแแแชแแแแ แแฃแแฌแ แคแแแแ แแแแแแ แ แแก แแฃแแแกแฎแแแแแ:
แจแแแแแ แกแแก แจแแกแแฎแแ แจแแขแงแแแแแแแ
แจแแขแงแแแแแแแ, แ แแแแแแช แแแแแฎแแแก แแจแแแ แ แแฆแแแ แแแแก. แแก แแแแชแแแก แแแแฎแแแ แแแแแก แงแแแแ แแ แแแแ แกแแ แแแกแฃแ แจแแขแงแแแแแแแแก, แแ แแฅแขแแแฃแแแ แงแแแแ แแแแขแแแแแ แแแแกแ แแ แแแแแแแแก แแแ แแ.
แจแแขแงแแแแแแแแก แแแแแแแแแแ แแแแก แแแแแ แ (msg_seqno)
32-แแแขแแแแ แ แแชแฎแแ, แ แแแแแแช แฃแแ แแก โแจแแแแแ แกแแแ แแแแแแจแแ แแแฃแแโ แจแแขแงแแแแแแแแแแก แแ แฏแแ แ แแแแแแแแแก (แแกแแแ, แ แแแแแแแช แกแแญแแ แแแแแ แแฆแแแ แแแแก, แแ แแแแกแแแฃแแ แแแแ แแก, แ แแแแแแช แแ แแ แแก แแแแขแแแแแ แแแ), แ แแแแแแช แจแแฅแแแแแแ แแแแแแแแแแก แแแแ แแ แจแแขแงแแแแแแแแแแ แแ แจแแแแแแ แแแแ แแแแ แแ แแแ, แแฃ แแแแแแแแ แ แจแแขแงแแแแแแแ แแ แแก แจแแแแแ แกแแแ แแแแแแจแแ แแแฃแแ แจแแขแงแแแแแแแ. แแแแขแแแแแ แ แงแแแแแแแแก แแฅแแแแแ แแแกแ แแแแแ แจแแแแแแกแแก แจแแแแแ; แจแแกแแแแแแกแแ, แแแกแ แ แแแแแ แแแแแ แ แแแขแแ แแ แขแแแแ แแแกแจแ แจแแแแแแแ แจแแขแงแแแแแแแแแแก แแแแแแแ แแแแ แ แแชแฎแแแแแ.
แ แ แกแแฎแแก แชแแ แแแ แแก 1-แแก แแแแแขแแ แแ แจแแแแแ แแแแแ 2-แแ? .. แแแแญแแแแ, แ แแ แแแแแแแแ แแแแ แแแแจแแแแแแแ แแงแ "แแแแแแ แแแขแ ACK-แแกแแแแก, แแแแแ แฉแแแ แ แแชแฎแแแ", แแแแ แแ แจแแแแแ แแ แแ แแก แแแแแ แกแฌแแ แ - แแแ แซแแ, แแแแแแแก, แ แแ แแแกแ แแแแแแแแ แจแแกแแซแแแแแแแ แแแแแแ แแ แแแแแกแขแฃแ แแแแแ, แ แแแแแแกแแช แแฅแแ แแแแแ seq_no
! แฒ แแแแ ? แแแแแแแแแ, แกแแ แแแ แ แแแแแแแแแแก แ แแฆแแชแแก, แแแแแแแแแแก แแ แฉแแแ แแแแแแ แแฉแฃแแแแแแ, แแฎแแแแ แกแแ แแแกแแก แแแแแแแกแขแฃแ แแแแแ แจแแขแงแแแแแแแแแแ แแแแกแฃแฎแแแ แแแกแ แจแแขแงแแแแแแแแแแก แแแฆแแแแก แจแแกแแฎแแ. แแ แจแแแแฎแแแแแจแ, แฉแแแแก แแแแแแแ แแแแแกแขแฃแ แแแแแก แแฅแแแแ แแแแแ แแแแแแแแ แแแแแ แ. แแฃ แแชแแแแ TCP-แก แแ แคแแฅแ แแแ, แ แแ แแก แแแแฃแ แแ แแฆแแ แก, แแแแ แแ, แ แแแแ แช แฉแแแก, แแ แช แแกแ แแแแฃแ แแ, แ แแแแแ TCP-แจแ seq_no
แแ แแชแแแแแ แแ แแแแแกแขแฃแ แแแ แแแแแก seq_no
แแแแ แ แแฎแแ แ - แแแ แ แแแฉแฅแแ แแแ แแแแ แแแแแ. แแแแแกแขแฃแ แแแแแ แแแแแก MTProto-แจแ แแ on seq_no
, แ แแแแ แช TCP-แจแ, แแแแ แแ msg_id
!
แฒแก แ แ แแ แแก msg_id
, แแ แกแคแแ แแแแแแแ แงแแแแแแ แแแแจแแแแแแแแแ? แจแแขแงแแแแแแแแก แฃแแแแแแฃแ แ ID, แ แแแแ แช แกแแฎแแแ แแฃแแแกแฎแแแแก. แแแ แแแแแกแแแฆแแ แแแ, แ แแแแ แช 64-แแแขแแแแ แ แแชแฎแแ, แ แแแแแแแแแ แงแแแแแแ แแแแแแแแ แแแแจแแแแแแแแ แแแขแแแก แแแแแ แแฅแแก แกแแ แแแ แแก แแ แ แกแแ แแแ แแก แแแแแ, แฎแแแ แแแแแ แฉแแแ แแ แแก Unix-แแก แแ แแแก แจแขแแแแ, แคแ แแฅแชแแฃแแ แแแฌแแแแก แฉแแแแแแ, แแแแแขแแแแแ 32 แแแขแแ แแแ แชแฎแแแ. แแแแ. แแ แแแก แจแขแแแแ แแแแแกแแแแแ (แแ แซแแแแแ แแแแกแฎแแแแแแฃแแ แแ แแแก แจแแขแงแแแแแแแแแ แฃแแ แงแแคแแแ แแฅแแแแ แกแแ แแแ แแก แแแแ ). แแฅแแแแ แแแแแแแก, แ แแ แแแแแแแ, แแก แแ แแก แแแแแแขแแกแแแแก แแแแแแแฃแ แ แแแแแขแแคแแแแขแแ แ. แฎแแแ - แแแฎแกแแแแแ session_id
- แแแ แแแขแแ แแแฃแแ แแแแฅแแก: แแ แแแแแแ แจแแแแฎแแแแแจแ แแ แจแแแซแแแแ แแ แแ แกแแกแแแกแแแแก แแแแแฃแแแแแแ แจแแขแงแแแแแแแแก แแแแแแแแ แกแฎแแ แกแแกแแแแ. แแแฃ แแแแแแแก, แ แแ แฃแแแ แแ แกแแแแแก แกแแ แแแแ โ แกแแกแแ, แกแแกแแแก แแแแแ แ, แจแแขแงแแแแแแแแก ID. แ แแขแแ แแ แแก แแกแแแ แแแแแแขแ แแแ แแฃแแแแ, แแก แกแแแแฃแแแ แซแแแแแ แแแแแ.
แแฅแแแแ แแแแแแแแแแ แ, msg_id
แกแแญแแ แแโฆ
RPC: แแแแฎแแแแแแ, แแแกแฃแฎแแแ, แจแแชแแแแแแ. แแแแแกแขแฃแ แแแแแ.
แ แแแแ แช แแฅแแแ แจแแแแจแแแ, แกแฅแแแแจแ แแ แกแแ แแ แแ แแก แกแแแชแแแแฃแ แ แขแแแ แแ แคแฃแแฅแชแแ "แแแแแแแ RPC แแแแฎแแแแ", แแฃแแชแ แแ แแก แแแกแฃแฎแแแ. แแแแแก แแ แแแแแก, แฉแแแ แแแแฅแแก แจแแแแแ แกแแแ แแแแแแจแแ แแแฃแแ แจแแขแงแแแแแแแแแ! แแแฃ แแแแแกแแแแ แ แจแแขแงแแแแแแแ แจแแแซแแแแ แแงแแก แแแแฎแแแแ! แแ แแ แแงแแก. แฒงแแแแแคแ แแก แจแแแแแ, แแแแแแฃแ แแ แกแแแแแก msg_id
. แแ แแ แแแกแฃแฎแแแ:
rpc_result#f35c6d01 req_msg_id:long result:Object = RpcResult;
แแก แแ แแก แกแแแแช แแแแแแแแฃแแแ, แ แแแแ แจแแขแงแแแแแแแแแแ แแก แแแกแฃแฎแ. แแแแขแแ, API-แก แฃแแแฆแแแก แแแแแแ, แแแแแฌแแแ แแแฎแกแแแแแ, แ แ แแแแแ แ แฐแฅแแแแ แแฅแแแแก แแแแฎแแแแแก - แแคแแฅแ แแ, แแ แแ แแก แกแแญแแ แ แแแแก แแฎแกแแ, แ แแ แกแแแฃแจแแ แแกแแแฅแ แแแฃแแแ แแ แจแแแซแแแแ แแงแแก แ แแแแแแแแ แแแแฎแแแแ แแ แแแ แแฃแแแ, แ แแแแแแแแช แแแกแฃแฎแแแ แจแแแซแแแแ แแแแ แฃแแแแก แแแแแกแแแแ แ แแแแแแแแแแ แแแแ? แแ แแแชแแแจแ, แแฅแแแแ แแ แจแแชแแแแแก แจแแขแงแแแแแแแแแแแแ, แ แแแแ แแชแแ แแฃแจแ แแ แแ แแก, แแแแก แแแฆแแ แแ แกแแแฃแแ แแ แฅแแขแแฅแขแฃแ แแก แแแแแ แจแแแซแแแแ แแแแแแแแแแแก: แกแแ แแแ แ, แ แแแแแแช แแแแ แฉแฃแแแแก TCP แแแแจแแ แก แแฅแแแแแแ แแ แแก แฌแแแ แแแแแแกแแ แ, แแก แแแแแ แแแแก แแแแฎแแแแแแก backend-แแแแ แแ แแแ แแแแแก แแแ แฃแแแ. message_id
. แแฅ แงแแแแแคแแ แ แแแแแแแ, แแแแแแฃแ แ แแ แแแ แแแ.
แแ?.. แแ แแฃ แคแแฅแ แแ? แงแแแแแแแ แแแแก แจแแแแแ, แแแแแ RPC แแแกแฃแฎแกแแช แแฅแแก แแแแ msg_id
! แฃแแแ แแฃแงแแแ แแ แกแแ แแแ แก โแแฅแแแ แแ แแแกแฃแฎแแแ แฉแแแก แแแกแฃแฎแก!โ? แแแแฎ, แ แ แแงแ แแแแแกแขแฃแ แแแ? แแแแ แแแก แจแแกแแฎแแ
msgs_ack#62d6b459 msg_ids:Vector long = MsgsAck;
แแ แแแแแแฃแแแ แแฎแแ แแ แฃแแแ แแแแแแแแก แแก. แแแแ แแ แแ แ แงแแแแแแแแก! แแฃ แแฅแแแ แแแแฆแแแ RpcResult-แก, แแก แแแแแกแแแแแ แแแกแแฎแฃแ แแแ แ แแแแ แช แแฆแแแ แแแแก. แแแฃ, แกแแ แแแ แก แจแแฃแซแแแ แฃแแแกแฃแฎแแก แแฅแแแแก แแแแฎแแแแแก MsgsAck-แแ - แแแแแแแแแ, "แแ แแแแแฆแ". แจแแฃแซแแแ แแแฃแงแแแแแแแแ แฃแแแกแฃแฎแแก RpcResult-แก. แแก แจแแแซแแแแ แแงแแก แแ แแแ.
แแ แแแแฎ, แแฅแแแ แฏแแ แแแแแ แฃแแแ แฃแแแกแฃแฎแแ แแแกแฃแฎแก! แฒแแแแกแขแฃแ แแแ. แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ, แกแแ แแแ แ แฉแแแแแแก แแแก แแแฃแฌแแแแแแแ แแ แแแแแ แแแแแแแแแแก แแฅแแแแแแ. แฎแแแแฎแแแ แแแแแแจแแ แแแแก แจแแแแแแแช แแ. แแแแ แแ แแฅ, แ แแกแแแแแ แแแแแ, แแแแแแแ แแแแแแฃแขแแแแก แกแแแแแฎแ. แแแแแ แจแแแฎแแแแ แแแ แชแแขแ แแแแแแแแแแแ.
แแแแแแ แแฃแแแ, แแแแแ แแแแแแฎแแแแ แจแแกแแซแแ แจแแชแแแแแแ แจแแแแแฎแแแก แจแแกแ แฃแแแแแกแแก.
rpc_error#2144ca19 error_code:int error_message:string = RpcError;
แแฐ, แแแแแแ แแแแซแแฎแแก, แแ, แฃแคแ แ แแแแแแแแฃแ แ แคแแ แแแขแ - แแ แแก แฎแแแ! แแแแฆแแ แแ แ. แฒแฅ FLOOD_WAIT_3600
แแแจแแแแก, แ แแ แแ แแ แกแแแแ แฃแแแ แแแแแแแ แแ PHONE_MIGRATE_5
แ แแ แแ แแ แแคแแฅแกแแ แขแแแแคแแแแก แแแแแ แ แฃแแแ แแแ แแแแกแขแ แแ แแแก แแ-5 แแ. แฉแแแ แแแแฅแแก แขแแแแก แแแ, แแ แ? แฉแแแ แแ แแแญแแ แแแแ แแ แแฃแแแแขแ แกแขแ แแฅแแแแแแ, แ แแแฃแแแ แฃแแ แแแแแแแแฅแแแแแแ แแฅแแแแ, cho.
แแแแแ แแ แแฎแแ, แแก แแ แแ แแก แกแแ แแแกแแก แจแแขแงแแแแแแแแแแก แแแแ แแแ, แแแแ แแ, แ แแแแ แช แแก แฃแแแ แฉแแแฃแแแ แแ แแ แแแฅแขแแแ แแแแแแจแแ แแแแ, แจแแแแซแแแแ แแแแแแ แแแคแแ แแแชแแ แกแฎแแ แแแแฃแแแแขแแชแแแก แแแแ แแแ. แแ แแญแแก แแฌแแแแก. แฏแแ แแแฎแ, แแแ แแคแแก/แคแแแแแแก แแแ แฆแแแแ - RpcError
แจแแแซแแแแ แแแแแกแขแแชแแ RpcResult
. แ แแขแแ แแ แ แแแ แแ? แ แ แแ แแแแแแแแแแกแฌแแแแ?.. แจแแกแแแแแแกแแ แกแแ แแ แแก แแแแก แแแ แแแขแแ RpcError
แแ แจแแแซแแแแ แแแแแกแขแแชแแ RpcResult
, แแแแ แแ แแแ แแแแแ แแงแแก แแฃ แกแฎแแ แขแแแจแ แฉแแกแแฃแแ? แแแแแ req_msg_id
? ..
แแแแ แแ แแแแแ แแแแแแ แซแแแแ แกแแ แแแกแแก แจแแขแงแแแแแแแแแแก แจแแกแแฎแแ. แแแแแแขแแ แจแแแซแแแแ แฉแแแแแแแก, แ แแ แกแแ แแแ แ แแแแ แฎแแแก แแแแแแแแแแแจแ แคแแฅแ แแแก แแ แแกแแแ แแจแแแแแแ แ แแแแฎแแแแ แแแแแแแแก:
rpc_drop_answer#58e4a740 req_msg_id:long = RpcDropAnswer;
แแแกแแ แกแแแ แจแแกแแซแแ แแแกแฃแฎแแ, แ แแแแแแแช แแแแแ แแแแแแแแ แแแแแกแขแฃแ แแแแก แแแฅแแแแแแแแ, แ แแแ แจแแแแชแแแแ แแแแแแแ, แ แ แฃแแแ แแงแแก แแกแแแ (แแ แ แ แแ แแก แแ แขแแแแแแก แกแแ, แ แแแแแแแช แแแแแแแ แแ แกแแญแแ แแแแก แแแแแกแขแฃแ แแแแก), แแแแแฎแแแแ แ แฉแแแ แกแแจแแแแ แแแแแแแแแ (แจแแแแจแแแ: แแแคแแ แแแชแแ Telegram Desktop-แแก แฌแงแแ แแแแจแ แแ แแ แแก แกแ แฃแแ).
แแแแแแแแแแฃแแแแ: แจแแขแงแแแแแแแแแแก แแแกแขแแก แกแขแแขแฃแกแแแ
แแแแแแแ, TL, MTProto แแ แแแแแแแ Telegram-แจแ แแแแ แ แแแแแแ แขแแแแแก แกแแฏแแฃแขแแก แแแแชแแแก, แแแแ แแ แแ แแแแแแแก, แขแแฅแขแแก แแ แกแฎแแ แ แแแแ แฃแแแ แแแ แฉแแแ แแแแแแแแแแ แแแฃแแแแ แแแแก แจแแกแแฎแแ แแ แแแแแแแแแจแ แฃแฎแแแกแแแ แชแแแแฃแ แแก แแฎแแแแแ. แแฃแแชแ, แแก แแแแแแะแแแแ แแแก แฃแแแขแแกแ แแแฌแแแแก แจแแกแแฎแแ
แแฌแงแแแ แฃแแแแแแแ, แแแแแกแขแฃแ แแแแแแ. แจแแแแแแ, แฉแแแ แแแแฃแแแแแแแ
bad_msg_notification#a7eff811 bad_msg_id:long bad_msg_seqno:int error_code:int = BadMsgNotification;
bad_server_salt#edab447b bad_msg_id:long bad_msg_seqno:int error_code:int new_server_salt:long = BadMsgNotification;
แแกแ, แงแแแแแก, แแแแช แแฌแงแแแก แแฃแจแแแแแก MTProto-แกแแแ, แแแฃแฌแแแก แแแแแแ แจแแฎแแแแ แ, "แจแแกแฌแแ แแแฃแแ - แฎแแแแฎแแ แจแแแแแแแแ - แแแจแแแแฃแแ" แชแแแแจแ, แ แแชแฎแแแแแก แจแแชแแแแแก แแแฆแแแ แแ แ แแแแฅแขแแ แแแแก แแ แแก แแแแแแแ แแแ แแแแก แแแฆแแแ แฉแแแฃแแแแ แแแ แ แแ แแ แแก. แแฃแแชแ, แแฅ แแ แแก แแ แ แฌแแ แขแแแ:
- แแฅแแแแ แแแแแแแแแแ แแแแก, แ แแ แแ แแแแแแแฃแ แ แจแแขแงแแแแแแแ แแแแแ แแฃแแแ. แฉแแแ แแแญแแ แแแแ แ แแแแก แจแแแแฆแแแแ, แแแแก แแแแแแแแแแแ แแแแแแฎแแแแแ.
- แ แ แแ แแก แแก แฃแชแแแฃแ แ แจแแชแแแแแก แแแแ แแแ? 16, 17, 18, 19, 20, 32, 33, 34, 35, 48, 64... แกแแ แแ แแก แแแแแ แฉแแแ แ แแชแฎแแแแ, แขแแแ?
แแแแฃแแแแขแแชแแแจแ แแแแฅแแแแแ:
แแแแแแแ, แ แแ error_code แแแแจแแแแแแแแแ แแแฏแแฃแคแแแก (error_code >> 4): แแแแแแแแแ, แแแแแแ 0x40 - 0x4f แจแแแกแแแแแแแ แจแแชแแแแแแก แแแแขแแแแแ แแก แแแจแแแกแแก.
แแแแ แแ, แฏแแ แแ แแ, แชแแแ แกแฎแแ แแแแแ แแฃแแแแแ แแ แแแแ แแช, แแ แแฅแแก แแแแจแแแแแแแ แกแแ แแ แแก แแแแแ แฉแแแ แแแแแแ? แแแขแแ แแก แแแแจแ?.. แแฃแแชแ แแก แฌแแ แแแแแแแแแ.
แแแแแแแแแแฃแแแแ แแฌแงแแแ แแแกแขแแก แกแขแแขแฃแกแแก แจแแขแงแแแแแแแแแจแ แแ แแแกแขแแก แแกแแแแจแ:
- แจแแขแงแแแแแแแแก แกแขแแขแฃแกแแก แแแคแแ แแแชแแแก แแแแฎแแแแ
แแฃ แ แแแแแแแ แแฎแแ แแก แแ แแแฃแฆแแ แแแคแแ แแแชแแ แแแกแ แแแแแแแแ แจแแขแงแแแแแแแแแแก แกแขแแขแฃแกแแก แจแแกแแฎแแ แแแ แแแแฃแแ แแแ แแแแแก แแแแแแแแแแแจแ, แแแก แจแแฃแซแแแ แชแแแกแแฎแแ แแแแแฎแแแแก แแก แแแแ แ แแฎแแ แแกแแแ:
msgs_state_req#da69fb52 msg_ids:Vector long = MsgsStateReq;
- แกแแแแคแแ แแแชแแ แจแแขแงแแแแแแแ แจแแขแงแแแแแแแแแแก แกแขแแขแฃแกแแก แจแแกแแฎแแ
msgs_state_info#04deb57d req_msg_id:long info:string = MsgsStateInfo;
แแฅ,info
แแ แแก แกแขแ แแฅแแแ, แ แแแแแแช แจแแแชแแแก แจแแขแงแแแแแแแแแแก แกแขแแขแฃแกแก แแฃแกแขแแ แแ แ แแแแขแก แแแแแแฃแแ แจแแขแงแแแแแแแแกแแแแก แจแแแแแแแแแ msg_ids แกแแแแแ:- 1 = แแ แแคแแ แแ แชแแแแแแ แจแแขแงแแแแแแแแก แจแแกแแฎแแ (msg_id แซแแแแแ แแแแแแแ, แแแแ แ แแฎแแ แแก แจแแแซแแแแ แแแแแแฌแงแแ)
- 2 = แจแแขแงแแแแแแแ แแ แแ แแก แแแฆแแแฃแแ (msg_id แจแแแแก แจแแแแฎแฃแแ แแแแแขแแคแแแแขแแ แแแแก แแแแแแแแแจแ; แแฃแแชแ, แแแแ แ แแฎแแ แแก แแแแแแแแแ แแ แแแฃแฆแแ แแกแแแแกแ แจแแขแงแแแแแแแ)
- 3 = แจแแขแงแแแแแแแ แแ แแ แแก แแแฆแแแฃแแ (msg_id แซแแแแแ แแแฆแแแแ; แแฃแแชแ, แแแแ แ แแฎแแ แแก, แ แ แแฅแแ แฃแแแ, แฏแแ แแ แแแฃแฆแแ)
- 4 = แแแฆแแแฃแแ แจแแขแงแแแแแแแ (แแแแแแแแแกแฌแแแแ, แ แแ แแก แแแกแฃแฎแ แแกแแแ แแ แแก แฅแแแแ แแก แแแแแกแขแฃแ แแแ)
- +8 = แจแแขแงแแแแแแแ แฃแแแ แแฆแแแ แแแฃแแแ
- +16 = แจแแขแงแแแแแแแ, แ แแแแแแช แแ แกแแญแแ แแแแก แแฆแแแ แแแแก
- +32 = RPC แแแแฎแแแแ, แ แแแแแแช แจแแแชแแแก แจแแขแงแแแแแแแแก, แ แแแแแแช แแแแฃแจแแแแแฃแแแ แแ แแแแฃแจแแแแแ แฃแแแ แแแกแ แฃแแแแฃแแแ
- +64 = แจแแแแแ แกแแแ แแแแแแจแแ แแแฃแแ แแแกแฃแฎแ แฃแแแ แแแแแ แแ แแแฃแ แจแแขแงแแแแแแแแแ
- +128 = แแแแ แ แแฎแแ แแ แแชแแก, แ แแ แจแแขแงแแแแแแแ แฃแแแ แแแฆแแแฃแแแ
แแก แแแกแฃแฎแ แแ แกแแญแแ แแแแก แแฆแแแ แแแแก. แแก แแ แแก แจแแกแแแแแแกแ msgs_state_req, แแแแแกแแแแแ แแแแแกแขแฃแ แแแ.
แแแแแแแแแกแฌแแแแ, แ แแ แแฃ แแแฃแแแแแแแแ แแฆแแแฉแแแแแ, แ แแ แแแแ แ แแฎแแ แแก แแ แแฅแแก แจแแขแงแแแแแแแ, แแแแฅแแก แแแก แแแฃแแแแแแ, แจแแขแงแแแแแแแ แจแแแซแแแแ แฃแแ แแแแ แฎแแแแฎแแ แแแแแแแแแแก. แแแจแแแแช แแ, แแฃ แแแแ แ แแฎแแ แแ แฃแแแ แแแแฆแแก แจแแขแงแแแแแแแแก แแ แ แแกแแ แแ แแแ แแฃแแแ, แแฃแแแแแแขแ แแแแแ แแ แแแฃแแ แแฅแแแแ. (แแฃ แซแแแแแ แแแแ แแ แ แแแแแแ แแ แแ แแแแแแแฃแ แ msg_id แแฆแแ แแ แแก แแแฅแแแแ, แจแแขแงแแแแแแแ แฃแแแ แจแแแคแฃแแแก msg_copy-แจแ).
- แจแแขแงแแแแแแแแแแก แกแขแแขแฃแกแแก แแแแแงแแคแแแแแแ แแแแฃแแแแแชแแ
แแแแแกแแแแ แแฎแแ แแก แจแแฃแซแแแ แแแแแงแแคแแแแแ แแชแแแแแก แแแแ แ แแฎแแ แแก แแแแ แ แแฎแแ แแก แแแแ แแแแแชแแแฃแแ แจแแขแงแแแแแแแแแแก แกแขแแขแฃแกแแก แจแแกแแฎแแ.
msgs_all_info#8cc0d131 msg_ids:Vector long info:string = MsgsAllInfo
- แแ แแ แจแแขแงแแแแแแแแก แกแขแแขแฃแกแแก แแแคแแ แแแแแฃแแ แแแแแงแแคแแแแแแ แแแแฃแแแแแชแแ
...
msg_detailed_info#276d3ec6 msg_id:long answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
msg_new_detailed_info#809db6df answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
- แแจแแแ แ แแแแฎแแแแ แจแแขแงแแแแแแแแแแก แฎแแแแฎแแ แแแแแแแแแก แจแแกแแฎแแ
msg_resend_req#7d861a08 msg_ids:Vector long = MsgResendReq;
แแแกแขแแแชแแฃแ แ แแฎแแ แ แแแฃแงแแแแแแแแ แแแกแฃแฎแแแก แแแแฎแแแแแแ แจแแขแงแแแแแแแแแแก แฎแแแแฎแแ แแแแแแแแแ [โฆ] - แแจแแแ แ แแแแฎแแแแ แแแกแฃแฎแแแแก แฎแแแแฎแแ แแแแแแแแแก แจแแกแแฎแแ
msg_resend_ans_req#8610baeb msg_ids:Vector long = MsgResendReq;
แแแกแขแแแชแแฃแ แ แแฎแแ แ แแแฃแงแแแแแแแแ แแแกแฃแฎแแแก แฎแแแแฎแแ แแแแแแแแแ แแแกแฃแฎแ แแแแฎแแแแแ แจแแขแงแแแแแแแแแแ [โฆ] - แจแแขแงแแแแแแแแก แแกแแแแ
แแแแแแ แ แจแแแแฎแแแแแจแ, แซแแแแ แจแแขแงแแแแแแแ msg_id-แแ, แ แแแแแแช แแฆแแ แแ แแก แแแฅแแแแ, แฎแแแแฎแแ แฃแแแ แแแแแแแแแแก. แจแแแแแ, แแแ แจแแคแฃแแฃแแแ แแกแแแก แแแแขแแแแแ แจแ:
msg_copy#e06046b2 orig_message:Message = MessageCopy;
แแแฆแแแแก แจแแแแแ, แจแแขแงแแแแแแแ แแฃแจแแแแแแ แแกแ, แแแแฅแแก แจแแคแฃแแแ แแฅ แแ แแงแแก. แแฃแแชแ, แแฃ แแแแแแแแแแแแแ แชแแแแแแแ, แ แแ แจแแขแงแแแแแแแ orig_message.msg_id แแฅแแ แแแฆแแแฃแแ, แแแจแแ แแฎแแแ แจแแขแงแแแแแแแ แแ แแฃแจแแแแแแ (แแแแแแ แแฃแแแ, แแก แแ orig_message.msg_id แแฆแแแ แแแฃแแแ). orig_message.msg_id-แแก แแแแจแแแแแแแ แแแแขแแแแแ แแก msg_id-แแ แแแแแแ แฃแแแ แแงแแก.
แแแแแ แแแแฉแฃแแแแ แแแแแช แแ แคแแฅแขแแ, แ แแ แฅ msgs_state_info
แแกแแ แแแฃแแแแแ แแแแแ TL-แแก แงแฃแ แแแ แแแแแแแก (แแแแแญแแ แแ แแแแขแแแแก แแแฅแขแแ แ, แฅแแแแ แแ แแแขแจแ enum, แฎแแแ แซแแแ แแแขแแแจแ แแ แแจแแแ). แกแแฅแแ แกแฎแแ แ แแแแจแแ. แแแแแแก แแกแแแก แ แแขแแ แแ แแก แแก แงแแแแแคแแ แ แแ แแฅแขแแแแจแ แ แแแแฃแ แแแแแแขแจแ แแฃแชแแแแแแแแ?.. แแแญแแ แแแแแ, แแแแ แแ แแฅแแแ แฌแแ แแแแแแแแแ แ แแแแ แกแแ แแแแแแ, แแฃ แแแแแแแแ แแแแแแแแฃแแแ แแแแแ แแแแ แแ แแแขแแ แแฅแขแแฃแ แ แแแแแจแ - แฐแแแแฎแแ แกแแ แแแ แก แ แ แแ แ แแแแ . แแแแ แแ แแแแฎแแแแแแ แแฅ แแ แแก แแฆแฌแแ แแแ แแ แแฎแ แแแ แแแแแแ แแแ.
แแฅแแแแ แแแแแแแแแแ แแแแก, แ แแ แแแแแแฃแแแ แแฎแแ แแ แแ แ แแฎแแแแ แฃแแแ แแแจแแคแ แแก แแ แแแแแแแแแก แจแแขแงแแแแแแแแแ, แแ แแแแ แจแแแแแฎแแก แแแแแชแแแแแ แแแ แจแแกแแฎแแ, แแแแแ แแแกแฃแฎแแแแก แจแแกแแฎแแ แแ แแแฃแ แแแแแแแ แแ แแแ. แแแแฃแแแแขแแชแแ แแ แแฆแฌแแ แก แแ แแแฎแแกแแแแแแแแแแก แแแแแแก แแ แแ แแฅแขแแแฃแ แแแแแงแแแแแแแแแแก. แแ แแแแแแ แจแแแแฎแแแแแจแ แแ . แงแแแแแแ แแแกแแแแแ แ แแก แแ แแก, แ แแ แแกแแแ แ แแแแฃแ แแ แแแแแแงแแแแแ แแคแแชแแแแฃแ แ แแแแแแขแแแแก แแแแจแ! แ แแแแ แช แฉแแแก, แแแ แฃแแฎแ แแก แ แแฆแแช, แ แแช แแ แแงแ แฆแแ แแแแฃแแแแขแแชแแแจแ. แแแแแ แแแแแแแ แ แแขแแ, แแฆแแ แแ แแก แแกแแแ แแแ แขแแแ, แ แแแแ แช TL-แแก แจแแแแฎแแแแแจแ - แแก แแ แแ แแก (แจแแแแ แแแแ) แแแแแแฃแ แแ แแแแแแ แแแฃแแ แแแฌแแแ, แแ แแแแ แแแแแแแชแแแก แแ แฅแแขแแฅแขแฃแ แแกแแแ แแแแแฃแแ แแแฌแแแ, แ.แ. แแแชแแแแแแ แแแขแ แแ แ แแแกแญแแ แแแแ แแแแแชแฎแแแแก แแแแแก แแแกแแแแแแ.
แแแแแแแ แแ แขแแแแแแแ. แ แแแแแ.
แงแแแแแคแ แแกแแแ, แแฃ แแฅแแแ แแแฎแกแแแ แแแ แแฃแแแแ แกแแ แแแ แแก แแ แฅแแขแแฅแขแฃแ แแก แจแแกแแฎแแ (แแแแฎแแแแแแแก แแแแแฌแแแแแ แแแฅแแแแแแจแ), แกแแแแแแ แแแกแแฌแงแแแ แ แแ แแแฐแงแแแแ - แแแฃแฎแแแแแแ แแแฌแแแแแแก แงแแแแ แแแ แแแขแแแกแ, แ แแแแแแช TCP-แจแ (แแ แแแแแชแแแแแ แแแฌแแแแแฃแแแ, แแ แแฅแแแ แจแแแแขแงแแแแแแแ แจแแกแแแแแแ, แแแแ แแ แแแแแชแแแแแ แแแแแแชแแแ แแ แแแแแแแก แแแแแแขแแแแ), แ แแ แแแแแกแขแฃแ แแแแแ แแแแแ MTProto-แจแ - แแ แแแแแ แ แแแ แแแขแแ. แกแแ แแแ แก แจแแฃแซแแแ แแแแแแแ แแแแแ แแแก แแ แแแแแแแแแก แแฅแแแแ แแแกแแฏแ แแ แแ แแคแ แแก แแแแแแแแ แแ แจแแแซแแแแ, แแฎแแแแ แกแฎแแแแแกแฎแแ แขแแแแก แงแแแแ แฏแแแแแก แจแแแแฆแแแแ.
แแ แแแ แแแ แ แแแจแ - แจแแขแงแแแแแแแแแแก แ แแแแแ. แฐแแแ, แแ แแ แ แแ แแแแแแแแแ แแจแแแ แ แแงแ แงแแแแแคแแ แ - แแแฃแแแกแขแฃแ แแแแแ แจแแขแงแแแแแแแ แฃแแแ แจแแแแฎแฃแแแงแ แแ แแแแแแแแแ. แแ แ แ แแ แแแก แจแแแแแ? แแ แแแแแ แ แแชแแแแก แแแก. แจแแกแแซแแแ, แแ แแแ แแแแแแแ แกแแ แแแกแแก แจแแขแงแแแแแแแแแแ แ แแแแ แแ แแแแแญแ แแก แแก แแ แแแแแแ แงแแแแ แฏแแแแแ, แแแฅแแแ, Telegram Desktop-แจแ แแ แแก แแแแแแ แแแแฎแแแแแแ 4 แ แแแ (แจแแแซแแแแ แแแขแ, แ แแแแ แช แฃแแแ แแฆแแแแจแแแ, แแแแกแแแแแก แกแแญแแ แแ แฃแคแ แ แกแแ แแแแฃแแแ แฉแแฎแแแแ แแแก แแแแก แแ แแ แฅแแขแแฅแขแฃแ แแก; แแแแแแ แแฃแแแ. แฉแแแ แแแชแแ, แ แแ แแแกแ แแแแฃแจแแ แแฆแแแ แจแแฃแซแแแแแแแ, MTProto แกแฅแแแแแแ แแแ แแแแฃแแ แ แแแแแแแแแก แขแแแแแ แแแกแจแ แแ แแ แแก แแแแแงแแแแแฃแแ).
แฒ แแขแแ แฎแแแแ แแก? แแแแแ, แกแแ แแแ แแก แแ แแแ แแแแกแขแแแแ แแแ แฃแแ แฃแแแแแงแแคแแแแ แแแแกแขแแ แจแ แกแแแแแแแแแแก, แแ แแฃแแแแช แฌแแแ แแแแแแกแแ แแ แแฃแคแแ แแ แแแแก แแ แแก แแ แแแแแแ แแแแแแขแแ แแแแแแขแแแแก. แกแแกแแฌแแ แแแแแแแแแแก แแแแ, แแแกแแแ แชแแแแแแแ แแแขแแ แแแขแแฃแแ แแแ แแแแขแแก แแแแฎแแ แชแแแแแแแก, แแฎแแแแ แแ แ แ แแแแแแ, TCP-แแแ แแแแแ แแแแแแแก แแแแแงแแแแแแ - แแแแแแ RTT แกแแ แแแ แแ แแ แจแแชแแแแ "แคแแแฏแ แแก" แแแแ (แจแแขแงแแแแแแแแแจแ) แแแฃแแแกแขแฃแ แแแแแ แแแแฎแแแแแแแก แ แแแแแแแแแก แแแฎแแแแแ. แแแฃ แแกแแแ แฃแฎแแจแ แแแ แแกแขแแแ แกแแ แแแ แแก แแแขแแแ แแแแก แจแแกแแคแแกแแแแแ - แ แแแแแแ แฉแแแแ แแแแฎแแแแ แจแแแซแแแแ แแแฆแแญแแก แแ แแแ แแฃแแแ แแ แแ แแแแแ แแแก.
แแแฃ, แแแกแแแก, แแ แ? แแฃ แแแแแ แแแแแฌแแแ TCP แแแแแ แแแ แแ แแขแแแแแแก แแแแแ, แ แแแแแแช แแฃแจแแแแก TCP-แแ, แแก แแแฃแแแแแแก แซแแแแแ แชแฃแแแ แจแแแฃแจแแแแแฃแ แแ แแขแแแแแแ.
แแแแฎ, แ แแขแแ แแ แแก แกแแญแแ แ แแ แแแ แแแขแ แ แแแ แแ แแแแแแแ, แ แแก แแแจแแแแก แแก แแแฆแแแ แแแแแก API-แแ แแแแฃแจแแแ แแแแแแแแแกแแแแก? แแฐแ, แแฎแแแแแก แฃแงแแแแ, แกแแ แแฃแแแ, แแแแ แแ แแแกแ แแแฃแงแแแแแแแแ แแแแแแแแ แฎแจแแ แแ แจแแฃแซแแแแแแแ. แ แแขแแ? แ แแแแแ แแแกแฃแฎแ แแฅแแแแ msg_id
, แ แแแแแแช แแ แแแแแแแะฐแแ แแแ แแแแแแ, แ แแแแแก แแแแแจแแแ แฏแแแแ แ แแช แจแแแซแแแแ แแแแแ แแแแแแแแ - แฃแชแแ แกแแ แแแ แ แฃแแ แก แแขแงแแแก แแแก แจแแ แแก แแ แแแก แจแแฃแกแแแแแแแแก แแแแ (แ แ แแฅแแ แฃแแแ, แฉแแแ แจแแแแแซแแแ แแแแแแแแแ แงแแแแ แฏแแแ, แ แแแแแแช แฉแแแแก แแ แแก แแฌแแงแแก แแแแแแฅแแก. แกแแ แแแ แแก แแ แแก แกแแ แแแ แแก แแแกแฃแฎแแแแแแ แแแแแแแแแแ แแแแขแแก แแแแแขแแแแ - แแแแก แแแแแแแแ แแคแแชแแแแฃแ แ แแแแแแขแแแ, แแแแ แแ แแก แแแแแแ แฃแฎแแจแ แแ แแ แแแฃแกแขแแ แแฃแคแแ แแ แแแแก แแแแ). แแกแ แ แแ, แ แแแแกแแช แแฅแแแ แแแฎแแแ แแแแแแฃแ แ แคแฃแแฅแชแแแก แแแแแซแแฎแแแแ แแแแแแแแแแแแแ, แจแแขแงแแแแแแแ แแแแแก แจแแแแแ แแขแแแแแก:
- แฌแแแก แแแแแ แ แแแจแ แแ แแแแแแแ แแแจแแคแแ แแก.
- แแแแแแจแแ
msg_id
แแ แจแแขแงแแแแแแแ แฌแแแแแ แกแฎแแ แ แแแจแ - แจแแกแแซแแ แแแแแแแกแแแแ แแแแ; แแแแแแแแ แกแแแแขแจแ. - แ) แกแแ แแแ แแ แฃแแแกแฃแฎแ MsgsAck - แจแแขแงแแแแแแแ แแแฌแแแแแฃแแแ, แฉแแแ แแแก แแจแแแ "แกแฎแแ แ แแแแแแ".
แ) แแ แแแ แแฅแแ, แ แแฆแแช แแ แแแแฌแแแ, แฃแแแกแฃแฎแ badmsg - แฉแแแ แฎแแแแฎแแ แแแแแแแแแ "แกแฎแแ แ แแแแแแ"
แ) แแ แแคแแ แแ แชแแแแแแ, แแฃแชแแแแแแแแ แจแแขแงแแแแแแแแก แฎแแแแฎแแ แแแแแแแแ แกแฎแแ แ แแแแแแ - แแแแ แแ แแฃแกแขแแ แแ แแ แแก แชแแแแแแ แ แแแแก. - แแแแแก แฃแแแกแฃแฎแ แกแแ แแแ แแ
RpcResult
- แคแแฅแขแแแ แแแ แแแกแฃแฎแ (แแ แจแแชแแแแ) - แแ แ แแฎแแแแ แแแฌแแแแแฃแแ, แแ แแแแ แแแแฃแจแแแแแฃแแ.
แแแแแ, แแแแขแแแแแ แแแแก แแแแแงแแแแแแ แจแแแซแแแแ แแแฌแแแแแ แแ แแแแแญแ แแก แแ แแแแแแ. แแก แฎแแแแ แแแจแแ, แ แแแแกแแช แจแแขแงแแแแแแแแแแก แแแแแฃแแ แแแแ แแแ แแ แแจแ แแ แกแแ แแแ แแ แฃแแแกแฃแฎแ แงแแแแแก แแ แแแแจแแ แแฆแแแ แแแแ, แแ แแแ. msg_id
. แแแแ แแ แแก แแกแแแ แฃแแ แก แแขแงแแแก แแ แจแแคแฃแแแแแ, แแฃ แ แแแ แแ แแกแฌแแ แแ แฌแแ แแแแ แแ, แแกแแแ แแแแแแแแ.
แแ แแ แแขแแแแ, แแ แแขแแฅแแแแฃแ แ แแแกแแแ แแแแแ แแแฅแแแแแแก. แแแแแชแแแแแแแแแ แแแแ แ แงแแแแ แฏแแแแ แแแแแแฎแแแก แแ แแแ แแ แแแแกแ, แแฎแแ แแแแแ แแแฎแแแแแ แชแฃแแ แ แฉแแแแกแ แแ แแ แฅแแขแแฅแขแฃแ แแก แแแแแแแแแแก - แแกแแ แแแ แแแแแจแ แฆแแ แก แแแแแ แแ แแกแแแ แแแแแฌแงแแแขแแแแแแแแก แแแฆแแแ? แแแแฎแแ แ แแขแแ แแแฃแแแ (แ แ แแฅแแ แฃแแแ แแ แ).
แ แแแ แแกแแฃแแ แแแ? แแฃ แแแแแแ "แแแแแแแแแแฃแแแแแก แจแแขแงแแแแแแแแแ แจแแขแงแแแแแแแแแแก แจแแกแแฎแแ" แแฅแแแ แแแแแช แจแแแแซแแแแ แกแแแแฃแแแ แแแ แแแแแแฅแแแ แฌแแแแแฆแแแแแแแแแแ, แ แแแแ แแชแแ "แจแแ แกแฃแแแแ แฎแแ , แจแแ แแแ แแแแแ แฉแแแแ แแ แฌแงแแแแแแ แแแแ!" (แแกแ แ แแ แฏแแ แแแฌแแ แแ แแแแฃแแแแขแแชแแ, แ แแแแ แช แแแ แแแแฃแ แแ แแแแแแแแแแแ แฃแแแ, แแแกแแแฃแแแแแแ แแ แแแแแขแแแแก แแแชแแแแก แแแแแแแแแแแ, แแแ แ แแแแแแแ แแแแ), แแแ แ แแแแแแ/แขแแแแแฃแขแแแ แฌแแแแแ แแ แแฅแขแแแฃแแ แแ แแแแแ แแขแฃแแ แกแแแแแฎแแ, แแฅ แงแแแแแคแแ แ แแแแ แฎแแแแ แชแแแแแแแ. แแแแ แแ แ แแก แแแแฃแแแแแ แแแแฃแแแแขแแชแแ แขแแแแแฃแขแแแแก แจแแกแแฎแแ?
แกแแ แแแ แ แฉแแแฃแแแแ แแ แแแแกแขแฃแ แแแก แจแแขแงแแแแแแแแก แแแฆแแแแก แแแแแแขแแกแแแ (แฉแแแฃแแแแ แแ, RPC แแแแฎแแแแ) RPC แแแกแฃแฎแแก แแแแแงแแแแแแ. แแฃ แแแกแฃแฎแ แแแแ แฎแแแก แแแแแแแแแแแจแ แแแแแก, แกแแ แแแ แแ แจแแแซแแแแ แฏแแ แแแแแแแแแก แฅแแแแ แแก แแแแแกแขแฃแ แแแ, แแแแแแแแแแแ แแ แแแแแ RPC แแแกแฃแฎแ.
แแแแแแขแ แฉแแแฃแแแแ แแ แแแแกแขแฃแ แแแก แจแแขแงแแแแแแแแก แแแฆแแแแก แกแแ แแแ แแแแ (แฉแแแฃแแแแ แแ, RPC แแแกแฃแฎแ) แจแแแแแ RPC แแแแฎแแแแแแ แแแกแขแฃแ แแก แแแแแขแแแแ, แแฃ แแก แซแแแแแ แแแแแ แแ แแ แแก แแแแแชแแแฃแแ (แแฃ แแก แแแแแ แแ แแแฃแแแ, แแแฅแแแ, แแแฆแแแแแแ 60-120 แฌแแแจแ. แแแกแแฏแ แกแแ แแแ แแแแ). แแฃแแชแ, แแฃ แแแแ แฎแแแก แแแแแแแแแแแจแ แแ แแ แกแแแแแก แแแแแแ, แ แแ แแแแแแแแแ แจแแขแงแแแแแแแแแ แกแแ แแแ แแ, แแ แแฃ แแ แแก แแแแ แ แแแแแแแแแ แแ แแฆแแแ แแแฃแแ แจแแขแงแแแแแแแแแ แกแแ แแแ แแแแ (แแแฅแแแ, 16-แแ แแแขแ), แแแแแแขแ แแแแแกแชแแแก แแแแแฃแแแแแแแ แแฆแแแ แแแแก.
... แแแแ แแแแ: แฉแแแ แแแแแแ แแ แแแชแแ แ แแแแแแ แแ แ แแแแ แแ แแก แกแแญแแ แ, แแแ, แจแแแแคแแกแแ, แ แแ แแกแ แแงแแก.
แแ แแแแแแแแก แจแแกแแฎแแ:
แแแแ แจแแขแงแแแแแแแแแ (PING/PONG)
ping#7abe77ec ping_id:long = Pong;
แแแกแฃแฎแ แฉแแแฃแแแแ แแ แฃแแ แฃแแแแแ แแแแแ แแแแจแแ แก:
pong#347773c5 msg_id:long ping_id:long = Pong;
แแก แจแแขแงแแแแแแแแแ แแ แกแแญแแ แแแแก แแฆแแแ แแแแก. แแแแแ แแแแแแชแแแ แแฎแแแแ แแแแแแก แกแแแแกแฃแฎแแ, แฎแแแ แแแแแแก แแแฌแงแแแ แจแแกแแซแแแแแแแ แแ แแแ แแฎแแ แแก แแแแ .
แแแแแแแแฃแแ แแแแจแแ แแก แแแฎแฃแ แแ + PING
ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;
แแฃแจแแแแก แแแแแแก แแกแแแแกแแ. แแแ แแ แแแแกแ, แแแแก แแแฆแแแแก แจแแแแแ, แกแแ แแแ แ แแฌแงแแแก แขแแแแแ แก, แ แแแแแแช แแแฎแฃแ แแแก แแแแแแแแ แ แแแแจแแ แก disconnect_delay แฌแแแแแจแ, แแฃ แแ แแแแฆแแแก แแแแแ แขแแแแก แแฎแแ แจแแขแงแแแแแแแแก, แ แแแแแแช แแแขแแแแขแฃแ แแ แแฆแแแแแแก แงแแแแ แฌแแแ แขแแแแแ แก. แแฃ แแแแแแขแ แแแแแแแแก แแ แแแแแแแก แงแแแแ 60 แฌแแแจแ แแ แแฎแแ, แแแแแแแแแ, แแแ แจแแแซแแแแ แแแแงแแแแก disconnect_delay แขแแแ 75 แฌแแแ.
แแแ แแ แฎแแ ?! 60 แฌแแแจแ แแแขแแ แแแแแ แจแแแ แกแแแแฃแ แจแ, แฉแแแแแ แแ แแแงแแแแก แแแแแแ แแแก แแ แแกแแ แแแแแ แแแแก แแแแจแแ แ แแแแ แแแจแ. 120 แฌแแแจแ, แกแแแแ แแแ แแ แฎแแ แ, แแก แแแแ แกแฎแแแกแแแ แแ แแแแจแแ แ แแแแ แแแแแแแแแ แแแฌแงแแแแ. แแแ แแแ, แแแกแแแแแแ, แกแแแแแ แแแ แแแแ แคแแฎแแแ - "แแ แแแแแแ แแแ แแก แฎแแ, แแแแ แแ แแ แแแชแ แกแแ แแ แแก", แแ แแก แแแแแแก แแแแแ แแแแ แแ TCP_NODELAY แแแ แแแแขแ, แ แแแแแแช แแแแแฃแแแแแแ แแงแ แแแขแแ แแฅแขแแฃแแ แแฃแจแแแแแกแแแแก. แแแแ แแ, แฃแแแชแ แแแแ, แแแแแแแ แแแกแ แแแแฃแแแกแฎแแแแ แแแแจแแแแแแแ - 200 แแแแแฌแแแ. แแฃ แแแแแแแแแ แแกแฃแ แ แแกแแแแกแ แ แแแแก แแแแแกแแฎแแ แแ แจแแกแแซแแ แฌแงแแแแ แแแแแขแแ แแแแแแแ - แแแ แแแ, แแแแแแแ, แกแฃแ แแชแแ แ 5 แฌแแแแ, แแ แ แแแแ แแช แแ แฃแแแ แแงแแก แจแแขแงแแแแแแแแแแก โแแแแฎแแแ แแแแแก แแ แแคแก ...โ แแ แ แฃแแ แแก. แแแแ แแ แแแขแ แแ แ.
แแ แแแแแก, แแแแแแแ. แแแฃ TCP แแแแจแแ แแก แกแแชแแชแฎแแแกแฃแแแ แแแแแแแก แจแแแแฌแแแแ. แกแแกแแชแแแแ, แแแแ แแ แแแแฎแแแแแแ 10 แฌแแแก แฌแแ แแแแฌแแ แ แแ แแขแแแฃแแ แขแแฅแกแขแ แฉแแแแ แคแแแฃแแขแแขแแก แฐแแกแขแแแแก แแแกแแแฏแแ แแก แจแแกแแฎแแ - แแฅ แแแขแแ แแแแ แกแแ แแแ แ แแแแแแขแแกแแแแแช แแแฆแแก แแ แแ แ แแแ แแฅแแ. แแแแ แแ แแแกแแแ แแฃแ แกแแก แกแขแฃแแแแขแแแ แแ แแแ แแ แกแแแ แแแจแแ แแกแ แแคแแกแ แแแแ แแ, แแ แ? ..
แแแ แแแแ, แแชแแ แ แกแแแแแแแแแแแแแแ แแ แแแ แแแ. TCP แแแแจแแ แ, แแแแแขแแแแก แแแชแแแแก แแ แแ แกแแแแแแก แจแแแแฎแแแแแจแ, แจแแแซแแแแ แแ แกแแแแแแแก แ แแแแแแแแ แแแแ แแก แแแแแแแแแแแจแ. แแก แแ แแก แแแ แแแช แแ แชแฃแแแช, แแแแแแแแ แแแแแแแแแแ แ. แแกแ, แแฃ แกแแ แแแ แแแ SSH แแแแจแแ แ แแฅแแแแ แแแฎแกแแแแ, แแแแฅแ แแแแแแฃแขแแ แแแแ, แแแแแขแแแ แแ แแแแแก แ แแฃแขแแ แ, แแแแ แฃแแแ แจแแแก แแแแแแแก - แแ แกแแ แแแ แแก แแแจแแแแแแ แกแแกแแ แแ แแแแ แฆแแ (แแ แแคแแ แ แแแแแฌแแ แแ, แแแแแขแแแ แแ แแงแ) แแแกแแฎแแ แฎแแแแแ. แชแฃแแแ, แแฃ แกแแ แแแ แแ แแแแกแแแแ แแแแแแขแแ, แแแแแแฃแแ แแแแแแแก แ แแกแฃแ แกแแแก (แแแแแ แฏแแแ Postgres!) แแ แแแแแแขแแก แฐแแกแขแ แจแแแซแแแแ แแแแ แฎแแแก แฌแแ แแแแแแขแแแ แแ - แแแแ แแ แฉแแแ แแแแก แจแแกแแฎแแ แแ แแแชแแ.
แฉแแขแแก/IM แกแแกแขแแแแแ แแแแ แ แจแแแแฎแแแแแก แแแฃแแแแแก แกแฎแแ, แแแแแขแแแแแ แแแแแแแก แแแแ - แแแแแแ แกแขแแขแฃแกแแแ. แแฃ แแแแฎแแแ แแแแแ โแแแแแ แแโ, แแฃแชแแแแแแแแ แแแแก แจแแกแแฎแแ แแแแแแแกแแฃแแ แแแแก แแชแแแแแก. แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ, แแฅแแแแ แจแแชแแแแ, แ แแแแแแช Jabber-แแก แจแแแฅแแแแแแแแ แแแฃแจแแแก (แแ แแแแแแกแฌแแ แแก 20 แฌแแแก แแแแแแแแแแแจแ) - แแแแฎแแแ แแแแแแ แแแแแจแ, แแแแ แแ แแกแแแ แแแ แซแแแแแแ แแแกแแแแก แจแแขแงแแแแแแแแแแก แฌแแ แแก, แแแแฉแแแแ, แ แแ แแก แแ แแก แแแแแแ (แ แแช แแกแแแ แแแแแแแแ แแแแแแ แแ แแ แ แแแแแแแแ แฌแฃแแแก แฌแแ. แจแแกแแแแแแ แแฆแแแแฉแแแแก). แแ แ, TCP_KEEPALIVE แแแ แแแแขแ, แ แแแแแแช แแแแ แแแแแแแแก แแ แแกแแแก, แแฃ แ แแแแ แแฃแจแแแแก TCP แขแแแแแ แ, แฉแแแแแ แกแแแแ (แแแแฃแ แ แแแแจแแแแแแแแแแก แแแงแแแแแแ, แ แแแแ แแชแแ แแแแแแ แฌแแแ), แแฅ แแ แแแแแแฎแแแ แแแ - แแฅแแแ แฃแแแ แแแ แฌแแฃแแแแ, แ แแ แแ แ แแฎแแแแ OS แแแ แแแ แแแแฎแแแ แแแแแก แแแแ แแขแ แชแแชแฎแแแแ, แแแแ แแ แแกแแแ แแแ แแแแฃแ แแ แคแฃแแฅแชแแแแแ แแแก, แแแกแฃแฎแแก แแแชแแแแก แแ แจแแฃแซแแแ แแ แแแแแ แแแแแแแชแแแช (แ แแแแ แคแแฅแ แแแ, แแแ แแแแงแแแแแ? Telegram Desktop Ubuntu 18.04-แแ แแ แแแ แแฎแแ แแแแแจแแแ).
แแแแขแแ แฃแแแ แแแแแ แกแแ แแแ แแ แแแแแแขแ, แแ แแ แ แแแ แแฅแแ - แแฃ แแแแแแขแ แแแแก แแแแแแแก, แแแแจแแ แแก แแแฌแงแแแขแแกแแก, แแแแแ แแ แแฅแแแแ แแแฌแแแแแฃแแ, แแแแแแ แแ แแ แแก แแแฆแฌแแฃแแ.
แแ แ แแก แแฎแแแแแ Telegram-แจแ? แงแแแแแคแแ แ แแฃแกแขแแ แแแ แแฅแแแแ! แแกแ, แ.แ. แคแแ แแแแฃแ แแ, แ แ แแฅแแ แฃแแแ, แแ แแแ แแฎแแ แแก แจแแฃแซแแแ แแ แแแแแแแแก แแแแแ. แแ แแฅแขแแแแจแ แแแแแแขแแแ แงแแแแ แฏแแแก แแงแแแแแแ ping_delay_disconnect
, แ แแแแแแช แกแแ แแแ แแ แแขแแ แแแก แขแแแแแ แก. แแแแแจแ, แแแแแแขแแก แกแแฅแแ แแ แแ แแก, แแแแแฌแงแแแขแแก แ แแแแแ แฎแแแก แกแฃแ แก แแฅ แแชแฎแแแ แแก แแแแแแก แแแ แแจแ. แกแแ แแแ แแ, แแแกแ แแแขแแแ แแแแแแ แแแแแแแแแแ แ, แฃแแแ แแชแแก. แแแแ แแ, แ แ แแฅแแ แฃแแแ, แแฃ แแ แแแชแแแแแแ แ แแกแฃแ แกแแแ, แแแจแแ แแกแแแ แแแแแ แแ แแแ แแแ แแขแ แแแแแฅแแ แแ แงแแแแ แฏแแแ แฉแแแแแแ แแแแ ...
แ แแแแ แฃแแแ แงแแคแแแแงแ แแแแ แแแฅแขแแแฃแแ?
แแ แแฏแแ แ, แ แแ แแแแแแฆแแแจแแฃแแ แคแแฅแขแแแ แกแแแแแแ แแแแแแ แแแฃแแแแแแก Telegram / VKontakte แแฃแแแแก แแ แช แแฃ แแกแ แแแฆแแ แแแแแแขแแแชแแแแ แแแแแแฃแขแแ แฃแแ แฅแกแแแแแแก แกแแขแ แแแกแแแ แขแ (แแ แแแแแแ) แแแแแก แกแคแแ แแจแ แแ แแแ แแแแแ แแแแแแคแแแแชแแแแ แจแแกแแแแแแก แกแแแแแฎแแแจแ.
แ แแขแแ แแฆแแแฉแแแ แแก แแกแ แ แแฃแแ แแ แ แแแแ แจแแฃแซแแแแ Telegram-แแก แแ แฅแแขแแฅแขแแ แแแก แฌแแแแแฆแแแแแแแแก แแแฌแแแ? แแก แคแแฅแขแ, แ แแ แแกแแแ แชแแแแแแแแแ แกแแกแแแก แแแแแแแแแก, แ แแแแแแช แแแแแ แฉแแแ TCP แแแแจแแ แก, แฌแงแแแขแก, แแแฃ แแก, แ แแช แแฎแแ แแ แแแแแแฌแแแแก, แแแแแแแแแแแ แแแแแฌแแแแแ. แแแแแ, UDP แขแ แแแกแแแ แขแแก แแแแแแแแแช แกแชแแแแก, แแฃแแชแ แแแฃแญแแ แแแ แแ แแแแขแแแแก (แแแแขแแ แชแแ แแแแแ แแแแฃแแแแขแแชแแ - แกแแขแ แแแแฎแ แแ แแคแแ แ แแงแ). แแแแ แแ แแแแก แแแแ, แ แแ แแ แแแกแแแ, แแฃ แ แแแแ แแฃแจแแแแก แฅแกแแแแแ แแแแแแแ แแ TCP แแแแแ แแขแฃแแแ, แกแแ แจแแแแซแแแแ แแแแงแ แแแแ แแแก แแ แกแแ แฃแแแ แแแแแแแแ แแก แกแแแฃแแแ แแแแก (แแ แ แแแแ ), แแ แแชแแแแแแแก แแแแ, แแก แแแแแแแจแแ แแ แแ แแแขแแแ แแคแแแกแแแ โแแ แแ แแแแ แ แแ แแแแ. แฉแแขแแแ แแ แแ แฅแแแโ - แแกแแแ แแแแแ แแฆแแแฉแแแ.
แ แแแแ แฃแแแ แงแแคแแแแงแ? แแแแแแแแแแ แ แแฅแแแแ, แ แแ msg_id
แแ แแก แแ แแแก แแแแแแญแแ, แ แแแแแแช แแ แแแขแแแ แแคแแฃแแแ แแฃแชแแแแแแแแ แแแแแแแ แแแแแ แจแแขแแแแแแก แแแแแแแ แแกแแชแแแแแแแ, แแแกแแ แฃแแแแแแฃแ แ แแแแแขแแคแแแแขแแ แแก แคแฃแแฅแชแแแก แแแแแแ แแแ แจแแชแแแแแ. แแแแขแแ, แแแแแแแแ แ แแ แฅแแขแแฅแขแฃแ แแก แแแแแแ แแ แจแแชแแแแก แแแ แแจแ (แ แแแแกแแช แแฅแแแแแ แแแแแฎแแแแแแแก แแแแ, แแก แแ แแก แแแฆแแแ แแแแแก API แแแแ แแแกแขแแแแก แแ แกแแ แแแก แกแฎแแ แแแฌแแแแกแแแแก), แฃแแแ:
- แกแแ แแแ แ, แ แแแแแแช แคแแแแก TCP แแแแจแแ แก แแแแแแขแแแ, แแฆแแแก แแแกแฃแฎแแกแแแแแแแแแก - แแฃ แแฅแแแ แแแแแแแแแแ แกแแแแขแก, แแแฎแแแ, แแแแแแกแขแฃแ แแ, แแแแแฃแจแแแแ แแ แแแแแ แฃแแแ แจแแชแแแแ, แแแ แแแแก แแแ แแจแ. แแแจแแ แแแแแกแขแฃแ แแแ แแ แแ แแก id-แแแแก แแแฅแขแแ แ, แแ แแแแ แฃแแ แแแแ "แแแแ แแแฆแแแฃแแ seq_no" - แฃแแ แแแแ แ แแชแฎแแ, แ แแแแ แช TCP-แจแ (แแ แ แแแแแ แ - แแฅแแแแ แกแแแฃแแแ แ แแแแแแแแแแ แแแ แแ แแแแแกแขแฃแ แแแฃแแ). แฉแแแ แงแแแแแแแแก แกแฎแแแแแแ แแแ แ, แแ แ?
- แแแแแแแ แแแแแ แจแแขแแแแแแก แแแแแแแ แแชแแแแแแก แแ แแแก แจแขแแแแ แฎแแแแ แชแแแแ แแแแ, a la nonce. แจแแแแฌแแแแฃแแแ, แแแแ แแ แกแฎแแ แแ แแคแแ แ แแแแแ แแแแแแ. แกแแแแแ แแกแแ แแ
uint32
- แแฃ แฉแแแแ แแแ แแแ แงแแแแ แแแฎแแแแ แแฆแแจแ แแชแแแแแ, แจแแแแแซแแแ 16 แแแขแ แแแแแแแฌแแแแ แแแแแแแแ แ แแ แแแก แแแแแ แแแฌแแแแก แฅแแแแ แแแขแแแแ, แแแแแ แฉแแแ - แฌแแแแก แฌแแแแ แแแฌแแแแ (แ แแแแ แช แแฎแแแ). - แฃแแฃแฆแแ
msg_id
แกแแแ แแแ - แแแฅแแแแแแแ แแแแฎแแแแแแแก แแแแแแกแฎแแแแแแแแ แแแแแกแแแ แแกแแ, แแ แกแแแแแก, แแแ แแแ แ แแแจแ, แแแแแแขแแก ID แแ แแแแ แแช, แกแแกแแแก id แแ แแแแ แจแแแ แแแแ. แจแแกแแแแแแกแแ, แ แแแแ แช แแแแฎแแแแแก แแแแแขแแคแแแแขแแ แ, แกแแแแแ แแกแแ แแฎแแแแ แแ แแseq_no
.
แแกแแแ แแ แแ แแก แกแแฃแแแแแกแ แแแ แแแแขแ, แกแ แฃแแ แจแแแแฎแแแแแแแแ แจแแแซแแแแ แแงแแก แแแแแขแแคแแแแขแแ แ - แแก แฃแแแ แแแแแแแ แแแฆแแแ แแแแแก API-แจแ แจแแขแงแแแแแแแแก แแแแแแแแแกแแก, แกแฎแแแแ แจแแ แแก. แฃแแแแแกแ แแฅแแแแแแ แแ แฅแแขแแฅแขแฃแ แ แแแแแกแแแแแแ แแแกแแแฃแขแฃแ แแแแ แแแแแแแแแแแแแแ, แแแแ แแ แแก แกแฎแแ แแแฌแแแแก แแแแแ แแ แแ แ แแ แแแกแขแแก.
API?
แขแ-แแแแ! แแกแ แ แแ, แขแแแแแแแแ แแ แงแแแแ แฏแแแแแ แกแแแกแ แแแแแ แแแแแแก แจแแแแแ, แฉแแแ แกแแแแแแแ แจแแแแแซแแ แแแแแแแแแแแแแ แแแแแกแแแแ แ แแแแฎแแแแ แกแแ แแแ แแ แแ แแแแแแฆแ แแแแแกแแแแ แ แแแกแฃแฎแ แแแแแ, แแกแแแ แแแแแฆแแ แแแแแฎแแแแแแ แกแแ แแแ แแกแแแ (แแ แ แแแแฎแแแแแก แแแกแฃแฎแแ, แแแแ แแ แแก แแแแแ แแแแแแแแแแก, แ แแแแ แแชแแ PUSH, แแฃ แแแแแ แแกแ แฃแคแ แ แแแแแแ).
แงแฃแ แแแฆแแแ, แแฎแแ แกแขแแขแแแจแ แแฅแแแแ แแ แแแแแ แแ แแแ แแแก แแแแแแแแ! (แแแแแแแก, แแแแช แแ แแชแแแแก แกแแแขแแฅแกแก, แแแ แแแแ แแ แแฃแแแแขแ, แ แแแแแแช แแแฃแ แแฎแแแก แแ แแก แแแแแฅแขแแก แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แ, แแแแ แ แแ แแก แแแกแ แแแแกแ):
2019.10.24 12:00:51 $1 = {
'cb' => 'TeleUpd::__ANON__',
'out' => bless( {
'filter' => bless( {}, 'Telegram::ChannelMessagesFilterEmpty' ),
'channel' => bless( {
'access_hash' => '-6698103710539760874',
'channel_id' => '1380524958'
}, 'Telegram::InputPeerChannel' ),
'pts' => '158503',
'flags' => 0,
'limit' => 0
}, 'Telegram::Updates::GetChannelDifference' ),
'req_id' => '6751291954012037292'
};
2019.10.24 12:00:51 $1 = {
'in' => bless( {
'req_msg_id' => '6751291954012037292',
'result' => bless( {
'pts' => 158508,
'flags' => 3,
'final' => 1,
'new_messages' => [],
'users' => [],
'chats' => [
bless( {
'title' => 'ะฅัะปะธะฝะพะผะธะบะฐ',
'username' => 'hoolinomics',
'flags' => 8288,
'id' => 1380524958,
'access_hash' => '-6698103710539760874',
'broadcast' => 1,
'version' => 0,
'photo' => bless( {
'photo_small' => bless( {
'volume_id' => 246933270,
'file_reference' => '
'secret' => '1854156056801727328',
'local_id' => 228648,
'dc_id' => 2
}, 'Telegram::FileLocation' ),
'photo_big' => bless( {
'dc_id' => 2,
'local_id' => 228650,
'file_reference' => '
'secret' => '1275570353387113110',
'volume_id' => 246933270
}, 'Telegram::FileLocation' )
}, 'Telegram::ChatPhoto' ),
'date' => 1531221081
}, 'Telegram::Channel' )
],
'timeout' => 300,
'other_updates' => [
bless( {
'pts_count' => 0,
'message' => bless( {
'post' => 1,
'id' => 852,
'flags' => 50368,
'views' => 8013,
'entities' => [
bless( {
'length' => 20,
'offset' => 0
}, 'Telegram::MessageEntityBold' ),
bless( {
'length' => 18,
'offset' => 480,
'url' => 'https://alexeymarkov.livejournal.com/[url_ะฒััะตะทะฐะฝ].html'
}, 'Telegram::MessageEntityTextUrl' )
],
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'text' => '???? 165',
'data' => 'send_reaction_0'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'data' => 'send_reaction_1',
'text' => '???? 9'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'message' => 'ะ ะฒะพั ะธ ะฝะพะฒะฐั ะบะฝะธะณะฐ!
// [ัะตะบัั ัะพะพะฑัะตะฝะธั ะฒััะตะทะฐะฝ ััะพะฑ ะฝะต ะฝะฐัััะฐัั ะฟัะฐะฒะธะป ะฅะฐะฑัะฐ ะพ ัะตะบะปะฐะผะต]
ะฝะฐะฟะตัะฐัะฐั.',
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'date' => 1571724559,
'edit_date' => 1571907562
}, 'Telegram::Message' ),
'pts' => 158508
}, 'Telegram::UpdateEditChannelMessage' ),
bless( {
'pts' => 158508,
'message' => bless( {
'edit_date' => 1571907589,
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'date' => 1571807301,
'message' => 'ะะพัะตะผั ะั ััะธัะฐะตัะต Facebook ะฟะปะพั
ะพะน ะบะพะผะฟะฐะฝะธะตะน? ะะพะถะตัะต ะฟัะพะบะพะผะผะตะฝัะธัะพะฒะฐัั? ะะพ-ะผะพะตะผั, ััะพ ัะธะบะฐัะฝะฐั ะบะพะผะฟะฐะฝะธั. ะะตะท ะดะพะปะณะพะฒ, ั ั
ะพัะพัะตะน ะฟัะธะฑัะปัั, ะฐ ะตัะปะธ ัะตัะฐั ะดะธะฒั ะฟะปะฐัะธัั, ัะพ ะธ ะตัะต ะผะพะณัั ะฝะตั
ะธะปะพ ะฟะพะดะพัะพะถะฐัั.
ะะปั ะผะตะฝั ะพัะฒะตั ัะพะฒะตััะตะฝะฝะพ ะพัะตะฒะธะดะตะฝ: ะฟะพัะพะผั ััะพ Facebook ะดะตะปะฐะตั ัะถะฐัะฝัะน ะฟะพ ะบะฐัะตััะฒั ะฟัะพะดัะบั. ะะฐ, ั ะฝะตะณะพ ะผะพะฝะพะฟะพะปัะฝะพะต ะฟะพะปะพะถะตะฝะธะต ะธ ะดะฐ, ะธะผ ะฟะพะปัะทัะตััั ะพะณัะพะผะฝะพะต ะบะพะปะธัะตััะฒะพ ะปัะดะตะน. ะะพ ะผะธั ะฝะต ััะพะธั ะฝะฐ ะผะตััะต. ะะพะณะดะฐ-ัะพ ะฒะปะฐะดะตะปััะฐะผ ะะพะบะธะธ ะฑัะปะพ ัะผะตัะฝะพ ะพั ะฟะตัะฒะพะณะพ ะะนัะพะฝะฐ. ะะฝะธ ะดัะผะฐะปะธ, ััะพ ะปัััะต ะะพะบะธะธ ะฝะธัะตะณะพ ะฑััั ะฝะต ะผะพะถะตั ะธ ะพะฝะฐ ะฝะฐะฒัะตะณะดะฐ ะพััะฐะฝะตััั ัะฐะผัะผ ัะดะพะฑะฝัะผ, ะบัะฐัะธะฒัะผ ะธ ัะฒััะดัะผ ัะตะปะตัะพะฝะพะผ - ะธ ะดะพะปั ััะฝะบะฐ ััะพ ะบัะฐัะฝะพัะตัะธะฒะพ ะดะตะผะพะฝัััะธัะพะฒะฐะปะฐ. ะขะตะฟะตัั ะธะผ ะฝะต ัะผะตัะฝะพ.
ะะพะฝะตัะฝะพ, ัะตะฟัะธะปะพะธะดั ัะพะฟัะพัะธะฒะปััััั ะฝะฐะฟะพัั ะผะพะปะพะดัั
ะณะตะฝะธะตะฒ: ัะฐะบ ะฆัะบะตัะฑะตัะณะพะผ ะฑัะป ะฟะพะถัะฐะฝ Whatsapp, ะฟะพัะพะผ Instagram. ะะพ ะฒัั ะธะผ ะฝะต ะฟะพะถัะฐัั, ะะฐัะฐ ะััะพะฒ ะฝะต ะฟัะพะดะฐัััั!
ะขะฐะบ ะฑัะดะตั ะธ ั ะคะตะนัะฑัะบะพะผ. ะะตะปัะทั ะฒัั ะฒัะตะผั ะดะตะปะฐัั ะณะพะฒะฝะพ. ะัะพ-ัะพ ะบะพะณะดะฐ-ัะพ ัะดะตะปะฐะตั ั
ะพัะพัะธะน ะฟัะพะดัะบั, ะบัะดะฐ ะฒัั ะธ ัะนะดัั.
#ัะพััะตัะธ #facebook #ะฐะบัะธะธ #ัะตะฟัะธะปะพะธะดั',
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'data' => 'send_reaction_0',
'text' => '???? 452'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'text' => '???? 21',
'data' => 'send_reaction_1'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'entities' => [
bless( {
'length' => 199,
'offset' => 0
}, 'Telegram::MessageEntityBold' ),
bless( {
'length' => 8,
'offset' => 919
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'offset' => 928,
'length' => 9
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'length' => 6,
'offset' => 938
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'length' => 11,
'offset' => 945
}, 'Telegram::MessageEntityHashtag' )
],
'views' => 6964,
'flags' => 50368,
'id' => 854,
'post' => 1
}, 'Telegram::Message' ),
'pts_count' => 0
}, 'Telegram::UpdateEditChannelMessage' ),
bless( {
'message' => bless( {
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'data' => 'send_reaction_0',
'text' => '???? 213'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'data' => 'send_reaction_1',
'text' => '???? 8'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'views' => 2940,
'entities' => [
bless( {
'length' => 609,
'offset' => 348
}, 'Telegram::MessageEntityItalic' )
],
'flags' => 50368,
'post' => 1,
'id' => 857,
'edit_date' => 1571907636,
'date' => 1571902479,
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'message' => 'ะะพัั ะฟัะพ 1ะก ะฒัะทะฒะฐะป ะฑััะฝัั ะฟะพะปะตะผะธะบั. ะงะตะปะพะฒะตะบ 10 (ะฒะธะดะธะผะพ, 1ั-ะฟัะพะณัะฐะผะผะธััะพะฒ) ะตะดะธะฝะพะดััะฝะพ ะฝะฐะฟะธัะฐะปะธ:
// [ัะตะบัั ัะพะพะฑัะตะฝะธั ะฒััะตะทะฐะฝ ััะพะฑ ะฝะต ะฝะฐัััะฐัั ะฟัะฐะฒะธะป ะฅะฐะฑัะฐ ะพ ัะตะบะปะฐะผะต]
ะฏ ะฑั ะดะพะฑะฐะฒะธะป, ััะพ ะฑะปะตััััะฐั ั 1ะก ะดะธัััะธะฑััะธั, ะฐ ะผะฐัะบะตัะธะฝะณ... ะฝั, ัะฐะบะพะต.'
}, 'Telegram::Message' ),
'pts_count' => 0,
'pts' => 158508
}, 'Telegram::UpdateEditChannelMessage' ),
bless( {
'pts' => 158508,
'pts_count' => 0,
'message' => bless( {
'message' => 'ะะดัะฐะฒััะฒัะนัะต, ัะฐััะบะฐะถะธัะต, ะฟะพะถะฐะปัะนััะฐ, ัะตะผ ะฒัะตะดะธั ัะบะพะฝะพะผะธะบะต 1ะก?
// [ัะตะบัั ัะพะพะฑัะตะฝะธั ะฒััะตะทะฐะฝ ััะพะฑ ะฝะต ะฝะฐัััะฐัั ะฟัะฐะฒะธะป ะฅะฐะฑัะฐ ะพ ัะตะบะปะฐะผะต]
#ัะพัั #it #ัะบะพะฝะพะผะธะบะฐ',
'edit_date' => 1571907650,
'date' => 1571893707,
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'flags' => 50368,
'post' => 1,
'id' => 856,
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'data' => 'send_reaction_0',
'text' => '???? 360'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'data' => 'send_reaction_1',
'text' => '???? 32'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'views' => 4416,
'entities' => [
bless( {
'offset' => 0,
'length' => 64
}, 'Telegram::MessageEntityBold' ),
bless( {
'offset' => 1551,
'length' => 5
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'length' => 3,
'offset' => 1557
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'offset' => 1561,
'length' => 10
}, 'Telegram::MessageEntityHashtag' )
]
}, 'Telegram::Message' )
}, 'Telegram::UpdateEditChannelMessage' )
]
}, 'Telegram::Updates::ChannelDifference' )
}, 'MTProto::RpcResult' )
};
2019.10.24 12:00:51 $1 = {
'in' => bless( {
'update' => bless( {
'user_id' => 2507460,
'status' => bless( {
'was_online' => 1571907651
}, 'Telegram::UserStatusOffline' )
}, 'Telegram::UpdateUserStatus' ),
'date' => 1571907650
}, 'Telegram::UpdateShort' )
};
2019.10.24 12:05:46 $1 = {
'in' => bless( {
'chats' => [],
'date' => 1571907946,
'seq' => 0,
'updates' => [
bless( {
'max_id' => 141719,
'channel_id' => 1295963795
}, 'Telegram::UpdateReadChannelInbox' )
],
'users' => []
}, 'Telegram::Updates' )
};
2019.10.24 13:01:23 $1 = {
'in' => bless( {
'server_salt' => '4914425622822907323',
'unique_id' => '5297282355827493819',
'first_msg_id' => '6751307555044380692'
}, 'MTProto::NewSessionCreated' )
};
2019.10.24 13:24:21 $1 = {
'in' => bless( {
'chats' => [
bless( {
'username' => 'freebsd_ru',
'version' => 0,
'flags' => 5440,
'title' => 'freebsd_ru',
'min' => 1,
'photo' => bless( {
'photo_small' => bless( {
'local_id' => 328733,
'volume_id' => 235140688,
'dc_id' => 2,
'file_reference' => '
'secret' => '4426006807282303416'
}, 'Telegram::FileLocation' ),
'photo_big' => bless( {
'dc_id' => 2,
'file_reference' => '
'volume_id' => 235140688,
'local_id' => 328735,
'secret' => '71251192991540083'
}, 'Telegram::FileLocation' )
}, 'Telegram::ChatPhoto' ),
'date' => 1461248502,
'id' => 1038300508,
'democracy' => 1,
'megagroup' => 1
}, 'Telegram::Channel' )
],
'users' => [
bless( {
'last_name' => 'Panov',
'flags' => 1048646,
'min' => 1,
'id' => 82234609,
'status' => bless( {}, 'Telegram::UserStatusRecently' ),
'first_name' => 'Dima'
}, 'Telegram::User' )
],
'seq' => 0,
'date' => 1571912647,
'updates' => [
bless( {
'pts' => 137596,
'message' => bless( {
'flags' => 256,
'message' => 'ะกะพะทะดะฐัั ะดะถะตะนะป ั ะธะผะตะฝะตะผ ะฟะพะบะพัะพัะต ??',
'to_id' => bless( {
'channel_id' => 1038300508
}, 'Telegram::PeerChannel' ),
'id' => 119634,
'date' => 1571912647,
'from_id' => 82234609
}, 'Telegram::Message' ),
'pts_count' => 1
}, 'Telegram::UpdateNewChannelMessage' )
]
}, 'Telegram::Updates' )
};
แแแแฎ, แกแแแชแแแแฃแ แแ แแ แ แกแแแแแแ แแก แฅแแแจ - แแฃ แแ แฌแแแแแแแฎแแแ, แฌแแแแ แแ แแแแแแแแ!
แแฐ, แแแ~~... แ แแก แฐแแแแก? แ แแฆแแช แซแแแแแ แแแชแแแแโฆ แแฅแแแ แแก แแ แแก แขแแแแฃแ แ Web API-แแก แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แ JSON-แจแ, แแแ แแ แแแแกแ, แ แแ แแแแกแแแ แแงแ แแแแแแ แแแฃแแ แแแแแฅแขแแแแ?..
แแกแ แแแแแแแก... แ แ แแ แแก แแก, แแแฎแแแแแแแ?.. แแแแแแ แซแแแแกแฎแแแแ - แแ แฉแแแ แจแแแฉแแ แแแ, แ แแ แแแแแกแแแแแ, แกแแแแช แแแ แแ แแแ แแแแกแขแแแ แแฎแแแฎแแ แแฌแงแแแ?.. แฃแแ แแแแ JSON HTTPS-แแ แแแแแแ แแ แแฅแแแแ?! แแ แ แ แแแแแฆแแ แกแแแแชแแแแ? แฆแแ แแ แแฃ แแ แ แแก แซแแแแกแฎแแแแ?
แแแแแ แจแแแแคแแกแแ แ แ แแแแแชแ TL+MTProto แแ แ แ แแแขแแ แแแขแแแแแแ แจแแกแแซแแแแแแ. แแกแ, HTTP แแแแฎแแแแ-แแแกแฃแฎแ แชแฃแแแ, แแแแ แแ แแแแแช แ แแฆแแช TLS-แแ แแแขแ?
แแแแแแฅแขแฃแ แ แกแแ แแแแแแแชแแ. แแ แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แแก แแแแแฎแแแกแแก, JSON-แแก แแกแแแแกแ, แแฎแกแแแก, แ แแ แแ แกแแแแแก แแแกแ แแ แแแแแ แแแ แแแแขแแแ. แแแแแ แแฆแแแแจแแแ MsgPack, แ แแแแ แช แแ แแกแแแแแ แแกแแ แแแคแแ แแแแแแแ, แแแแ แแ แแ แกแแแแแก, แแแแแแแแแ, CBOR - แกแฎแแแแ แจแแ แแก, แกแขแแแแแ แขแ แแฆแฌแแ แแแแ
- 25 + 256 - แแฃแแแแแแขแ แฎแแแแแแก แจแแชแแแ แฎแแแแก แแแแ แแก แแแแแแแแแ, แแกแแแ แแแคแ แจแแแฃแแจแแแก แแแแแแ
- 26 - แกแแ แแฃแแ Perl แแแแแฅแขแ แแแแกแแก แกแแฎแแแแ แแ แแแแกแขแ แฃแฅแขแแ แแก แแ แแฃแแแแขแแแแ
- 27 - แกแแ แแฃแแ แแแแแ แแแแแฃแแแแแแแแ แแแแแฅแขแ แขแแแแก แกแแฎแแแแ แแ แแแแกแขแ แฃแฅแขแแ แแก แแ แแฃแแแแขแแแแ
แแกแ, แแ แแชแแแ แแแแแ แแแแแชแแแแแแก แกแแ แแแแแแแชแแ TL-แจแ แแ CBOR-แจแ, แกแขแ แแฅแแแแแแก แแ แแแแแฅแขแแแแก แจแแคแฃแแแแ แฉแแ แแฃแแ. แจแแแแแ แแแแฌแงแ แแแแกแฎแแแแแแฃแแ CBOR-แแก แกแแกแแ แแแแแแ แกแแแฆแแช แแแแแแแแขแแแแ:
cborlen=1039673 tl_len=1095092
แแฅแแแแ แแแแแแแแแแ แ, แแแกแแแแ: แแ แกแแแแแก แแ แกแแแแแแ แฃแคแ แ แแแ แขแแแ แคแแ แแแขแแแ, แ แแแแแแแช แแ แแฅแแแแแแแแ แแแ แกแแแฅแ แแแแแแชแแแก แฃแแแแ แแกแแแแก แแ แฃแชแแแแ แแแแแขแแคแแแแขแแ แแก แแ แแแแแแแก, แจแแแแ แแแแแ แแคแแฅแขแฃแ แแแแ.
แกแฌแ แแคแ แแแแจแแ แแก แแแแงแแ แแแ. แแก แแแจแแแแก แแฃแแแแแแ RTT แฎแแแแฎแแ แแแแแแจแแ แแแแก แจแแแแแ (แ แแแแกแแช แแแกแแฆแแแ แฃแแแ แแแแแ แแ แแแฃแแแ แแ แแฎแแ) - แแแแแแงแแแแแ แแแ แแแแแแ MTProto แจแแขแงแแแแแแแแแแ, แแแแ แแ แแแ แแแแฃแแ แแแแฅแแแแแ - แแกแแแ แแ แแกแ แแ แแแแแ แกแแแขแจแ แแแฎแแแแแ, แกแแกแแ แแ แแแคแฃแญแแ แแ แ.แจ. แ แแก แแแแแแแแแแก TLS แกแแแแชแแแแ? แแแแแแจแแ แแแฃแแ แชแแขแแขแ:
TLS-แจแ PFS-แแก แแแแแงแแแแแแกแแก, TLS แกแแกแแแก แแแแแแแแ (
RFC 5077 ) แแแจแแคแ แฃแแ แกแแกแแแก แแแแแฎแแแแ แแแกแแฆแแแแแแก แฎแแแแฎแแแ แแแแแแแ แแแแแแกแ แแ แกแแ แแแ แแ แซแแ แแแแแ แแแคแแ แแแชแแแก แจแแแแฎแแแก แแแ แแจแ. แแแ แแแแ แแแแจแแ แแก แแแฎแกแแแกแ แแ แแแกแแฆแแแแแแก แแแแแ แแ แแแแกแแก แกแแ แแแ แ แจแแคแ แแแก แแแแจแแ แแก แแแแแแแ แแแแแก แแ แฃแแแแแแแก แแแแแแขแก (แกแแกแแแก แแแแแแแก แกแแฎแแ). แจแแกแแแแแแกแแ, แ แแแแกแแช แแแแจแแ แ แแแแแฎแแแแแ, แแแแแแขแ แแแแแแแแก แกแแกแแแก แแแแแแก, แ แแแแแแช แจแแแชแแแก, แกแฎแแ แกแแแแแฎแแแแแ แแ แแแ, แกแแกแแแก แแแแแแจแก แฃแแแ แกแแ แแแ แแ. แแแแแ แแแแแแ แแแจแแคแ แฃแแแ แแ แแแแแแ แแแกแแฆแแแแ (แกแแกแแแก แแแแแแแก แแแกแแฆแแแ), แ แแแแแแช แแแแฎแแแ แกแแ แแแ แแ แแ แฃแแแ แแแแแฌแแแแแก แงแแแแ แฌแแแ แกแแ แแแ แแ, แ แแแแแแแช แแแฃแจแแแแแแ SSL-แก แแแแกแขแแ แฃแ แแแแแฌแงแแแขแแแแแแแจแ.[10]. แแแ แแแแ, แกแแกแแแก แแแแแแแก แแแแแ แแแแ แจแแแซแแแแ แแแแ แฆแแแแก PFS, แแฃ แแ แแแแแแ แกแแ แแแ แแก แแแกแแฆแแแแแ แแแแแแแแแฃแแแ, แแแแแแแแแ, แ แแแแกแแช แแกแแแ แแแแฎแแแ แแแแ แฎแแแก แแแแแแแแแแแจแ (OpenSSL, nginx, Apache แแแแฃแแแกแฎแแแแแ แแแแฎแแแก แแแ แแ แแแ แแแแก แแแจแแแแแก แแแแแ แแแ แแแแแก แแแแแแแแแแแจแ; แแแแฃแแแ แฃแแ แกแแแขแแแ. แแแแแแงแแแแ แแแกแแฆแแแ แ แแแแแแแแ แกแแแแแก แแแแแแแแแแแจแ, แแฆแแแแ).
แแฅ RTT แแ แแ แแก แแฃแแ, แแฅแแแ แฃแแแ แแแชแแแแแ แแแแแแฃแ ClientHello แแ ServerHello, แ แแก แจแแแแแแแช Finished-แแแ แแ แแแ แแแแแแขแก แฃแแแ แจแแฃแซแแแ แแแแแชแแแแแแก แแแแแแแแ. แแแแ แแ แแฅ แฃแแแ แแแแฎแกแแแแแก, แ แแ แฉแแแ แแ แแแแฅแแก แแแ, แแแแแกแ แแฎแแแ แแแฎแกแแแแ แแแแจแแ แแแแ, แแ แแแแ แแแกแแแฏแแ แ, แ แแแแแก แแแแแแจแแ แแแ แฎแจแแ แแ แแ แแก แแ แแ แแ แแแข-แแแแแแแแ แฎแแแแ แซแแแแ, แจแแแแ แแแแ แแแแแ แแแแฎแแแแ แแแ แแแแ แแแแแ - แงแแแแแคแแ แ แแ แแก แแฃแแขแแแแแฅแกแแ แแแฃแแ แจแแแแแ. แแแฃ แกแแแกแแแแ แแแกแแฆแแแแ, แแฃ แแแขแ แแก แซแแแแแ แชแฃแแ แแแแแแแแแ แแ แจแแแแฎแแแ.
แกแฎแแ แ แแแ แแแแแแแฌแงแแ? แแแฌแแ แแ แแแแแแขแแ แแแจแ.
แฒแแแ แซแแแแแ แแฅแแแแ!
แแ แแแกแขแแแแก แกแแ แแแก แแแแ แ แแแฌแแแจแ แแแแแแฎแแแแแ แแ แแแแแแแชแแฃแ แกแแแแแฎแแแก แแ แแ แ แขแแฅแแแแฃแ แก - แแแแแแแแแก, แแแแแแแแแแก, แแแขแแ แคแแแกแก, แแแแฎแแแ แแแแแกแแแแ แแแแแแแแแแฃแแแแแก แแ แ.แจ. แแฃแแชแ, แขแแฅแแแแฃแ แ แแแคแแ แแแชแแแก แกแแคแฃแซแแแแแ, แ แแแแแแช แแฅ แแงแ แฌแแ แแแแแแแแแ.
แแแกแแแ แแแฌแแแ แแแแ แซแแแแแแ แขแแฅแแแแฃแ แ แแแแแแแแแขแแก/แแแแแแแแ แแแแก แแแแแชแแแแแแแก แแแแแแแก. แแฅแแแ แจแแแกแฌแแแแแ แแแ แซแแ:
- แแแแแแแแแแแก แแแแ แซแแแแแ TL-แขแแแแแแก แแ แแแแแคแแ แแแแแแแ
- แฃแชแแแแ แ แแ แแ แฎแแแแกแ แแ แกแฃแแแ แฏแแฃแคแแแแก แจแแกแแฎแแ
- แแแแ แ แแแแแแแแแ แกแแแแ แฃแแ แแกแแ
- แแแกแแแฃแขแฃแ แ แแ แคแแ แแแแแแ แจแแขแงแแแแแแแแก แแแแแ แแแแก แจแแกแแฎแแ
- แ แ แแแแกแฎแแแแแแแ แคแแขแแกแ แแ แกแฃแ แแแก แจแแ แแก
- แ แแแแ แแ แแแ emoji แแแฎแ แแ แขแแฅแกแขแก
แแ แกแฎแแ แฎแแแฏแแฎแแแ! แฒแแแแแแ แแแแแงแฃแ แ!
แฌแงแแ แ: www.habr.com