吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 101837|回复: 521
收起左侧

[原创工具] 手机号2QQ号

    [复制链接]
By.清风 发表于 2015-7-19 17:20
本帖最后由 By.清风 于 2015-7-22 11:30 编辑

今天闲的无聊,做了一个小工具,吧用手机号做完主显账号的手机号码转换成QQ号码,不敢独享,特分享出来给大家用用
先说下原理吧,在QQ的登录过程中,不管你使用的什么号码,他都将会将你的其他号码转换成QQ号,
我用的是pc版的6.7轻聊版QQ抓的包,过程大概是这样的
首先发送握手-握手返回状态并且返回握手状态码
之后发送密码包-由于使用的登录方式不是QQ号,因此会返回一个状态,表示当前使用的非QQ号,并将其真实的QQ号返回,更新握手状态码
最后发送正确的密码验证包,通过验证后登录,由于我们是要获得真实的QQ 所以就需要发送两个包就好了
软件是.net写的,每加密也没混淆,等于送源码了.
运行结果
QQ截图20150719171742.png
如果手机号码没绑定QQ的话,就会返回
QQ截图20150719171855.png
下载地址 手机号2QQ号.rar (49.37 KB, 下载次数: 7164)
注意!!程序是由.net4编写的,因此需要下载.net4才能正常运行
开源了 在二楼,不过只是核心,其他的算法大家都可以百度到

点评

楼主留QQ  发表于 2015-8-3 15:00
很强大!  发表于 2015-7-19 19:20

免费评分

参与人数 91吾爱币 +3 热心值 +91 收起 理由
MedusaSTears + 1 2017.06.30 测试没有任何反应,电脑装了.net4,0了
wuwei0510 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Cooper + 1 谢谢@Thanks!
一品人生 + 1 我很赞同!
老蛋蛋 + 1 谢谢@Thanks!
菜鸟试水 + 1 谢谢@Thanks!
1ucky + 1 热心回复!
rtmart2 + 1 我很赞同!
fengzi12138 + 1 已答复!
chery + 1 谢谢@Thanks!
破解是爱好 + 1 鼓励转贴优秀软件安全工具和文档!
huanziyi + 1 要绑定手机的才能查得到。
雨濄添情 + 1 超级赞!!
乐清吴彦祖 + 1 2015-12-31 19:57:44 可用 能逆向就好了。
预思 + 1 谢谢@Thanks!强大。能不能反向通过QQ查手.
木子° + 1 我很赞同!
我爱阳光我爱笑 + 1 谢谢@Thanks!
hello摸头 + 1 热心回复!
吾爱廖小雨 + 1 我很赞同!
luisluo + 1 有大能写成批量的吗~~~
cx1689 + 1 热心回复!
woxinfei + 1 我很赞同!
liaofeng9 + 1 谢谢@Thanks!
b1i7n + 1 谢谢@Thanks!
p785676315 + 1 鼓励转贴优秀软件安全工具和文档!
dong0945 + 1 热心回复!
忘忧☆草草 + 1 很强大!
哇咔咔 + 1 热心回复!
蜗飞牛 + 1 热心回复!
Y499965142 + 1 我很赞同!
Fingbuzz + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
黔西靖士 + 1 这个必须支持,不支持有罪!
森林生灵 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
showgood163 + 1 有点6!
ljhfrank + 1 谢谢@Thanks!
75212684 + 1 谢谢@Thanks!
xiaocrow + 1 热心回复!
燚热 + 1 谢谢@Thanks!
断桥丶残鳕 + 1 我很赞同!
lb1217 + 1 我很赞同!
shadow661 + 1 我很赞同!
小星学破解 + 1 我很赞同!
“Www” + 1 热心回复!
54651446 + 1 能逆向根据QQ算出对应的手机 就值钱了
a575791241 + 1 希望QQ号能查手机号
yyp123 + 1 谢谢@Thanks!
1.shui + 1 鼓励转贴优秀软件安全工具和文档!
幻影1122 + 1 用不来!!不懂咋用呐
huadong + 1 有没有QQ
国子祭酒 + 1 谢谢@Thanks!
atzlove + 3 我很赞同!
波希米亚 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
qwer8023 + 1 热心回复!
林林 + 1 我很赞同!
shadowyue + 1 我很赞同!
思想者 + 1 热心回复!
軒、小陌 + 1 谢谢@Thanks!
really + 1 热心回复!
2352004424 + 1 谢谢@Thanks!
joern + 1 谢谢@Thanks!
尼特 + 1 鼓励转贴优秀软件安全工具和文档!
䲢䴕 + 1 谢谢@Thanks!
wanglizhou518 + 1 鼓励转贴优秀软件安全工具和文档!
一萬只草泥马 + 1 加油破200!感谢大神
百步丶苍茫 + 1 楼主可以搞成批量查看的吗
一万年如何 + 1 我很赞同!
紫客联盟 + 1 热心回复!
莫沉 + 1 很牛逼的软件。
清风吹离愁 + 1 热心回复!
jmmes + 1 我很赞同!
ksgood + 1 我很赞同!
believemee + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
小小的快乐ing + 1 热心回复!
XhyEax + 1 我很赞同!
tornado + 1 谢谢@Thanks!
gzfsc + 1 谢谢@Thanks!
65design + 1 我很赞同!
刺蝴蝶De箫启灵 + 1 颜值+1
逝走青春 + 1 热心回复!
leo91 + 1 很强大!
lovehmy123 + 1 鼓励转贴优秀软件安全工具和文档!
460261925 + 1 谢谢@Thanks!
我是雷锋 + 1 热心回复!
冷轩 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
小白三分菜 + 1 谢谢@Thanks!
Hmily + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
vfive + 1 鼓励转贴优秀软件安全工具和文档!
Summer1998菜鸟 + 1 软件很实用棒棒哒!!!
yz2n + 1 我很赞同!
你的话丶记心底 + 1 好久没评分了
FC丶小组 + 1 POST求交流。 我私信你。

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| By.清风 发表于 2015-7-21 16:29
本帖最后由 By.清风 于 2015-7-22 11:29 编辑

