Questo articolo è stato scritto in collaborazione con il nostro team di editor e ricercatori esperti che ne hanno approvato accuratezza ed esaustività.
Il Content Management Team di wikiHow controlla con cura il lavoro dello staff di redattori per assicurarsi che ogni articolo incontri i nostri standard di qualità.
Questo articolo è stato visualizzato 41 247 volte
Hai mai avuto la voglia di capire quali sono le protezioni che vengono applicate a un programma per prevenirne la copia e la distribuzione illegale? Con gli strumenti giusti è possibile esaminare il funzionamento interno di un programma e usare la tecnica denominata "reverse-engineering" per apportare le modifiche desiderate. Occorre possedere delle ampie conoscenze sulla programmazione in assembly e in codice esadecimale prima di continuare e dovrai procurarti un "disassembler" (un programma che converte il codice macchina in assembly). Quando avrai raggiunto la confidenza necessaria con il codice, potrai modificare le DLL a tuo piacimento in modo che il programma corrispondente possa funzionare correttamente senza essere acquistato, registrato o attivato.
Passaggi
-
1Impara a programmare in assembly e a manipolare il codice esadecimale. Se hai la voglia di imparare come si "cracca" un software o un programma (cioè come si modifica il codice originale con lo scopo di aggirare le restrizioni o le protezioni anti-copia e anti-pirateria), dovrai avere una buona comprensione del codice assembly. Quest'ultimo è un linguaggio di programmazione a basso livello.[1] L'assembly deriva direttamente dal codice macchina ed esiste una versione di assembly specifica per il tipo di architettura hardware di un computer. La maggior parte dei linguaggi assembly utilizzano il sistema binario o esadecimale per visualizzare il codice.
-
2Installa un disassembler. Per poter analizzare e modificare il contenuto di una DLL, occorre usare diversi strumenti software, incluso un disassembler. IDA Pro rappresenta un'ottima opzione, dato che integra al suo interno un disassembler e un debugger. Esiste anche una versione gratuita del programma che puoi scaricare da questo URL https://www.hex-rays.com/products/ida/support/download_freeware. Tuttavia, è bene precisare che le funzioni della versione gratuita sono limitate rispetto a quelle della versione completa. In alternativa, puoi provare a usare dotPeek. Si tratta di un decompilatore di DLL in grado di decompilare il codice assembly prodotto per il framwork .NET e visualizzarlo in codice C#.[2] Un'altra opzione a disposizione è OllyDBG, un programma gratuito che permette di visualizzare il contenuto di un file DLL.
-
3Avvia l'app che vuoi craccare usando il disassembler che hai scelto. La procedura da seguire varia leggermente in base al disassembler che hai scelto di utilizzare. In questo modo avrai modo di visualizzare l'elenco dei file DLL che verranno richiamati dall'applicazione. Usa un debugger per esaminare le funzioni presenti nel file DLL e richiamate dal programma.[3]
-
4Individua la funzione che tiene conto del periodo di prova gratuito. Molti programmi usano un semplice timer come protezione anti-copia. Quando il timer arriva a zero, l'utente non sarà più in grado di accedere al programma. Per questo motivo l'obiettivo consiste nell'individuare la funzione che gestisce questo timer e inibirne il funzionamento.
- Se il programma che desideri craccare utilizza un sistema di protezione diverso, dovrai cercare la routine che gestisce tale sistema.
-
5Imposta un punto di interruzione del debugger sulla funzione che gestisce il timer. Quando hai individuato la routine che gestisce il timer del programma, imposta il disassembler in modo che interrompa l'esecuzione del programma proprio quando viene richiamata tale funzione. In questo modo potrai focalizzare l'attenzione solo sul codice relativo alla funzione in esame.
-
6Modifica il codice della funzione che gestisce il timer. Adesso che hai individuato il codice sorgente da modificare potrai modificarlo in modo che il programma continui a funzionare correttamente. Per esempio, puoi impedire che il timer raggiunga il limite oltre il quale scatta il blocco dell'esecuzione dell'app oppure puoi evitare che la funzione in oggetto venga richiamata all'interno del programma a ogni avvio.
-
7Ricompila le DLL del nuovo programma. Dopo aver apportato le modifiche necessarie al codice sorgente, dovrai ricompilarlo per creare la versione modificata del programma che utilizzerà le tue DLL e non quelle originali.[4]Pubblicità
Avvertenze
- La pirateria software è illegale, quindi scegli di far parte di questo mondo a tuo rischio e pericolo.
- Modificare la versione originale di un software commerciale è un'azione illegale.