CA2752259C - Procede de protection du code source d'un programme d'ordinateur - Google Patents
Procede de protection du code source d'un programme d'ordinateur Download PDFInfo
- Publication number
- CA2752259C CA2752259C CA2752259A CA2752259A CA2752259C CA 2752259 C CA2752259 C CA 2752259C CA 2752259 A CA2752259 A CA 2752259A CA 2752259 A CA2752259 A CA 2752259A CA 2752259 C CA2752259 C CA 2752259C
- Authority
- CA
- Canada
- Prior art keywords
- program
- code
- computer
- source code
- target code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004590 computer program Methods 0.000 title claims abstract description 12
- 230000008569 process Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 4
- 238000013519 translation Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Abstract
L' invention concerne un procédé de protection du code source d'un programme d'ordinateur comportant les étapes suivantes : - traduire ledit code source en un code cible, - générer à partir dudit code cible un code objet, -appliquer un programme d'obscurcissement pour protéger ledit code source. Selon l'invention, l'étape d'obscurcissement est exécutée après la traduction du code source en code cible et avant la génération dudit code objet.
Description
PROCÉDÉ DE PROTECTION DU CODE SOURCE D'UN
PROGRAMME D'ORDINATEUR
DESCRIPTION
DOMAINE TECHNIQUE
L'invention se situe dans le domaine de la protection des données et des programmes d'ordinateur et concerne plus spécifiquement un procédé
d'obscurcissement d'un programme d'ordinateur afin d'en empêcher le désassemblage, c'est-à-dire la reconstruction du code source à partir du code exécutable, et/ou la modification (patch) par des personnes non autorisées.
L'invention concerne également un programme d'ordinateur enregistré sur un support et comportant des lignes d'instructions qui lorsqu'elles sont exécutées par un ordinateur permettent d'obtenir l'obscurcissement dudit programme.
L'invention concerne également une utilisation du procédé selon l'invention pour obscurcir un programme d'ordinateur enregistré sur un support et destiné à réaliser les fonctions d'un simulateur de vol lorsqu'il est exécuté sur un ordinateur.
ÉTAT DE LA TECHNIQUE ANTÉRIEURE
Les techniques d'obscurcissement de programmes d'ordinateur connues sont essentiellement basées sur l'utilisation d'utilitaires appelés packers dont la fonction consiste à compresser le programme exécutable (.exe, dll, ocx, etc...) et à le crypter simultanément.
PROGRAMME D'ORDINATEUR
DESCRIPTION
DOMAINE TECHNIQUE
L'invention se situe dans le domaine de la protection des données et des programmes d'ordinateur et concerne plus spécifiquement un procédé
d'obscurcissement d'un programme d'ordinateur afin d'en empêcher le désassemblage, c'est-à-dire la reconstruction du code source à partir du code exécutable, et/ou la modification (patch) par des personnes non autorisées.
L'invention concerne également un programme d'ordinateur enregistré sur un support et comportant des lignes d'instructions qui lorsqu'elles sont exécutées par un ordinateur permettent d'obtenir l'obscurcissement dudit programme.
L'invention concerne également une utilisation du procédé selon l'invention pour obscurcir un programme d'ordinateur enregistré sur un support et destiné à réaliser les fonctions d'un simulateur de vol lorsqu'il est exécuté sur un ordinateur.
ÉTAT DE LA TECHNIQUE ANTÉRIEURE
Les techniques d'obscurcissement de programmes d'ordinateur connues sont essentiellement basées sur l'utilisation d'utilitaires appelés packers dont la fonction consiste à compresser le programme exécutable (.exe, dll, ocx, etc...) et à le crypter simultanément.
2 Les packers sont donc constitués de deux parties .
-la routine de compression/cryptage, extérieur au programme compressé ;
- la routine de décompression/décryptage embarquée dans le programme compressé.
Les packers sont plus adaptés à la protection contre la copie qu'à l'obscurcissement des programmes. En outre, il existe des outils logiciels appelés "dépackers" qui sont capables de supprimer automatiquement la protection réalisée sur un programme au moyen d'un packer. Par ailleurs, les packers introduisent des transformations sur le programme à
protéger qui en complexifient l'exécution.
En outre, dans les techniques de l'art antérieur, les packers agissent sur la version binaire du programme compilé. Ceci ne permet pas de retrouver l'information sémantique ayant servie à
l'obscurcissement. Ces packers peuvent agir également sur le programme source. Un inconvénient de cette méthode résulte du fait que l'obscurcissement qui en résulte n'est pas fiable et peut être tronqué par la phase de compilation/optimisation.
Un but de l'invention est de réaliser un obscurcissement simple et efficace et indépendant du langage source du programme à obscurcir.
Un autre but de l'invention est de masquer les transformations d'un programme.
EXPOSÉ DE L'INVENTION
Ces buts sont atteints au moyen d'un procédé d'obscurcissement consistant à insérer des
-la routine de compression/cryptage, extérieur au programme compressé ;
- la routine de décompression/décryptage embarquée dans le programme compressé.
Les packers sont plus adaptés à la protection contre la copie qu'à l'obscurcissement des programmes. En outre, il existe des outils logiciels appelés "dépackers" qui sont capables de supprimer automatiquement la protection réalisée sur un programme au moyen d'un packer. Par ailleurs, les packers introduisent des transformations sur le programme à
protéger qui en complexifient l'exécution.
En outre, dans les techniques de l'art antérieur, les packers agissent sur la version binaire du programme compilé. Ceci ne permet pas de retrouver l'information sémantique ayant servie à
l'obscurcissement. Ces packers peuvent agir également sur le programme source. Un inconvénient de cette méthode résulte du fait que l'obscurcissement qui en résulte n'est pas fiable et peut être tronqué par la phase de compilation/optimisation.
Un but de l'invention est de réaliser un obscurcissement simple et efficace et indépendant du langage source du programme à obscurcir.
Un autre but de l'invention est de masquer les transformations d'un programme.
EXPOSÉ DE L'INVENTION
Ces buts sont atteints au moyen d'un procédé d'obscurcissement consistant à insérer des
3 PCT/EP2010/052279 étapes de traitement avant la génération du code objet de sorte que l'obscurcissement agisse sur le langage machine généré après optimisation.
Ce procédé comporte les étapes suivantes - traduire le code source du programme à obscurcir en un code cible, - générer à partir dudit code cible un code objet, - appliquer un programme d'obscurcissement pour protéger ledit code source, Selon l'invention, l'étape d'obscurcissement est exécutée après la traduction du code source en code cible et avant la génération dudit code objet.
En outre, ledit programme d'obscurcissement comporte une étape d'optimisation dudit code cible.
Préférentiellement, ledit code source est écrit dans un langage évolué de haut niveau d'abstraction et ledit code cible est en langage assembleur.
Dans un mode préféré de réalisation, le programme d'obscurcissement consiste à modifier au moins une ligne du code cible de manière à empêcher la reproduction du code source par désassemblage du code objet et par analyse du code cible obtenu par ce désassemblage.
A cet effet, ledit programme d'obscurcissement comporte les étapes suivantes :
a - sélectionner une variable numérique V
utilisée par ledit programme ou une instruction dudit programme utilisant ladite valeur numérique V,
Ce procédé comporte les étapes suivantes - traduire le code source du programme à obscurcir en un code cible, - générer à partir dudit code cible un code objet, - appliquer un programme d'obscurcissement pour protéger ledit code source, Selon l'invention, l'étape d'obscurcissement est exécutée après la traduction du code source en code cible et avant la génération dudit code objet.
En outre, ledit programme d'obscurcissement comporte une étape d'optimisation dudit code cible.
Préférentiellement, ledit code source est écrit dans un langage évolué de haut niveau d'abstraction et ledit code cible est en langage assembleur.
Dans un mode préféré de réalisation, le programme d'obscurcissement consiste à modifier au moins une ligne du code cible de manière à empêcher la reproduction du code source par désassemblage du code objet et par analyse du code cible obtenu par ce désassemblage.
A cet effet, ledit programme d'obscurcissement comporte les étapes suivantes :
a - sélectionner une variable numérique V
utilisée par ledit programme ou une instruction dudit programme utilisant ladite valeur numérique V,
4 b - définir au moins une opération dont l'exécution fournit ladite valeur numérique V, c - substituer au moins une ligne dudit programme par une nouvelle ligne de programme réalisant ladite opération.
Selon une autre caractéristique, le procédé
selon l'invention comporte en outre une étape consistant assembler la nouvelle ligne de programme pour en obtenir les opcodes et à utiliser les opcodes obtenus comme opérandes de l'opération fournissant la valeur numérique V.
Dans une première variante, la valeur de ladite variable numérique V est ensuite remplacée par le résultat de l'opération préalablement définie.
Dans une autre variante, le codage numérique de ladite instruction est remplacé par l'adresse mémoire pointée par l'opération préalablement définie.
Les étapes a), b) et c) sont répétées de façon récursive.
Le procédé selon l'invention est mis en oeuvre par un programme d'ordinateur enregistré sur un support et comportant des lignes d'instructions qui lorsqu'elles sont exécutées par un ordinateur permettent d'obtenir l'obscurcissement dudit programme conformément aux étapes a) b) et c).
Le procédé selon l'invention peut être utilisé pour obscurcir un programme d'ordinateur enregistré sur un support et destiné à réaliser les fonctions d'un simulateur de vol lorsqu'il est exécuté
par un ordinateur.
BREVE DESCRIPTION DES DESSINS
D'autres caractéristiques et avantages de l'invention ressortiront de la description qui va suivre, prise à titre d'exemple non limitatif, en
Selon une autre caractéristique, le procédé
selon l'invention comporte en outre une étape consistant assembler la nouvelle ligne de programme pour en obtenir les opcodes et à utiliser les opcodes obtenus comme opérandes de l'opération fournissant la valeur numérique V.
Dans une première variante, la valeur de ladite variable numérique V est ensuite remplacée par le résultat de l'opération préalablement définie.
Dans une autre variante, le codage numérique de ladite instruction est remplacé par l'adresse mémoire pointée par l'opération préalablement définie.
Les étapes a), b) et c) sont répétées de façon récursive.
Le procédé selon l'invention est mis en oeuvre par un programme d'ordinateur enregistré sur un support et comportant des lignes d'instructions qui lorsqu'elles sont exécutées par un ordinateur permettent d'obtenir l'obscurcissement dudit programme conformément aux étapes a) b) et c).
Le procédé selon l'invention peut être utilisé pour obscurcir un programme d'ordinateur enregistré sur un support et destiné à réaliser les fonctions d'un simulateur de vol lorsqu'il est exécuté
par un ordinateur.
BREVE DESCRIPTION DES DESSINS
D'autres caractéristiques et avantages de l'invention ressortiront de la description qui va suivre, prise à titre d'exemple non limitatif, en
5 référence à la figure annexée illustrant les étapes essentielles du procédé.
MODES DE RÉALISATION PARTICULIERS
L'invention s'applique à l'obscurcissement d'un programme d'ordinateur enregistré sur un support et destiné à réaliser, lorsqu'il est exécuté par un ordinateur, des fonctions de simulation, des traitements de données de sécurité, ou encore de gestion de processus industriels.
De manière générale, le procédé selon l'invention est applicable à tous les programmes d'ordinateur comportant une pluralité de lignes d'instructions écrites dans un langage source et destiné à être traduit par un compilateur en un langage cible. Le langage source peut être par exemple un langage de programmation de haut niveau d'abstraction et le langage cible est un langage d'assemblage ou langage machine appelé code objet.
La figure annexée illustre les étapes essentielles du procédé selon l'invention.
L'étape 2 consiste à trouver dans la chaine de compilation existante l'étape de compilation du code source au code objet.
L'étape 4 consiste à insérer dans l'étape de compilation les étapes 6, 8 et 10.
L'étape 6 consiste à générer des fichiers en langage assembleur à partir des fichiers en langage
MODES DE RÉALISATION PARTICULIERS
L'invention s'applique à l'obscurcissement d'un programme d'ordinateur enregistré sur un support et destiné à réaliser, lorsqu'il est exécuté par un ordinateur, des fonctions de simulation, des traitements de données de sécurité, ou encore de gestion de processus industriels.
De manière générale, le procédé selon l'invention est applicable à tous les programmes d'ordinateur comportant une pluralité de lignes d'instructions écrites dans un langage source et destiné à être traduit par un compilateur en un langage cible. Le langage source peut être par exemple un langage de programmation de haut niveau d'abstraction et le langage cible est un langage d'assemblage ou langage machine appelé code objet.
La figure annexée illustre les étapes essentielles du procédé selon l'invention.
L'étape 2 consiste à trouver dans la chaine de compilation existante l'étape de compilation du code source au code objet.
L'étape 4 consiste à insérer dans l'étape de compilation les étapes 6, 8 et 10.
L'étape 6 consiste à générer des fichiers en langage assembleur à partir des fichiers en langage
6 source tout en préservant les options d'optimisation associées à la phase de compilation.
L'étape 8 consiste à appliquer le programme d'obscurcissement aux fichiers en langage assembleur pour générer des fichiers en langages assembleur obscurcis. Dans ce cas, le programme d'obscurcissement assure une fonction similaire à celle d'un optimiseur de code.
L'étape 10 consiste à générer les fichiers objets à partir des fichiers en langage assembleur.
L'insertion du programme obscurcissant a un impact très faible sur un projet en développement. En effet, la seule modification apportée à la chaîne de compilation est l'ajout d'une instruction appelant le programme obscurcissant lors de la génération du fichier en langage machine. Cela est réalisé en spécifiant une option dans la ligne de commande du compilateur. Le programme obscurcissant utilise ensuite les informations contenues dans le fichier en langage machine généré, l'obscurcit, et régénère un fichier en langage machine, qui sera ensuite repris dans les étapes de compilations suivantes.
Cette solution rend l'obscurcissement indépendant du langage source. De plus le programme obscurcissant agit au plus près du langage machine, avec toutefois un bon niveau d'informations, et donc permet un obscurcissement précis.
L'étape 8 consiste à appliquer le programme d'obscurcissement aux fichiers en langage assembleur pour générer des fichiers en langages assembleur obscurcis. Dans ce cas, le programme d'obscurcissement assure une fonction similaire à celle d'un optimiseur de code.
L'étape 10 consiste à générer les fichiers objets à partir des fichiers en langage assembleur.
L'insertion du programme obscurcissant a un impact très faible sur un projet en développement. En effet, la seule modification apportée à la chaîne de compilation est l'ajout d'une instruction appelant le programme obscurcissant lors de la génération du fichier en langage machine. Cela est réalisé en spécifiant une option dans la ligne de commande du compilateur. Le programme obscurcissant utilise ensuite les informations contenues dans le fichier en langage machine généré, l'obscurcit, et régénère un fichier en langage machine, qui sera ensuite repris dans les étapes de compilations suivantes.
Cette solution rend l'obscurcissement indépendant du langage source. De plus le programme obscurcissant agit au plus près du langage machine, avec toutefois un bon niveau d'informations, et donc permet un obscurcissement précis.
Claims (9)
1. Procédé de protection du code source d'un programme d'ordinateur, ledit procédé étant mis en uvre par ordinateur et comportant les étapes suivantes :
a- traduire ledit code source en un code cible, b- générer à partir dudit code cible un code objet, c- appliquer un programme d'obscurcissement pour protéger ledit code source dans lequel ledit programme d'obscurcissement est exécutée après la traduction du code source en code cible et avant la génération dudit code objet et comporte les étapes suivantes :
d- remplacer au moins une ligne dudit programme d'ordinateur par une nouvelle ligne de programme réalisant une opération qui fournit une variable numérique utilisée par ledit programme d'ordinateur ou une instruction dudit programme d'ordinateur, e- assembler une ligne du programme d'ordinateur pour en obtenir les opcodes, f- utiliser les opcodes obtenus comme opérandes de l'opération fournissant la variable numérique.
a- traduire ledit code source en un code cible, b- générer à partir dudit code cible un code objet, c- appliquer un programme d'obscurcissement pour protéger ledit code source dans lequel ledit programme d'obscurcissement est exécutée après la traduction du code source en code cible et avant la génération dudit code objet et comporte les étapes suivantes :
d- remplacer au moins une ligne dudit programme d'ordinateur par une nouvelle ligne de programme réalisant une opération qui fournit une variable numérique utilisée par ledit programme d'ordinateur ou une instruction dudit programme d'ordinateur, e- assembler une ligne du programme d'ordinateur pour en obtenir les opcodes, f- utiliser les opcodes obtenus comme opérandes de l'opération fournissant la variable numérique.
2. Procédé selon la revendication 1, comportant en outre une étape d'optimisation dudit code cible.
3. Procédé selon la revendication 2, dans lequel ledit code source est écrit dans un langage évolué de haut niveau d'abstraction et ledit code cible est en langage assembleur.
4. Procédé selon l'une des revendications 1 à 3, dans lequel ledit programme d'obscurcissement consiste à modifier au moins une ligne du code cible de manière à empêcher la reproduction du code source par désassemblage du code objet et par analyse du code cible obtenu par le désassemblage.
5. Procédé selon la revendication 1 consistant à remplacer la valeur de ladite variable numérique par le résultat de l'opération dont l'exécution fournit ladite variable numérique donnée.
6. Procédé selon la revendication 1 consistant à remplacer le codage numérique de ladite instruction par l'adresse mémoire pointée par l'opération définie à l'étape b).
7. Procédé selon la revendication 1, dans lequel les étapes d) à e) sont répétées de façon récursive.
8. Une mémoire lisible par ordinateur stockant des instructions exécutables dans l'ordinateur dont l'exécution permet d'obtenir l'obscurcissement dudit programme conformément au procédé selon la revendication 1.
9. Utilisation du procédé selon la revendication 1 pour obscurcir ledit programme d'ordinateur enregistré sur un support et destiné
à réaliser les fonctions d'un simulateur de vol lorsqu'il est exécuté par un ordinateur.
à réaliser les fonctions d'un simulateur de vol lorsqu'il est exécuté par un ordinateur.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0951162A FR2942559B1 (fr) | 2009-02-24 | 2009-02-24 | Procede de protection du code source d'un programme d'ordinateur. |
FR0951162 | 2009-02-24 | ||
PCT/EP2010/052279 WO2010097383A1 (fr) | 2009-02-24 | 2010-02-23 | Procédé de protection du code source d'un programme d'ordinateur. |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2752259A1 CA2752259A1 (fr) | 2010-09-02 |
CA2752259C true CA2752259C (fr) | 2017-05-09 |
Family
ID=41111050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2752259A Expired - Fee Related CA2752259C (fr) | 2009-02-24 | 2010-02-23 | Procede de protection du code source d'un programme d'ordinateur |
Country Status (5)
Country | Link |
---|---|
US (1) | US8533826B2 (fr) |
EP (1) | EP2401694A1 (fr) |
CA (1) | CA2752259C (fr) |
FR (1) | FR2942559B1 (fr) |
WO (1) | WO2010097383A1 (fr) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150493B (zh) * | 2013-02-28 | 2016-06-22 | 浙江中控技术股份有限公司 | 一种JavaScript代码的混淆方法和装置 |
CN104199921B (zh) * | 2014-08-30 | 2017-09-15 | 深圳市云来网络科技有限公司 | 网页应用的防拷贝追踪方法及网页防拷贝追踪装置 |
US10068070B2 (en) * | 2015-05-05 | 2018-09-04 | Nxp B.V. | White-box elliptic curve point multiplication |
US20160328539A1 (en) * | 2015-05-05 | 2016-11-10 | Nxp B.V. | Obscuring Software Code With Split Variables |
CN108460254B (zh) * | 2018-03-13 | 2020-05-22 | 北京顶象技术有限公司 | 固件保护方法及装置 |
GB201804818D0 (en) * | 2018-03-26 | 2018-05-09 | Data Signals Ltd | Method and apparatus for data obfuscation |
CN111552465B (zh) * | 2020-05-12 | 2022-07-05 | 中国民航大学 | 一种p2020机器码程序到c语言源程序的溯源方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272648A (ja) * | 1994-12-29 | 1996-10-18 | Hitachi Ltd | デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置 |
EP0988591A1 (fr) * | 1997-06-09 | 2000-03-29 | Intertrust, Incorporated | Techniques d'obscurcissement pour augmenter la securite de logiciels |
US6594761B1 (en) * | 1999-06-09 | 2003-07-15 | Cloakware Corporation | Tamper resistant software encoding |
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US7080359B2 (en) * | 2002-01-16 | 2006-07-18 | International Business Machines Corporation | Stack unique signatures for program procedures and methods |
CA2447451C (fr) * | 2000-05-12 | 2013-02-12 | Xtreamlok Pty. Ltd. | Procede et un systeme de securite de l'information |
JP4892167B2 (ja) * | 2000-07-18 | 2012-03-07 | シンプレックス メジャー センドリアン ベルハッド | ディジタル・データ保護構成 |
US7237123B2 (en) * | 2000-09-22 | 2007-06-26 | Ecd Systems, Inc. | Systems and methods for preventing unauthorized use of digital content |
GB2405958A (en) * | 2003-08-20 | 2005-03-16 | Macrovision Europ Ltd | Code obfuscation and controlling a processor by emulation |
US7584364B2 (en) * | 2005-05-09 | 2009-09-01 | Microsoft Corporation | Overlapped code obfuscation |
JP4918544B2 (ja) * | 2005-10-28 | 2012-04-18 | パナソニック株式会社 | 難読化評価方法、難読化評価装置、難読化評価プログラム、記憶媒体および集積回路 |
US8752032B2 (en) * | 2007-02-23 | 2014-06-10 | Irdeto Canada Corporation | System and method of interlocking to protect software-mediated program and device behaviours |
-
2009
- 2009-02-24 FR FR0951162A patent/FR2942559B1/fr not_active Expired - Fee Related
-
2010
- 2010-02-23 EP EP10710814A patent/EP2401694A1/fr not_active Withdrawn
- 2010-02-23 US US13/202,849 patent/US8533826B2/en active Active
- 2010-02-23 WO PCT/EP2010/052279 patent/WO2010097383A1/fr active Application Filing
- 2010-02-23 CA CA2752259A patent/CA2752259C/fr not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
FR2942559A1 (fr) | 2010-08-27 |
WO2010097383A1 (fr) | 2010-09-02 |
US8533826B2 (en) | 2013-09-10 |
US20120096562A1 (en) | 2012-04-19 |
FR2942559B1 (fr) | 2016-05-20 |
EP2401694A1 (fr) | 2012-01-04 |
CA2752259A1 (fr) | 2010-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2752259C (fr) | Procede de protection du code source d'un programme d'ordinateur | |
CN109992935B (zh) | 一种源代码保护方法及装置 | |
CN104463002B (zh) | 一种加固apk的方法和装置以及apk加固客户端和服务器 | |
US8429637B2 (en) | System and method for conditional expansion obfuscation | |
KR20110031426A (ko) | 소프트웨어 애플리케이션들의 화이트박스 구현들을 생성하는 시스템 및 방법 | |
CN111090433B (zh) | 一种数据处理的方法、装置和存储介质 | |
CN105095771B (zh) | 一种共享目标文件的保护方法及装置 | |
Rahimian et al. | On the reverse engineering of the citadel botnet | |
Jain et al. | Enriching reverse engineering through visual exploration of Android binaries | |
EP2588953A1 (fr) | Procédé de compilation sélective, dispositif et produit programme d'ordinateur correspondant | |
CN110598379A (zh) | 一种实现字符串混淆的方法、系统、设备及存储介质 | |
EP2958040A1 (fr) | Procédé et dispositif de codage de fichiers sources pour la livraison sécurisée de code source | |
WO2006134304A2 (fr) | Procede de protection d'un code-source en langage semi-interprete | |
Barbary | SEP: Source Extraction and Photometry | |
KR102459774B1 (ko) | Dll 파일 암호화 방법, 이를 수행하는 dll 파일 암호화 시스템, 및 이를 저장하는 기록매체 | |
FR3011354A1 (fr) | Procede d'execution par un microprocesseur d'un code binaire polymorphique d'une fonction predeterminee | |
CN113626773B (zh) | 一种基于中间语言的代码保护方法 | |
CA2752339C (fr) | Procede d'obscurcissement d'un programme d'ordinateur | |
You et al. | Reversing obfuscated control flow structures in android apps using redex optimizer | |
CN113282294A (zh) | 基于安卓平台Java字符串混淆的方法和装置 | |
Busch et al. | A cloud-based compilation and hardening platform for android apps | |
Ilić et al. | Protection of Android applications from decompilation using class encryption and native code | |
Okonta et al. | Deploying Java Platform to Design a Framework of Protective Shield for Anti–Reversing Engineering | |
FR3071642A1 (fr) | Procede d'execution d'un programme par un appareil electronique | |
KR102529826B1 (ko) | 난독화 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request |
Effective date: 20150120 |
|
MKLA | Lapsed |
Effective date: 20210223 |