49.大量qq号及qq密码挖掘到结构体并实现精确分配内存以及快速排序

原数据:

处理后的数据:

完整代码:

  1 //思路;
  2 //数据清洗(把空格替换成‘\0‘) -> 精确获取每一行(要提前获取source的总长度) -> 获取出每一行再精确分割并把分割后的数据赋给结构体
  3
  4 #define _CRT_SECURE_NO_WARNINGS
  5 #include <iostream>
  6 #include <stdlib.h>
  7 #include <string.h>
  8
  9 //要被挖掘的数据
 10 char str[1024] = "569603080----zj123456789 \
 11 94940443----zj123456789  12 260024036----zj1456789  13 707611428----zj123456789  14 793516568----zj123456789  15 280105138----zj1256789  16 853339297----zj145678  17 791088021----zj1234789  18 461913547----zj12366456789  19 739195069----zj12389  20 595061094----zj123789  21 835928755----zj123456789  22 824218951----zj123456789  23 824219738----zj123456789  24 824220392----zj16789  25 793708834----zj123456789  26 462942630----zj1789  27 779446648----zj1256789  28 807517937----zj123456789  29 785332401----zj123456789  30 824637233----zj123456789  31 824637654----zj126789  32 824642464----zj123456789  33 657004476----zj123456789  34 550261273----zj16789  35 771451402----zj123456789  36 478838706----zj123456789  37 837569545----zj12345789  38 838778566----zj12789  39 838466198----zj126789  40 807522015----zj1236789  41 823194447----zj12789  42 295936400----zj123456789  43 838041792----zj1239  44 838042137----zj123456789  45 838042825----zj1289 ";
 46
 47 //求出数据长度
 48 int totalLength;
 49
 50 //获取有多少行数据
 51 int getlength(char *src)
 52 {
 53     int num = 0;
 54     char *pstart = strstr(src, "----");
 55
 56     while (pstart != NULL)
 57     {
 58         num++;
 59         pstart = strstr(pstart+4, "----");
 60     }
 61     return num;
 62 }
 63
 64 //QQ号结构体
 65 struct QQ
 66 {
 67     long long qqNum;
 68     char *mima;
 69 };
 70
 71 //匿名结构体存储所有QQ
 72 struct
 73 {
 74     struct QQ *data;
 75     int length;
 76 }MyData;
 77
 78 //数据清洗,把空格替换成‘\0’
 79 void wash(char *src)
 80 {
 81     while (*src != ‘\0‘)
 82     {
 83         if (*src == ‘ ‘)
 84         {
 85             *src = ‘\0‘;
 86         }
 87         src++;
 88     }
 89 }
 90
 91 //初始化结构体
 92 void init()
 93 {
 94     //给匿名结构体分配内存
 95     MyData.data = (struct QQ *)calloc(MyData.length, sizeof(struct QQ));
 96
 97     //MyData.data的下标
 98     int id = 0;
 99     //把清洗后的数据从第一位遍历到最后一位
100     for (char *pstart = str; pstart < str + totalLength; pstart += strlen(pstart)+1)
101     {
102         //以“-----”寻找,返回寻找到的首地址
103         char *pwei = strstr(pstart,"----");
104         //密码所在位置的首地址
105         pwei += 4;
106         //获取密码长度
107         int len = strlen(pwei);
108         //精确分配内存
109         MyData.data[id].mima = (char *)calloc(len+1, sizeof(char));
110
111         //以此方法精确拷贝
112         //sscanf(pstart, "%lld----%s", &MyData.data[id].qqNum,MyData.data[id].mima);
113         //或者以这种方式copy数据
114         sscanf(pstart, "%lld",&MyData.data[id].qqNum);
115         strcpy(MyData.data[id].mima, pwei);
116         //printf("%lld,%s\n", MyData.data[id].qqNum,MyData.data[id].mima);
117         id++;
118     }
119
120 }
121
122 void show()
123 {
124     for (int i = 0; i < MyData.length; i++)
125     {
126         printf("qq号:%lld", MyData.data[i].qqNum);
127         printf("     密码:%s", MyData.data[i].mima);
128         printf("\n");
129     }
130 }
131
132 //比较函数
133 int cmp(const void *p1, const void *p2)
134 {
135     //类型转换,把void类型转化成(QQ *),这个类型和qsort传入的首地址类型有关
136     QQ *ptemp1 = (QQ *)p1;
137     QQ *ptemp2 = (QQ *)p2;
138     //大于返回1,等于返回0,小于返回-1
139     if (ptemp1->qqNum > ptemp2->qqNum)
140     {
141         return 1;
142     }
143     else if (ptemp1->qqNum < ptemp2->qqNum)
144     {
145         return -1;
146     }
147     else
148     {
149         return 0;
150     }
151 }
152
153 void main()
154 {
155     printf("%s\n\n", str);
156
157     //获取数据长度
158     MyData.length = getlength(str);
159     //获取有多少行数据
160     totalLength = strlen(str);
161     //数据清洗
162     wash(str);
163     //初始化
164     init();
165     //调用快速排序
166     qsort(MyData.data, MyData.length, sizeof(MyData.data[0]), cmp);
167     show();
168     system("pause");
169 }

