Morfing kódu - Code morphing

Code morphing je přístup používaný v obfuscating softwaru k ochraně softwarových aplikací před zpětným inženýrstvím , analýzou , úpravami a crackingem. Tato technologie chrání kód střední úrovně, například zkompilovaný z jazyků Java a .NET ( Oxygene , C # , Visual Basic atd.), Nikoli kód binárního objektu . Code morphing rozdělí chráněný kód na několik příkazů procesoru nebo malých úryvků příkazů a nahradí je jinými, při zachování stejného konečného výsledku. Chránič tedy zamlžuje kód na střední úrovni.

Code morphing je víceúrovňová technologie obsahující stovky jedinečných vzorů transformace kódu. Tato technologie navíc transformuje některé příkazy mezilehlé vrstvy na příkazy virtuálního stroje (například p-kód ). Code morphing nechrání před runtime trasováním, které může odhalit logiku provádění libovolného chráněného kódu.

Na rozdíl od jiných chráničů kódu neexistuje u této metody žádný koncept dešifrování kódu . Chráněné bloky kódu jsou vždy ve spustitelném stavu a jsou spouštěny (interpretovány) jako transformovaný kód. Původní mezilehlý kód do určité míry chybí, ale deobfuskace může stále poskytnout jasný pohled na tok původního kódu.

Code morphing se také používá k označení technologie kompilace just-in-time používané v procesorech Transmeta , jako je Crusoe a Efficeon, k implementaci architektury sady instrukcí x86 .

Změna kódu se často používá při obfuskaci ochrany proti kopírování nebo jiných kontrolách prováděných programem k určení, zda se jedná o platnou, autentickou instalaci nebo neoprávněnou kopii , aby bylo odstranění kódu na ochranu proti kopírování obtížnější, než by tomu bylo jinak být případ.

Viz také

Reference