C#实现smartQQ 扫码登录分析自动收发消息

编程入门 行业动态 更新时间:2024-10-26 20:30:17

C#实现smartQQ 扫码登录分析自动<a href=https://www.elefans.com/category/jswz/34/1769068.html style=收发消息"/>

C#实现smartQQ 扫码登录分析自动收发消息

       前几天看到群里有个机器人大家各种玩,本人刚好也是做软件,心想别人能做自己闲着没事也做个试试。废话不多说直接进入正题,第一次发帖写的不好的地方大家可以一起探讨。


      首先访问smartQQ 的最新地址:。
      腾讯可能考虑的安全方便所以现在只能用手机扫描二维码再授权登录。之前输入用户名密码那种形式显然是不行了。不多说还是直接抓包分析吧:
[img=/upload/201603/29/1459241519_565250.jpg][/img]
本人是用的火狐来进行抓包分析,当然大家也可以用其他的浏览器,这个是看个人喜好了,抓包发现浏览器会不停的发送请求
=10&remember_uin=1&login2qq=1&aid=501004106&u1=.html?login2qq=1&webqq_type=10&ptredirect=0&ptlang=2052&daid=164&from_ui=1&pttype=1&dumy=&fp=loginerroralert&action=0-2-252603&mibao_css=m_webqq&t=undefined&g=1&js_type=0&js_ver=10152&login_sig=&pt_randsalt=0
直接上代码吧,本人是用C#写的,大家也可以用其他语言做做,为什么用C#呢,第一当然是会用,第二嘛就是做cs界面比较方便。贴一些代码供大家参考一下
这个是获取二维码的方法,好像也没什么好多说的,唯一需要注意的是必须将返回的cookie保留
public static void get_logincs()
        {
            string url = "=164&target=self&style=16&mibao_css=m_webqq&appid=501004106&enable_qlogin=0&no_verifyimg=1&s_url=http%3A%2F%2Fw.qq%2Fproxy.html&f_url=loginerroralert&strong_login=1&login_state=10&t=20131024001";
            HttpWebResponse res = null;
            Encoding myEncoding = Encoding.UTF8;
            Stream st = null;
            StreamReader sr = null;
            HttpWebRequest req = null;
            try
            {
                req = (HttpWebRequest)WebRequest.Create(url);
                req.KeepAlive = true;
                req.Method = "GET";
                req.AllowAutoRedirect = true;
                req.CookieContainer = CookieContainers;
                req.ContentType = "application/x-www-form-urlencoded";
                req.UserAgent = IE7;
                req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                req.Timeout = 20000;
                req.Referer = "";
                if (!string.IsNullOrEmpty(""))
                {
                    req.Host = "";
                }
                req.Headers.Add("X-Requested-With", "XMLHttpRequest");
                if (!string.IsNullOrEmpty(""))
                {
                    req.Headers.Add("Origin", "");
                }
                
                System.Net.ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) =>
                {
                    return true;
                };
                if (req.GetResponse() != null)
                {
                    res = (HttpWebResponse)req.GetResponse();
                    st = res.GetResponseStream();
                    if (res.ContentEncoding.ToLower().Contains("gzip"))
                    {
                        st = new GZipStream(st, CompressionMode.Decompress);
                    }
                    sr = new StreamReader(st, myEncoding);
                    if (res.Cookies.Count > 0)
                    {
                        
                        addcookeis(res.Cookies);
                    }
                }
               
            }
            catch (WebException ex)
            {
                string error = string.Empty;
                if (ex.Response != null)
                {
                    res = (HttpWebResponse)ex.Response;
                    st = res.GetResponseStream();
                    sr = new StreamReader(st, myEncoding);
                    error = sr.ReadToEnd();
                }
               
            }


        }
这个是第一次登录操作,也需要把返回的cookie保存:
public static Stream get_imgshow()
        {
            string url = "=501004106&e=0&l=M&s=5&d=72&v=4&t=0.20737422284902096";
            //HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri(url));
            HttpWebResponse res = null;
            Encoding myEncoding = Encoding.UTF8;
            Stream st = null;
            StreamReader sr = null;
            HttpWebRequest req = null;
            try
            {
                req = (HttpWebRequest)WebRequest.Create(url);
                req.KeepAlive = true;
                req.Method = "GET";
                req.AllowAutoRedirect = true;
                req.CookieContainer = CookieContainers;
                req.ContentType = "application/x-www-form-urlencoded";
                req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0";
                req.Accept = "*/*";
                req.Timeout = 20000;
                req.Headers.Add("X-HttpWatch-RID", " 46990-10314");
                req.Headers.Add("Accept-Language", "zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3");
                req.Referer = "=164&target=self&style=16&mibao_css=m_webqq&appid=501004106&enable_qlogin=0&no_verifyimg=1&s_url=http%3A%2F%2Fw.qq%2Fproxy.html&f_url=loginerroralert&strong_login=1&login_state=10&t=20131024001";
                if (!string.IsNullOrEmpty(""))
                {
                    req.Host = "";
                }
                req.Headers.Add("X-Requested-With", "XMLHttpRequest");
                if (!string.IsNullOrEmpty(""))
                {
                    req.Headers.Add("Origin", "");
                }
                req.CookieContainer.Add(qq2016.c1);
                //System.Net.ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) =>
                //{
                //    return true;
                //};
                if (req.GetResponse() != null)
                {
                    res = (HttpWebResponse)req.GetResponse();
                    st = res.GetResponseStream();
                    //if (res.ContentEncoding.ToLower().Contains("gzip"))
                    //{
                    //    st = new GZipStream(st, CompressionMode.Decompress);
                    //}
                    sr = new StreamReader(st, myEncoding);
                    if (res.Cookies.Count > 0)
                    {
                        addcookeis(res.Cookies);
                    }
                }
                return st;


            }
            catch (WebException ex)
            {
                string error = string.Empty;
                if (ex.Response != null)
                {
                    res = (HttpWebResponse)ex.Response;
                    st = res.GetResponseStream();
                    sr = new StreamReader(st, myEncoding);
                    error = sr.ReadToEnd();
                }
                return st;


            }


        }
未验证返回值是ptuiCB('66','0','','0','二维码未失效。(1974472612)', '');
授权后返回
ptuiCB('0','0','=1&uin=3259629949&service=ptqrlogin&nodirect=0&ptsigx=09dfc7cf023d1d3d2e296372461715bde0bf526018aeb13620ccca5db93af0e11a657550d10fb856756b2ddfae36c2b84e5d4652178b2f49619f26cadd96fce1&s_url=http%3A%2F%2Fw.qq%2Fproxy.html%3Flogin2qq%3D1%26webqq_type%3D10&f_url=&ptlang=2052&ptredirect=100&aid=501004106&daid=164&j_later=0&low_login_hour=0&regmaster=0&pt_login_type=3&pt_aid=0&pt_aaid=16&pt_light=0&pt_3rd_aid=0','0','登录成功!', '11111');
这样就完成了第一次get登录。
今天先到这里吧,改天再上post登录的分析

更多推荐

C#实现smartQQ 扫码登录分析自动收发消息

本文发布于:2023-08-07 20:20:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1329841.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:收发   消息   smartQQ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!