jaredsburrows/rarcrack

INFO: number of threads adjusted to 12

milahu opened this issue · 0 comments

luxury problem on cpus with more than 12 threads

$ rarcrack --threads 13 asdf.rar

INFO: number of threads adjusted to 12
INFO: detected file type: rar
INFO: cracking asdf.rar, status file: asdf.rar.xml
INFO: Resuming cracking from password: '38vD'
Probing: '3bfs' [3505 pwds/sec]
Probing: '3dXE' [3476 pwds/sec]
Probing: '3gFT' [3477 pwds/sec]
Probing: '3jnS' [3471 pwds/sec]
Probing: '3m72' [3496 pwds/sec]
Probing: '3oQl' [3499 pwds/sec]
Probing: '3ryo' [3473 pwds/sec]

rarcrack.c

                printf("         --threads: you can specify how many threads\n");
                printf("                    will be run, maximum 12 (default: 2)\n\n");
            } else if (strcmp(argv[i],"--threads") == 0) {
                if ((i + 1) < argc) {
                    sscanf(argv[++i], "%d", &threads);
                    if (threads < 1) threads = 1;
                    if (threads > 12) {
                        printf("INFO: number of threads adjusted to 12\n");
                        threads = 12;
                    }
                } else {
                    printf("ERROR: missing parameter for option: --threads!\n");
                    help = 1;
                }
            } else if (strcmp(argv[i],"--type") == 0) {
void crack_start(unsigned int threads) {
    pthread_t th[13];
    unsigned int i;

    for (i = 0; i < threads; i++) {
        (void) pthread_create(&th[i], NULL, crack_thread, NULL);
    }

    (void) pthread_create(&th[12], NULL, status_thread, NULL);

    for (i = 0; i < threads; i++) {
        (void) pthread_join(th[i], NULL);
    }

    (void) pthread_join(th[12], NULL);
}

workaround: use rar2john from john the ripper

rar2john asdf.rar > asdf.rar.hashes
john asdf.rar.hashes