Ci sono diversi modi di interpretare la tua domanda. Anche in questo caso, ci sono una serie di approcci, davvero troppi per spiegarli in un breve post.
Una delle definizioni classiche di cracking è quella di rompere la protezione della copia o l'applicazione della licenza. Un modo per farlo è usare un debugger e un disassemblatore per analizzare il binario e trovare la sezione del programma che fa rispettare la licenza. Poi si modifica il binario per saltare il controllo. Un altro modo è quello di analizzare il binario e determinare come determina se una chiave di prodotto/licenza è valida. Una volta che si conosce l'algoritmo, si può scrivere un programma per generare chiavi di licenza che il programma non modificato accetta come valide.
Un'altra definizione di cracking è quella di trovare una falla sfruttabile in un programma per poter scrivere un exploit zero-day che si può poi utilizzare per divertimento e profitto. Questo utilizza una combinazione di analisi manuale, analisi automatizzata (sia del codice sorgente che del codice binario) e simulazione di input. Questo è più comunemente chiamato ricerca di vulnerabilità.
Tutte queste attività possono essere noiose e sono generalmente difficili. Possono essere necessarie settimane o mesi di lavoro e tentativi falliti per ottenere un risultato. Bisogna godersi il lavoro e la sfida.