1. Вы находитесь в архивной версии форума xaker.name. Здесь собраны темы с 2007 по 2012 год, большинство инструкций и мануалов уже неактуальны.

вылет программы

  1. почему то программа вылетает...писалось на си, при объявлении

    Код:
    struct filesys {
            char *sourcelist;
            char *badlist;
            char *goodlist;
            };
    
    и

    Код:
    struct rem_terminal {
            int port;
            char *password;
            };
    
    работает все кроме goodlist и port.
    то есть например:

    Код:
    printf(rem_terminal.port) // вылет с ошибкой
    printf(rem_terminal.password) // работает
    
    и со структурой filesys:

    Код:
    printf(filesys.sourcelist) // работает
    printf(filesys.badlist) // работает
    printf(filesys.goodlist) // не пашет
    
    вот сам код:

    Код:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <stddef.h>
    #include <ctype.h>
    
    #define true 1
    #define false 0
    
    int main(int argc, char *argv[]) {
    
     /****************************************************
     *
     *  Settings
     *
     ****************************************************/
    
    
        char *message, *remote_message;
    
    
        // Структура файлов для брута
        struct filesys {
            char *sourcelist;
            char *badlist;
            char *goodlist;
            };
    
    
        // Структура коннекта к серверу
        struct icq_connection {
            char *server;
            int port;
            int timeout;
            };
    
        // Структура удаленного терминала
        struct rem_terminal {
            int port;
            char *password;
            };
    
        message="+-----------------------------------------------------------+\n"
                "|  XnTBrute v.1.0                                           |\n"
                "|                                                           |\n"
                "|  Usage:                                                   |\n"
                "|      xntbrute.exe [-s] [-g] [-b] [-rt] [-rp]              |\n"
                "|                                                           |\n"
                "|      Keys:                                                |\n"
                "|           -s       Source file.                           |\n"
                "|           -g       Good accounts file.                    |\n"
                "|           -b       Bad accounts file.                     |\n"
                "|           -rt      Remote terminal port.                  |\n"
                "|           -rp      Remote terminal password.              |\n"
                "|                                                           |\n"
                "+-----------------------------------------------------------+\n";
    
    
        remote_message="+-----------------------------------------------------------+\n"
                       "|  XnTBrute v.1.0                                           |\n"
                       "|                                                           |\n"
                       "|  Usage:                                                   |\n"
                       "|      xntbrute.exe [show] [stop] [exit]                    |\n"
                       "|                                                           |\n"
                       "|      Keys:                                                |\n"
                       "|           show     Show good accounts                     |\n"
                       "|           stop     Stop Bruteforce                        |\n"
                       "|           exit     Exit terminal                          |\n"
                       "|                                                           |\n"
                       "+-----------------------------------------------------------+\n";
    
        struct icq_connection connecticq;
    
        connecticq.server="login.icq.com";
        connecticq.port=443;
        connecticq.timeout=5000;
    
     /****************************************************
     *
     *  Program Run
     *
     ****************************************************/
    
        // Командная строка
        struct filesys optfile;
        struct rem_terminal terminal;
    
        if(argc=0) {
                printf("[*] Not enough arguments!");
                exit(EXIT_FAILURE);
                }
    
        else {
            int i=1;
            while(i<=argc) {
                    if(argv[i]=="-s") {
                            optfile.sourcelist=argv[i+1];
                            }
                    else if(strlen(argv[i])==2 || argv[i]=="-g") {
                            optfile.goodlist=argv[i+1];
                            }
                    else if(strlen(argv[i])==2 || argv[i]=="-b") {
                            optfile.badlist=argv[i+1];
                            }
                    else if(strlen(argv[i])==3 || argv[i]=="-rt") {
                            terminal.port=atoi(argv[i+1]);
                            }
                    else if(strlen(argv[i])==3 || argv[i]=="-rp") {
                            terminal.password=argv[i+1];
                            }
                    else {
                            printf("[*] Can't find all necessary arguments!");
                            exit(EXIT_FAILURE);
                            }
    
                            i+=2;
        }
    
    
        /*****************DEBUG ZONE*****************/
    
        printf(message);
        printf(optfile.sourcelist);
        printf(optfile.goodlist);
        printf(optfile.badlist);
        printf(terminal.port);
        printf(terminal.password);
    
        /********************************************/
    
        return 0;
    
        }
    
    }
    
    вот... внизу идет зона отладки, чтоб удобнее было. компиллю gcc.
     
  2. так, с сабжевой проблемой справился путем назначения переменным структуры нулевых значений.... а вот возникла следующая проблема:

    Код:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <stddef.h>
    #include <ctype.h>
    
    #define true 1
    #define false 0
    #define s_buffer 512
    
    int main(int argc, char *argv[]) {
    
     /****************************************************
     *
     *  Settings
     *
     ****************************************************/
    
    
        char *message, *remote_message;
    
    
        // Ñòðóêòóðà ôàéëîâ äëÿ áðóòà
        struct filesys {
            char *sourcelist;
            char *badlist;
            char *goodlist;
            };
    
    
        // Ñòðóêòóðà êîííåêòà ê ñåðâåðó
        struct icq_connection {
            char *server;
            int port;
            int timeout;
            };
    
        // Ñòðóêòóðà óäàëåííîãî òåðìèíàëà
        struct rem_terminal {
            char *port;
            char *password;
            };
    
        message="+-----------------------------------------------------------+\n"
                "|  XnTBrute v.1.0                                           |\n"
                "|                                                           |\n"
                "|  Usage:                                                   |\n"
                "|      xntbrute.exe [-s] [-g] [-b] [-rt] [-rp]              |\n"
                "|                                                           |\n"
                "|      Keys:                                                |\n"
                "|           -s       Source file.                           |\n"
                "|           -g       Good accounts file.                    |\n"
                "|           -b       Bad accounts file.                     |\n"
                "|           -rt      Remote terminal port.                  |\n"
                "|           -rp      Remote terminal password.              |\n"
                "|                                                           |\n"
                "+-----------------------------------------------------------+\n";
    
    
        remote_message="+-----------------------------------------------------------+\n"
                       "|  XnTBrute v.1.0                                           |\n"
                       "|                                                           |\n"
                       "|  Usage:                                                   |\n"
                       "|      xntbrute.exe [show] [stop] [exit]                    |\n"
                       "|                                                           |\n"
                       "|      Keys:                                                |\n"
                       "|           show     Show good accounts                     |\n"
                       "|           stop     Stop Bruteforce                        |\n"
                       "|           exit     Exit terminal                          |\n"
                       "|                                                           |\n"
                       "+-----------------------------------------------------------+\n";
    
        struct icq_connection connecticq;
    
        connecticq.server="login.icq.com";
        connecticq.port=443;
        connecticq.timeout=5000;
    
     /****************************************************
     *
     *  Program Run
     *
     ****************************************************/
    
        // Êîìàíäíàÿ ñòðîêà
        struct filesys optfile;
        struct rem_terminal terminal;
    
        // Îáîçíà÷àåì çíà÷åíèÿ ÷òîáû íå áûëî îâåðôëîó
        optfile.sourcelist="";
        optfile.badlist="";
        optfile.goodlist="";
    
        if(argc=0) {
                printf("[*] Not enough arguments!");
                exit(EXIT_FAILURE);
                }
    
        else {
             char opts;
             while(opts=getopt(argc, argv, "s:g:b:rt:rp")>0) {
                                       switch(opts) {
                                                      case 'p':
                                                           optfile.sourcelist=&opts;
                                                           break;
                                                           
                                                      case 'g':
                                                           optfile.goodlist=&opts;
                                                           break;
                                                           
                                                      case 'b':
                                                           optfile.badlist=&opts;
                                                           break;
                                                           
                                                      case 'rt':
                                                           terminal.port=&opts;
                                                           break;
                                                           
                                                      case 'rp':
                                                           terminal.password=&opts;
                                                           break;
                                                           
                                                      default:
                                                           printf(message);
                                                           exit(0);
                                                           break;
                                                      }
                                       }
    
        /*****************DEBUG ZONE*****************/
    
        printf(message);
        printf(optfile.sourcelist);
        printf(optfile.goodlist);
        printf(optfile.badlist);
    
        /********************************************/
    
        return 0;
    
        }
    
    }
    
    тут почему то не заносятся значенияфункции getopt()...что я не правильно сделал?