Changeset ef9ee0e


Ignore:
Timestamp:
2015-05-31T02:40:05Z (9 years ago)
Author:
dequis <dx@…>
Children:
899c8e8
Parents:
4107fea
git-author:
dequis <dx@…> (19-04-15 06:06:25)
git-committer:
dequis <dx@…> (31-05-15 02:40:05)
Message:

msn: reply BND with PUT MSGR\CHALLENGE

Still the same challenge functions as msnp11

Location:
protocols/msn
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/msn.h

    r4107fea ref9ee0e  
    2727#define _MSN_H
    2828
    29 /* This should be MSN Messenger 7.0.0813
    30 #define MSNP11_PROD_KEY "CFHUR$52U_{VIX5T"
    31 #define MSNP11_PROD_ID  "PROD0101{0RM?UBW"
    32 */
    33 
    3429#define MSN_SSL_HOST "s.gateway.messenger.live.com"
    3530#define MSN_SSL_PORT 443
     
    3833#define MSN_HTTP_PORT 443
    3934
    40 /* Some other version.
    41 #define MSNP11_PROD_KEY "O4BG@C7BWLYQX?5G"
    42 #define MSNP11_PROD_ID  "PROD01065C%ZFN6F"
    43 */
    44 
    45 /* <= BitlBee 3.0.5
    46 #define MSNP11_PROD_KEY "ILTXC!4IXB5FB*PX"
    47 #define MSNP11_PROD_ID  "PROD0119GSJUC$18"
    48 */
    49 
    50 #define MSNP11_PROD_KEY "C1BX{V4W}Q3*10SM"
    51 #define MSNP11_PROD_ID  "PROD0120PW!CCV9@"
    52 #define MSNP_VER        "MSNP21"
    53 #define MSNP_BUILD      "14.0.8117.416"
    54 
    55 #define MSN_SB_NEW         -24062002
     35#define MSNP11_PROD_KEY "YMM8C_H7KCQ2S_KL"
     36#define MSNP11_PROD_ID  "PROD0090YUAUV{2B"
    5637
    5738#define MSN_CAP1        0xC000
     
    10283        MSN_REAUTHING = 8,
    10384        MSN_EMAIL_UNVERIFIED = 16,
     85        MSN_DONE_BND = 32,
    10486} msn_flags_t;
    10587
  • protocols/msn/ns.c

    r4107fea ref9ee0e  
    252252                char *payload;
    253253
     254                if (md->flags & MSN_DONE_BND) {
     255                        return 1;
     256                }
     257
     258                md->flags |= MSN_DONE_BND;
     259
     260                // BND
    254261                payload = g_markup_printf_escaped(
    255262                        "<msgr><ver>1</ver><client><name>Skype</name><ver>2/4.3.0.37/174</ver></client>"
     
    262269
    263270        } else if (strcmp(cmd[0], "BND") == 0) {
     271                struct xt_node *node;
     272                char *nonce, *resp, *payload;
     273
     274                if (!(xml = xt_from_string(msg + 2, msglen - 2)) ||
     275                    !(node = xt_find_node(xml->children, "nonce")) ||
     276                    !(nonce = node->text)) {
     277                        return 1;
     278                }
     279
     280                resp = msn_p11_challenge(nonce);
     281
     282                // PUT MSGR\CHALLENGE
     283                payload = g_markup_printf_escaped(
     284                        "<challenge><appId>%s</appId><response>%s</response></challenge>",
     285                        MSNP11_PROD_ID, resp);
     286
     287                msn_ns_write_cmd(ic, "PUT", "MSGR\\CHALLENGE", payload);
     288
    264289                imcb_log(ic, "Authenticated, getting buddy list");
    265290                msn_soap_memlist_request(ic);
     291
     292                xt_free_node(xml);
     293                g_free(payload);
     294                g_free(resp);
    266295
    267296        } else if (strcmp(cmd[0], "ADL") == 0) {
     
    270299                        return msn_ns_finish_login(ic);
    271300                }
    272         } else if (strcmp(cmd[0], "CHL") == 0) {
    273                 char *resp;
    274                 int st;
    275 
    276                 if (num_parts < 3) {
    277                         imcb_error(ic, "Syntax error");
    278                         imc_logout(ic, TRUE);
    279                         return(0);
    280                 }
    281 
    282                 resp = msn_p11_challenge(cmd[2]);
    283 
    284                 st =  msn_ns_write(ic, "QRY %d %s %zd\r\n%s",
    285                                    ++md->trId, MSNP11_PROD_ID,
    286                                    strlen(resp), resp);
    287                 g_free(resp);
    288                 return st;
    289         } else if (strcmp(cmd[0], "QRY") == 0) {
    290                 /* CONGRATULATIONS */
    291301        } else if (strcmp(cmd[0], "OUT") == 0) {
    292302                imcb_error(ic, "Session terminated by remote server (%s)", cmd[1] ? cmd[1] : "reason unknown");
Note: See TracChangeset for help on using the changeset viewer.