wraz z postępem technologii cyfrowej wzrasta również zagrożenie niewyobrażalnym poziomem powielania i nielegalnego powielania oprogramowania. W związku z tym wskaźnik piractwa rośnie proporcjonalnie. Scenariusz ten wyraźnie stanowi zagrożenie dla producentów oprogramowania i prowadzi do rozwoju licznych technik ochrony oprogramowania. Liczne techniki ochrony oprogramowania zostały opracowane i jedną z takich technik ochrony oprogramowania jest zaciemnienie kodu. Zamaskowanie kodu jest mechanizmem ukrywania oryginalnego algorytmu, struktur danych lub logiki kodu, lub utwardzania lub ochrony kodu (który jest uważany za własność intelektualną autora oprogramowania) przed nieautoryzowanym procesem inżynierii odwrotnej. Ogólnie rzecz biorąc, maskowanie kodu polega na ukrywaniu szczegółów implementacji programu przed przeciwnikiem, tj. przekształcenie programu w semantycznie równoważny (ten sam efekt obliczeniowy) program, który jest znacznie trudniejszy do zrozumienia dla atakującego. Żadna z obecnych technik maskowania kodu nie spełnia wszystkich kryteriów skuteczności maskowania, aby oprzeć się atakom inżynierii odwrotnej. Dlatego naukowcy, jak również przemysł oprogramowania starają się jak najlepiej stosować nowsze i lepsze techniki zaciemniania nad ich własnością intelektualną w regularnym procesie. Ale niestety kod oprogramowania nie jest bezpieczny, tzn. nadal może zostać złamany. W artykule przedstawiono niektóre metody zaciemniania, które mogą pomóc w ochronie wrażliwych fragmentów kodu dowolnego oprogramowania, bez zmiany nieodłącznych funkcjonalności oprogramowania. Proponowane techniki zaciemniania są zaimplementowane w kodzie assembly level, z dbałością o teorię optymalizacji przekształceń. Kod asemblacji reprezentuje zależności danych i komfort analizy danych po demontażu pliku wykonywalnego w porównaniu do zdekompilowanego kodu.