Beispiel #1
0
int 
main( int argc, char * argv[] )
{
    // Variables locales
    int return_function;
 
    // Inicializacion de las variables locales   
    return_function = _SUCCESS__;
    
    // Mostramos la cabecera del programa
    ShowProgramHeader( VERSION );
    
    // Controlamos los argumentos
    if ( argc < MIN_ARGUMENTS )
    {
        ShowSyntax( argv[0] );
        return_function = _ERROR__;
    }
    
    // Lanzamos la funcion principal 
    if ( return_function == _SUCCESS__ )
    {
        if ( !strcmp( argv[2], "-p" ) )
            return_function = InjectorDll
            ( 
                argv[ARG_NR_DLL_TO_INJ], 
                argv[ARG_NR_TYPE_APP], 
                NULL, 
                (DWORD) atoi( argv[ARG_NR_PROC_PID] )
            );
        else
            return_function = InjectorDll
            ( 
                argv[ARG_NR_DLL_TO_INJ], 
                argv[ARG_NR_TYPE_APP], 
                argv[ARG_NR_PROG_NAME], 
                0 
            );
        
    }

    // Espera de pulsacion de ENTER
    getchar();

    return return_function;
}
Beispiel #2
0
/***    ParseArgs - Parse command-line arguments
 *
 *      Entry
 *          argc - count of arguments
 *          argv - array of arguments
 *
 *      Exit-Success
 *          GLOBAL structure (g) fields filled in
 *
 *      Exit-Failure
 *          Prints message and exits program.
 */
void ParseArgs(int argc, char **argv)
{
    char    ch;
    int     i;
    char   *pch;

    // Save command line pointers for later
    g.argc = argc;
    g.argv = argv;
    g.cFiles = 0;       // No files seen, yet

    // Parse each argument
    for (i=1; i<argc; i++) {
        if ( (argv[i][0] == chSWITCH) ||
             (argv[i][0] == chSWITCH2)  ) {
            pch = &argv[i][1];          // Start with first character
            while (*pch) {
                ch = (char)toupper((int)*pch);
                switch (ch) {

                case '?':
                    ShowSyntax(1);
                    break;

                default:
                    g.ach[0] = *pch;
                    g.ach[1] = '\0';
                    Error("Unknown switch: %s",g.ach);
                }
                pch++;
            }
        }
        else {  // Must be a file spec
            g.apszFile[g.cFiles++] = argv[i];
        }
    }

    // ** If no file name, give error
    if (g.cFiles == 0)
        Error("Must specify a file name.",NULL);
}
Beispiel #3
0
int main(int argc, char **argv)
{
    int rcRet = 0;

    /*
     * Parse arguments.
     */
    int fArgsDone = 0;
    for (int i = 1; i < argc; i++)
    {
        const char *psz = argv[i];

        if (!fArgsDone && psz[0] == '-' && psz[1])
        {
            /* convert long option to short. */
            if (*++psz == '-')
            {
                psz++;
                if (!*psz) /* -- */
                {
                    fArgsDone = 1;
                    continue;
                }
                if (!strcmp(psz, "line-numbers"))
                    psz = "l";
                else if (!strcmp(psz, "no-line-numbers"))
                    psz = "L";
                else if (!strcmp(psz, "global-syms")    || !strcmp(psz, "public-syms"))
                    psz = "g";
                else if (!strcmp(psz, "no-global-syms") || !strcmp(psz, "no-public-syms"))
                    psz = "G";
                else if (!strcmp(psz, "privat-syms")    || !strcmp(psz, "local-syms"))
                    psz = "p";
                else if (!strcmp(psz, "no-privat-syms") || !strcmp(psz, "no-local-syms"))
                    psz = "P";
                else if (!strcmp(psz, "version"))
                    psz = "v";
                else if (!strcmp(psz, "help"))
                    psz = "h";
                else
                {
                    fprintf(stderr, "%s: syntax error: unknown option '--%s'\n", argv[0], psz);
                    return 1;
                }
            }

            /* eat short options. */
            while (*psz)
                switch (*psz++)
                {
                    case 'l': g_fLineNumbers = 1; break;
                    case 'L': g_fLineNumbers = 0; break;
                    case 'p': g_fPrivateSyms = 1; break;
                    case 'P': g_fPrivateSyms = 0; break;
                    case 'g': g_fGlobalSyms = 1; break;
                    case 'G': g_fGlobalSyms = 0; break;
                    case '?':
                    case 'H':
                    case 'h': return ShowSyntax(argv[0]);
                    case 'v': return ShowVersion();
                    default:
                        fprintf(stderr, "%s: syntax error: unknown option '-%c'.\n", argv[0], psz[-1]);
                        return 1;
                }
        }
        else
        {
            /* Dump does it's own bitching if something goes wrong. */
            int rc = DumpFile(psz);
            if (rc && !rcRet)
                rc = rcRet;
        }
    }

    return rcRet;
}