Morfowanie kodu

Morfowanie kodu to podejście stosowane w zaciemnianiu oprogramowania w celu ochrony aplikacji przed inżynierią wsteczną , analizą , modyfikacjami i włamaniem. Ta technologia chroni kod poziomu pośredniego, na przykład skompilowany z języków Java i .NET ( Oxygene , C# , Visual Basic itp.), a nie binarny kod obiektowy . Morfowanie kodu dzieli chroniony kod na kilka poleceń procesora lub małych fragmentów poleceń i zastępuje je innymi, zachowując ten sam wynik końcowy. W ten sposób protektor zaciemnia kod na poziomie średniozaawansowanym.

Morfowanie kodu to wielopoziomowa technologia zawierająca setki unikalnych wzorców transformacji kodu. Ponadto ta technologia przekształca niektóre polecenia warstwy pośredniej w polecenia maszyny wirtualnej (takie jak p-code ). Morfowanie kodu nie chroni przed śledzeniem w czasie wykonywania, które może ujawnić logikę wykonywania dowolnego chronionego kodu.

ta metoda nie ma koncepcji odszyfrowywania kodu. Chronione bloki kodu są zawsze w stanie wykonywalnym i są wykonywane (interpretowane) jako przekształcony kod. Oryginalny kod pośredni jest do pewnego stopnia nieobecny, ale odciemnianie nadal może dać jasny obraz oryginalnego przepływu kodu.

Morfowanie kodu jest również używane w odniesieniu do technologii kompilacji just-in-time używanej w procesorach Transmeta , takich jak Crusoe i Efficeon , do implementacji architektury zestawu instrukcji x86 .

Morfing kodu jest często używany do zaciemniania ochrony przed kopiowaniem lub innych kontroli przeprowadzanych przez program w celu ustalenia, czy jest to prawidłowa, autentyczna instalacja, czy nieautoryzowana kopia , aby utrudnić usunięcie kodu zabezpieczającego przed kopiowaniem, niż byłoby to w innym przypadku być przypadkiem.

Zobacz też