A SYSTEM AND METHOD FOR AGGRESSIVE SELF-MODIFICATION IN DYNAMIC FUNCTION CALL SYSTEMS

Embodiments of the invention provide a system and method for software obfuscation for transforming a program from a first form to more secure form that is resistant to static and dynamic attacks. In an embodiment, the method utilizes a sophisticated pre-analysis step to comprehend the function-call...

Full description

Saved in:
Bibliographic Details
Main Author LIEM, CLIFFORD
Format Patent
LanguageEnglish
French
Published 03.01.2017
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Embodiments of the invention provide a system and method for software obfuscation for transforming a program from a first form to more secure form that is resistant to static and dynamic attacks. In an embodiment, the method utilizes a sophisticated pre-analysis step to comprehend the function-call structure, the function-call layout, and the entire function call graph of the program, in order to determine strategic points in the program for changing the program. The method provides resistance to static attacks by transforming the original function-call layout to a new layout. In an embodiment changing the layout may include changing the function boundaries. The method also provides resistance to static attacks by transforming the original function-call structure to a new structure to be able to self modify as the transformed program executes in memory. In an embodiment, changing the function-call structure may include modifying when and how functions are called, and/or choosing random paths of execution that lead to the same result. The transformed program is semantically equivalent to the original program but is more resistant to static and dynamic attacks. Des modes de réalisation de l'invention concernent un système et un procédé d'obscurcissement de logiciel permettant de transformer un programme d'une première forme en une forme plus sécurisée qui résiste aux attaques statiques et dynamiques. Dans un mode de réalisation, le procédé utilise une étape de pré-analyse sophistiquée pour englober la structure des appels de fonction, la configuration des appels de fonctions et le graphe complet des appels de fonctions du programme afin de déterminer les points stratégiques du programme pour modifier le programme. Le procédé offre une résistance aux attaques statiques en transformant la configuration d'origine des appels de fonctions en une nouvelle configuration. Dans un mode de réalisation, la modification de la configuration peut consister à modifier les limites de la fonction. Le procédé offre également une résistance aux attaques statiques en transformant la structure d'origine des appels de fonctions en une nouvelle structure pour permettre une auto-modification lorsque le programme transformé s'exécute dans la mémoire. Dans un mode de réalisation, la modification de la structure des appels de fonctions peut consister à modifier le moment et la manière dont les fonctions sont appelées, et/ou à choisir des chemins d'exécution aléatoires qui conduisent au même résultat. Le programme transformé est sémantiquement équivalent au programme d'origine, mais plus résistant aux attaques statiques et dynamiques.
Bibliography:Application Number: CA20092776913