原文地址:https://www.cnblogs.com/xiaochi/p/8371771.html

时间: 2024-11-05 22:56:00

49.大量qq号及qq密码挖掘到结构体并实现精确分配内存以及快速排序的相关文章

c#代码抓取本地QQ号,很实用哦

//抓取QQ号 WebBrowser web = new WebBrowser(); //使用户可以在窗体中导航网页 private void 抓取QQToolStripMenuItem_Click(object sender, EventArgs e) { listView1.Columns.Clear(); listView1.Items.Clear(); listView1.Columns.Add("昵称",100); listView1 .Columns .Add ("

盗qq号软件下载

盗qq号软件下载●●高手QQ:705099868●●以前也在网上找过关于以及怎么破解qq聊天记录密码视频,但是都没有找到好的怎么破解qq聊天记录密码方法.无意中接触到这个人,他是专门帮人查QQ密码,微信密码,查QQ聊天记录,恢复微信记录,通话记录,短信,手机定位等,很讲信誉,技术不错. http://www.155588.com

老王教你怎样解密分析窃取QQ号的过程

具体现象 部分网吧发现QQ木马盗号的现象,主要是体现着以下几点: 1.木马执行不规律,木马行为与策略相关联. 2.就了解到的情况来看,感染QQ2013为主. 3.破坏QQ文件,全局dll注入.修改微软官方模块rasman.dll,使系统指向假的rasman.dll,执行完病毒代码之后再指向真的rasmanorg.dll. 4.QQ被破坏,按登录键进程直接退出. 相关文件 暂时查到病毒下载器为C:\windows\debug\QQprotect.exe 病毒主体应该是:C:\programfile

web安全:QQ号快速登录漏洞及被盗原理

为什么你什么都没干,但QQ空间中却发了很多小广告?也许你的QQ账号已经被盗.本文将讲解一个QQ的快速登录的漏洞. 我前阵子在论坛上看到一个QQ的快速登录的漏洞,觉得非常不错,所以把部分原文给转到园子来. 而利用这个漏洞最终可以实现,只要你点击一个页面或运行过一个程序,那么我就可以拥有你的登录权限.可以直接进你邮箱,进你微云,进你QQ空间等.... 众所周知,Tencent以前使用Activex的方式实施QQ快速登录,在一个陌生浏览器上使用,第一件事就是安装QuickLogin控件. Active

最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证等

什么是 RegExp? RegExp 是正则表达式(Regular expression)的缩写,作用是对字符串执行模式匹配. 通常用于格式验证.正则替换.查找子串等 各种编程语言的正则表达式基本相同,不同的语言可能会有一些细小的差别 RegExp入门:http://www.w3school.com.cn/js/js_obj_regexp.asp 完整的 RegExp 对象参考手册:http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp Reg

65.十一级指针实现百万qq号的增删查改以及排序写入

运行结果: 内存使用情况: 写入文件排序好的数据: 创建文件地址以及创建十一级指针 1 char *path = "QQ.txt"; 2 char *sortpath = "QQchiguowei2018.txt"; 3 //创建十一级指针 4 char *********** allP = NULL; 初始化十一级指针 1 //初始化 2 void init() 3 { 4 5 FILE *pf = fopen(path, "r"); 6 if

68.qq号索引结构体写入内存,并实现快速排序

1 //两个步骤,第一步读取文件,并且初始化索引结构体,把初始化的索引结构体写入到文件,第二步,读取这个文件到索引结构体 2 //并对这个结构体进行快速排序,得到顺序的索引,再写入文件 3 #define _CRT_SECURE_NO_WARNINGS 4 #include<stdio.h> 5 #include<stdlib.h> 6 7 char path[256] = "QQ.txt"; 8 char indexpath[256] = "QQin

纪勇破解QQ号问题

试题描述 来到了新学校,才相处不到一个月,jy就对oyjy一见钟情.于是向oyjy问QQ号.当然身为创(实)新(验)一班的同学,oyjy还是要考考jy.她给了纪勇一个加密后的QQ号,让纪勇解密,解密规则是这样的:首先将第一个数字删除,再将第二个数字放到这串数的末尾,再将第 3 个数删除并将第 4 个数放到这串数的末尾,再将第5个数删除,........,以此类推,将最后一个数字也删除.按照刚才删除的顺序,把这些删除的数字连在一起,最后的 7 位就是 oyjy 的 QQ 号.当然解密后的数字串肯定

经验分享:微信怎么关联qq号?

微信怎么关联qq号!你的QQ好友都能加到你,或者你可以用你的手机搜索你手机名单里的微信好友, 当然这些也可以不公开,设置到谁也找不到你.经常看网上网友碰到这样的问题"微信怎么关联qq号"如何将QQ和微信关联,也就是说QQ不在线,微信在线的时候也能收到QQ好友发过来的消息!! 第一步:设置-我的帐号-QQ号 填写正确: 第二步:设置-功能-启用QQ离线助手 -接收离线消息后面的勾打上 这样就能微信在线的时候也能收到QQ好友发过来的消息! 但是微信有一缺点,你必须登陆 或者后台微信 它才能