Task 1: Il programma da craccare

Il programma contenente il PIN da craccare è

  1. disponibile direttamente nel docker (folder EsercitazioneProcessi, programma ./checkPIN)
  2. scaricabile qui come file binario o codice sorgente
    • checkPIN: Linux, x86_64
    • checkPIN-macOS: macOS, x86_64
    • checkPIN-macOS-M1: macOS, arm64
    • checkPIN-WSL: WLS windows, X86_64
    • checkPIN.c: file sorgente (in questo caso settate voi il PIN da craccare), vedere anche sotto

    NOTA: Se eseguendo il file con ./checkPIN il sistema vi dice permission denied, dovete rendere il file eseguibile con chmod +x checkPIN (lo stesso vale per gli altri eseguibili, su MAC bisogna autorizzare l’esecuzione)

  3. compilabile dal sorgente (in questo caso settate voi il PIN da craccare)
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
     
    #define SUCCESSO "PIN %s corretto! >>> Sei autenticato <<<\n"
    #define FALLIMENTO "PIN %s errato\n"
    #define PINsegreto "01234"
     
    int main(int argc, char **argv) {    
        if (argc == 1) {
            printf("Utilizzo: %s PIN\n(Il PIN è di %ld cifre e può iniziare per 0!)\n",
                    argv[0], strlen(PINsegreto));
            exit(2); // Wrong usage
        }        
    
        if (strcmp(PINsegreto,argv[1])==0) {
            printf(SUCCESSO,argv[1]);
            // qui si avrebbe accesso alle risorse se fosse un PIN vero ...
            exit(0); // success
        } else {
            printf(FALLIMENTO, argv[1]); 
            exit(1); // wrong PIN
        }
        
    }

    Quanto avete un eseguibile funzionante, potete passare al task 2!