Un software craccato viene creato con l’uso di debugger. Un debugger è uno speciale software che permette ai programmatori di decostruire il loro software nelle sue parti costitutive allo scopo di trovare bug, e quindi de-bugging. Inoltre i debugger possono essere usati per il reverse-engineering o per vedere cosa c’è all’interno del software, per imparare la sua logica. Quest’ultimo metodo è utilizzato soprattutto dai ricercatori di malware per studiare cosa fanno i malware all’interno. Ma può anche essere utilizzato da un hacker per “crackare” (o bypassare) la registrazione legale del software o, talvolta, per modificare il normale comportamento del software, ad esempio iniettandovi un codice dannoso.
L’aggressore smonta il codice binario (che viene sempre fornito con software sotto forma di file .exe e .dll su Windows, e per lo più come eseguibili Unix all’interno dei pacchetti .app su Mac), quindi con un debugger studia il codice binario e cerca di individuare la logica di registrazione per bypassarla. La difficoltà principale è quella di localizzare la linea corretta tra milioni e milioni di altre linee di codice simili. Non molte persone sono in grado di farlo ed è per questo che il “cracking” del software è un’abilità speciale. Quindi ora sapete come il software è “incrinato”.
Perché non è possibile impedire il crack? Tutto si riduce al fatto che qualsiasi codice software deve essere letto o dalla CPU (in caso di codice nativo binario) o da un interprete o da un compilatore JIT (in caso di codice JavaScript o .NET.) Ciò significa che se c’è un modo di leggere/interpretare qualcosa, non importa quanto sia complesso o contorto, un aggressore con sufficiente conoscenza e perseveranza sarà in grado di leggerlo e quindi di decifrarlo.
C’è però un argomento secondo cui il software basato su cloud è più sicuro (programmi come ad esempio evernote), il che è vero, dato che il suo codice (binario) rimane sul server e gli utenti finali non hanno accesso diretto ad esso. E anche se il software basato sul cloud è sicuramente il futuro, ha alcuni grossi svantaggi che non gli permetteranno mai di sostituire completamente il software convenzionale.
Per fortuna il lato positivo è che ci sono tanti altri clienti che apprezzano il lavoro che si fa per creare software e sono pronti ad acquistarlo e non utilizzano software craccato.
sauroweb -
non sono gli hacker a crackare un programma, ma i kracker……