Con i progressi della tecnologia digitale, la minaccia di livello inimmaginabile di duplicazione e riproduzione illegale di software aumenta anche. Pertanto il tasso di pirateria è in aumento proporzionalmente. Questo scenario ha chiaramente posto la minaccia per i produttori di software e porta allo sviluppo di numerose tecniche di protezione del software. Le numerose tecniche di protezione del software sono state sviluppate e una di queste tecniche di protezione del software è l’offuscamento del codice. L’offuscamento del codice è un meccanismo per nascondere l’algoritmo originale, le strutture dati o la logica del codice, o per indurire o proteggere il codice (che è considerato come proprietà intellettuale dello scrittore software) dal processo di reverse engineering non autorizzato. In generale, l’offuscamento del codice comporta l’occultamento dei dettagli di implementazione di un programma da un avversario, ad es. trasformare il programma in un programma semanticamente equivalente (stesso effetto computazionale), che è molto più difficile da capire per un utente malintenzionato. Nessuna delle attuali tecniche di offuscamento del codice soddisfa tutti i criteri di efficacia dell’offuscamento per resistere agli attacchi di reverse engineering. Pertanto i ricercatori e le industrie del software stanno facendo del loro meglio per applicare tecniche di offuscamento più recenti e migliori sulla loro proprietà intellettuale in un processo regolare. Ma sfortunatamente, il codice del software non è sicuro, cioè può ancora essere rotto. Questo documento presenta alcuni dei metodi di offuscamento, che possono aiutare a proteggere i frammenti di codice sensibili di qualsiasi software, senza alterazione delle funzionalità intrinseche del software. Le tecniche di offuscamento proposte sono implementate nel codice a livello di assembly, con la cura della teoria delle trasformazioni ottimizzanti. Il codice assembly rappresenta le dipendenze dei dati e il comfort per analizzare i dati dopo aver smontato l’eseguibile rispetto al codice decompilato.