[C#] 纯文本查看 复制代码
 #region 登录0825
       /// <summary>
       /// 登录0825
       /// </summary>
       /// <param name="qq"></param>
       /// <param name="runCount"></param>
       public int SendLogin0825(int rint = 0)
       {
           try
           {
               //SetText("验证服务器中!");
               this.NeedVerify = false;
               byte[] head = Unit.HexStringToByteArray("02 " + PC_QQdefine.VersionNum + " 08 25");

               StreamModel model = new StreamModel(PC_QQdefine.Command.send0825);
               model.Add(head);
               model.Add(Unit.GetSequence(2));
               
               model.Add("00 00 00 00");
               model.Add("03 00 00 00 01 01 01 00 00 67 42 ");
               model.Add("00 00 00 00");
               model.Add(PC_QQdefine.key0825);
               StreamModel tea = new StreamModel();
               tea.Add("00 18 00 16 00 01");
               tea.Add(PC_QQdefine.FixedDate2);
               tea.Add("00 00 00 00 00 00 00 00");
               tea.Add("00 04 00 0F 00 00 00 0B");           
              
               tea.Add(Unit.HexToStr(num.ToString()));
               tea.Add("03 09");
               tea.Add("00 08");
               tea.Add("00 01 00 00 00 00 00 04 ");
               tea.Add("00 36 00 12");
               tea.Add("00 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ");
               tea.Add("01 14 00 1D 01 02 00 19");
               tea.Add(PC_QQdefine.HDKey);
               byte[] s = tea.GetBytes();
               model.Add(QQTea.Encrypt(s, 0, s.Length, PC_QQdefine.key0825));
               model.Add("03");

               int ReciveErrorCount = 0;
           again0825:
               //发送数据
               if (PCQQ_SendData(model))
               {
                   PC_InPacket p = PC_RecvData(QQCommand.CMD_0825, outTime);
                   if (p == null)
                   {
                       if (ReciveErrorCount < ReciveChangeCount)
                       {
                           ReciveErrorCount++;
                           goto again0825;
                       }
                   }
                   byte[] rtea = GetDeCodeByte(p.buf.ToByteArray());

                   //解密
                   string retString = Unit.TileHexString(QQTea.Decrypt(rtea, 0, rtea.Length, PC_QQdefine.key0825)); ;

                   string times = retString.Substring(retString.IndexOf("00 17 00 0E 00 01") + "00 17 00 0E 00 01 ".Length, 12);
                   string thisIp = retString.Substring(retString.IndexOf("00 17 00 0E 00 01") + GetUinLength(10) + 1, GetUinLength(4));
                   string serverIp = retString.Substring(retString.IndexOf("00 17 00 0E 00 01") + GetUinLength(22) + 1, GetUinLength(4));
                   QQuser.ServerIp = serverIp;
                   token0826 = StringConvort.GetMiddleText(retString, "00 38 ", " 00 17 00 0E 00 01");

                   ByteBuffer2 buf = new ByteBuffer2(Unit.HexStringToByteArray(retString));
                   Retcode ReplyCode = (Retcode)buf.Get(); //正常是00
                   buf.GetChar(); //0x0112; 
                   int length = buf.GetUShort();
                   byte[] token = buf.GetByteArray(length);//一个38字节的令牌 
                   QQuser.Token_0825 = token;
                   buf.Position += 6;
                   long time = buf.GetUInt();

                   // DateTime loginTime = Util2.GetDateTimeFromMillis(time * 1000);
                   QQuser.ServerTime = Unit.LongToByteArray(time);
                   this.QQuser.ClientIP = buf.GetByteArray(4);//客户端IP
                 //= this.QQuser.ClientIP;
                   int port = buf.GetUShort();
                   if (ReplyCode == Retcode.OK)
                   {
                       QQuser.NeedLocation = false;
                       ////SetText("正在获取QQ号!");
                       return Login0836();
                   }
                   else
                   {
                       buf.GetByteArray(13);
                       buf.Get();//05不一定,应该是服务器的序号
                       buf.GetInt();//00  
                       // QQuser.ServerIEP = new System.Net.IPEndPoint(new System.Net.IPAddress(buf.GetByteArray(4)), 8000);
                       byte[] ip = buf.GetByteArray(4);
                       QQuser.LocationIP = new System.Net.IPAddress(ip);


                       

                       //最后6个0;
                       QQuser.NeedLocation = true;
                       ConnectReCount = ConnectReCount + 1;
                       if (ConnectReCount < ReciveChangeCount)
                       {
                           int tl = retString.IndexOf("0C 00 16 00 02");
                           string ips = retString.Substring(tl + GetUinLength(15) + 1, GetUinLength(4));//StringConvort.GetMiddleText(ret, "00 00 00 00 06 00 00 00 00 ", " 00 00 00 00 00");
                           // ip = "00 02 00 00";
                           string ipaddress = Unit.IPStringFromByteArray(Unit.HexStringToByteArray(ips));
                           PC_QQdefine.LoginIP = ipaddress;
                           //SetText("需要重新连接服务器!" + PC_QQdefine.LoginIP);
                           return Connection();
                       }
                       else
                       {
                           ReceiveMessage(this, new ObjEvgs() { type = 2, obj = "请重新登录" });
                           return 2;
                       }
                   }
               }
           }
           catch
           {

           }
           ReceiveMessage(this, new ObjEvgs() { type = 2, obj = "请重新登录" });
           return 2;
       }
       #endregion

       #region 0836登录
       /// <summary>
       /// 0826登录
       /// </summary>
       public int Login0836()
       {
           try
           {
               string head0836 = "02 " + PC_QQdefine.VersionNum + " 08 36 68 48";
               byte[] QQNum = Unit.HexStringToByteArray(Unit.QQToHexString(QQnum));
               StreamModel model = new StreamModel(PC_QQdefine.Command.send0836);
               model.Add(head0836);
               //model.Add(Unit.GetSequence(2));
               model.Add("00 00 00 00");
               model.Add("03 00 00 00 01 01 01 00 00 67 42");
               model.Add("00 00 00 00");
               model.Add("00 01 01 02 00 19");
               model.Add(PC_QQdefine.HDKey);
               model.Add("00 00 00 10");
               model.Add(Unit.GetSequence(16));
               StreamModel tea = new StreamModel();
               //加密数据

               tea.Add("01 12 00 38");
               tea.Add(QQuser.Token_0825);
               tea.Add("03 0F 00 08 00 06 57 49 4E 44 4F 57");//WINDOW
               //手机?
               tea.Add("00 04 00 0F 00 00 00 0B");
               tea.Add(Unit.HexToStr(num.ToString()));

               tea.Add("00 06 00 78");

               #region 00 78

               //密码加密
               byte[] md5pwd1 = Md5Encrypt("111111");
               byte[] md5pwd2 = Unit.HexStringToByteArray("00 00 00 00");
               string md5pwd3 = Unit.QQToHexString(0);
               StreamModel md5Pwd = new StreamModel();
               md5Pwd.Add(md5pwd1);
               md5Pwd.Add(md5pwd2);
               md5Pwd.Add(md5pwd3);
               byte[] pwd = Md5Encrypt(md5Pwd.GetBytes());

               //加密结束


               if (!NeedLogin255)
               {
                   

                   StreamModel Pwd = new StreamModel();
                   //密匙加密
                   byte[] laterPwd = Unit.HexStringToByteArray("F3 62 51 81 00 02");
                   Pwd.Add(laterPwd);

                   byte[] pwdQQNum = Unit.HexStringToByteArray(Unit.QQToHexString(QQnum));
                   Pwd.Add(pwdQQNum);

                   byte[] fiex = Unit.HexStringToByteArray("" + PC_QQdefine.FixedDate2 + " 00 00 01");
                   Pwd.Add(fiex);

                   byte[] md50 = Md5Encrypt("111111");
                   Pwd.Add(md50);

                   byte[] time = QQuser.ServerTime;
                   Pwd.Add(time);

                   //byte[] timecenter = Unit.HexStringToByteArray("01");
                   //byte[] time2 = QQsex.times;
                   byte[] zero = Unit.HexStringToByteArray("00 00 00 00 00 00 00 00 00 00 00 00 00");
                   Pwd.Add(zero);

                   Pwd.Add(QQuser.ServerIp);

                   byte[] someter = Unit.HexStringToByteArray("00 00 00 00 00 00 00 06 00 10 1B A4 9E 16 5F E9 54 25 1E B9 61 9F 7B 1B DF 31");

                   Pwd.Add(someter);

                   Pwd.Add(PC_QQdefine.key08262);
                   //密匙加密结束
                   byte[] ppp = Pwd.GetBytes();

                   tea.Add(QQTea.Encrypt(ppp, 0, ppp.Length, pwd));

               }
               else
               {
                   tea.Add(PC_QQdefine.token255pwd);
               }

               #endregion

               #region CRC
               tea.Add("00 15 00 30 00 00");
                tea.Add("01");
                tea.Add("1C 26 E9 60");
                tea.Add("00 10");
                tea.Add("02 8D 5F 75 CB CF 4C 89 8C A4 3A 34 10 B8 57 88");
                tea.Add("02");
                tea.Add("B3 E8 16 3C");
                tea.Add("00 10");
                tea.Add("1B A4 9E 16 5F E9 54 25 1E B9 61 9F 7B 1B DF 31");

                tea.Add("00 1A");
                tea.Add("00 40");
                //tea.Add("48 AE FD 18 1B C4 F9 3D F1 9A 7D 6D 8A 3C E8 C7 5C 95 E5 79 36 97 7C 37 CE C1 41 D6 FC 17 CE BE 93 39 8C CF 99 29 3F C3 45 21 8B A7 9D 21 EA 60 4A A1 0C E4 FE 78 3C 07 BD 5B 48 F6 62 5E 29 90");

                StreamModel mcrc = new StreamModel();
                mcrc.Add("00 15 00 30 00 00");
                mcrc.Add("01");
                mcrc.Add("1C 26 E9 60");
                mcrc.Add("00 10");
                mcrc.Add("02 8D 5F 75 CB CF 4C 89 8C A4 3A 34 10 B8 57 88");
                mcrc.Add("02");
                mcrc.Add("B3 E8 16 3C");
                mcrc.Add("00 10");
                mcrc.Add("1B A4 9E 16 5F E9 54 25 1E B9 61 9F 7B 1B DF 31");
                byte[] crcs = mcrc.GetBytes();
                crcs = QQTea.Encrypt(crcs, 0, crcs.Length, PC_QQdefine.key08262);
                tea.Add(crcs);
                #endregion

               tea.Add("00 18 00 16 00 01 " + PC_QQdefine.FixedDate2);
               tea.Add(Unit.QQToHexString(QQnum));
               tea.Add("00 01 00 00 01 03 00 14 00 01");

               tea.Add("00 10");
               tea.Add("BD 41 FD 50 2A 59 F4 86 3C CD E0 44 BB 41 F7 28");

               if (NeedVerify)
               {  //yzm
                   tea.Add("01 10 00 3C 00 01 00 38");
                   tea.Add(QQuser.Token_00ba4);
                   tea.Add("00 32 00 63 3E 00 63 02 03 08 00 00 00 04 00 76 A1 00 00 00 00");
                   tea.Add("1B A4 9E 16 5F E9 54 25 1E B9 61 9F 7B 1B DF 31");
                   tea.Add("03 01 00 00 66 DC 14 C5 00 00 00 00 00 00 00 00 07 DE 00");
                   tea.Add("03 00 06 00 01 00 02 00 04 00 00 00 00");
                   tea.Add("00 4B E8 4F 45 7D 68 D6 89 55 B1 0D 56 8D C2 64 78 57 0B 82 C5 FF B4 87 92 7C 3C E6 FC 51 79 50 1F 68");

               }
                tea.Add("03 12 00 05 01 00 00 00");

                tea.Add("00");//是否记住密码
                tea.Add("01 02 00 62 00 01");
                tea.Add("11 69 A8 1F 69 9F 52 DE 71 EF 65 E9 B4 2D 2D 8A");
                tea.Add("00 38");
                tea.Add("78 B9 4E 76 76 7E FD AB 4D D3 B2 B0 14 40 63 F4 8B 57 EE 27 AE F1 52 A2 8A BA 1F 03 50 F0 2B 17 A8 67 87 FE 47 D1 B1 89 C4 3C 0B E7 A7 DC 8C 81 C4 0B B6 22 C7 8E C8 5B");

                tea.Add("00 14");
                tea.Add("62 E1 72 E6 14 21 FE 8C 85 0C 62 89 1E FC F7 F9 3A 19 B8 92");
               
               byte[] all = tea.GetBytes();
               all = QQTea.Encrypt(all, 0, all.Length, PC_QQdefine.DecodeKey);
               model.Add(all);
               model.Add("03");

               int ReciveErrorCount = 0;
           again00836:
               if (PCQQ_SendData(model))
               {
                   PC_InPacket inpack = PC_RecvData(QQCommand.CMD_0836, outTime);
                   if (inpack == null)
                   {
                       if (ReciveErrorCount < ReciveChangeCount)
                       {
                           ReciveErrorCount++;
                           goto again00836;
                       }
                   }

                   byte[] retb = GetDeCodeByte(inpack.buf.ToByteArray());
                   // retb = Unit.HexStringToByteArray(ret);

                   string ret = Unit.TileHexString(QQTea.Decrypt(retb, 0, retb.Length, PC_QQdefine.DecodeKey));
                   string len = inpack.buf.Length.ToString();
                   var zt = ret.Substring(0,2);
                   if (zt=="FC")
                   {
                       string qqhex=StringConvort.GetMiddleText(ret, "00 05 00 06 00 01", "01 13 00 20");
                       var qq = Unit.GetQQNum(qqhex);
                       //表示追加文本
                       //StreamWriter sw = File.AppendText("D:\\1.txt");
                       //sw.Write(num+"----"+qq+"\r\n");
                       //sw.Close();
                       SetText("获取完成\r\n" + num + "----" + qq + "\r\n");
                       return 0;

                   }
                   else if (zt=="FF")
                   {
                       SetText("数据库中没有找到这样的值");
                       return 0;
                   }
                   
               }
           }
           catch (Exception ex)
           {
               //ErrMsg = "普通登录异常";
               //SetText("在普通登录异常[错误]");
               // SetAccountText1(6, "普通登录异常");
               return 3;
           }
           return 3;
       }
       #endregion

核心代码  具体的算法就不公布了,因为涉及到太多

免费评分

参与人数 3吾爱币 +1 热心值 +3 收起 理由
Dormleader + 1 + 1 我很赞同!
zzmy + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
FC丶小组 + 1 我很赞同!

查看全部评分

szh712 发表于 2015-7-19 17:37
请问怎么注册5位数qq

点评

10086  发表于 2015-7-21 21:10
我把我珍藏已久的10000 10001 10002 10003 10004 10005送你了  发表于 2015-7-19 17:40
d3150 发表于 2015-7-19 17:22
 楼主| By.清风 发表于 2015-7-19 17:23
d3150 发表于 2015-7-19 17:22
我是沙发么?  请问软件能批量吗?

并不能,没考虑那么多  无聊做的   你自己逆向下加下吧
验证部分是单独的,自己在加一个控制台就好了
图谱 发表于 2015-7-19 17:26
支持楼主
菜鸡葫芦娃 发表于 2015-7-19 17:28
我想要批量。。。
 楼主| By.清风 发表于 2015-7-19 17:29

.net写的  没加壳 没混淆 自己逆向下就可以加,
菜鸡葫芦娃 发表于 2015-7-19 17:30
By.清风 发表于 2015-7-19 17:29
.net写的  没加壳 没混淆 自己逆向下就可以加,

不会逆向咋破。。   
sfqspclz77 发表于 2015-7-19 17:32
感谢分离,这有用。
 楼主| By.清风 发表于 2015-7-19 17:32

没办法 我是不会在改了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 07:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表