JP2016511905A - コンパイラベースの難読化 - Google Patents
コンパイラベースの難読化 Download PDFInfo
- Publication number
- JP2016511905A JP2016511905A JP2015560258A JP2015560258A JP2016511905A JP 2016511905 A JP2016511905 A JP 2016511905A JP 2015560258 A JP2015560258 A JP 2015560258A JP 2015560258 A JP2015560258 A JP 2015560258A JP 2016511905 A JP2016511905 A JP 2016511905A
- Authority
- JP
- Japan
- Prior art keywords
- code
- compiler
- obfuscation
- module
- obfuscated
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 90
- 230000008569 process Effects 0.000 claims abstract description 29
- 238000011161 development Methods 0.000 claims description 52
- 230000006870 function Effects 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 19
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000013459 approach Methods 0.000 abstract description 9
- 238000001514 detection method Methods 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000003466 anti-cipated effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
第三者がコードを不法に使用し、または配布することを防止するために、開発者が従来の難読化技法を使用して自身のコードに効果的な保護を追加することは困難であるか、または禁止され得る。ソースコーディング中またはコンパイラによって出力されるコンパイル済みバイナリのいずれかに適用される従来の難読化技法は、限られた保護オプションを提供し、ランタイムにおいて検出することがかなり容易である技法を使用し、および/または、時間/複雑さ/コストを開発プロセスに追加し得る。
例示的な動作環境
図1は、本明細書において記載される技法を採用するように動作可能である例示的な実装における環境100の図である。例示される環境100は、ネットワーク106を介して通信可能に結合されるコンピューティングデバイス102とウェブサービス104とを含む。コンピューティングデバイス102は、ネットワーク106上でウェブサービス104を介して利用可能とされる多様なリソース105(例えば、コンテンツおよびサービス)にアクセスし、相互作用するように構成され得る。コンピューティングデバイス102およびウェブサービス104は各々、幅広いコンピューティングデバイスによって実装され得る。
コンパイラベースの難読化の詳細
以下の議論は、前述されたシステムおよびデバイスを利用して実装され得るコンパイラベースの難読化技法の実装上の詳細を説明する。コンパイラベースの難読化の態様は、図2に描かれる例示的なシナリオを参照しつつ説明される。具体的には、図2は、200において、いくつかの実装によってコンパイル中にコードを難読化することによって保護されたコンパイル済みコードを生成するために採用され得る開発モジュール112の構成要素および動作に関する詳細を全体的に描く。
例示的な手続き
このセクションでは、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせに関連して実装され得る、コンパイラベースの難読化のための例示的な手続きが議論される。手続きは、1つまたは複数のデバイスによって実行される動作を指定するブロックのセットとして示され、それぞれのブロックによって動作を実行するために図示される順序に必ずしも限定されない。少なくともいくつかの実施形態において、手続きは、図1の例示的なコンピューティングデバイス102などの適切に構成されたコンピューティングデバイスによって実装され得る。手続きの態様は、コンピューティングデバイスの開発モジュール112によって実装され得る。さらに、開発モジュールは、例示的な手続きに関連して説明される動作のうちの少なくともいくつかを実行するように構成される難読化モジュール116および/またはコンパイラモジュール114を含み、または利用し得る。
例示的なシステム
図6は、本明細書において説明される様々な技法を実装し得る1つまたは複数のコンピューティングシステムおよび/またはデバイスを表す例示的なコンピューティングデバイス602を含む例示的なシステム600を例示する。コンピューティングデバイス602は、例えば、サービスプロバイダのサーバ、クライアント(例えば、クライアントデバイス)に関連付けられるデバイス、オンチップシステム、および/または任意の他の適切なコンピューティングデバイスもしくはコンピューティングシステムであり得る。
結び
本発明は、構造的な特徴および/または方法論的な動作に固有の言語において説明されてきたが、添付の特許請求の範囲において定義される本発明は、必ずしも特定の特徴または動作に限定されるとは限らないことが理解されるべきである。むしろ、特定の特徴および動作は、特許請求の範囲に記載された発明を実装する例示的な形態として開示される。
Claims (10)
- コードのコンパイルの一環として、前記コードの一部を難読化するための1つまたは複数の変更を生成するために、開発プロジェクト用の前記コードをコンパイラ内で変更することと、
前記コードの一部を難読化するための前記変更が前記コンパイラ内で生成された、前記コードのコンパイル済みのバージョンを、前記コンパイラによって形成することと、
を含む、方法。 - 前記変更を定義する指示文を有する難読化記述を取得することと、
前記変更を生成するために、前記難読化記述を前記コードに適用することと、
をさらに含む、請求項1に記載の方法。 - 前記難読化記述に基づいて前記コードの部分を選択的に難読化することをさらに含み、前記難読化記述が、保護すべき前記コードの1つまたは複数の部分と、前記1つまたは複数の部分に行うべき1つまたは複数の変更とを指定するように構成される、請求項2に記載の方法。
- 前記変更を生成するために、前記コンパイルプロセスの一環として、1つまたは複数の難読化アルゴリズムをオンザフライで形成することをさらに含み、異なる難読化アルゴリズムは、前記コードの少なくとも2つの異なる部分のために形成され、前記コードの少なくとも2つの異なる部分に適用される、請求項2に記載の方法。
- 複数の部分の保護を個別化するために、前記難読化記述中の前記指示文によって指示されるように、異なる難読化機能および変更を前記複数の部分に個々に適用することを含む、前記コードのコンパイルの一環として前記コードの前記複数の部分を変更すること、
をさらに含む、請求項2に記載の方法。 - 前記変更が、
コードブロックの並べ替え、コール転送、クローン関数の作成、シンボル属性および挙動への変更、コードブロックのセグメント化、コールの置換、前記コードの異なる部分間の絶対参照の設定、前記コードへのエントリポイントの変更、
チェックサム、検証モジュール、もしくは検証コードの挿入、
前記コードの一部の暗号化および復号化/再暗号化コードの付加、または、
ランタイムにおいて難読化された形式で実行させるための少なくとも1つの関数の仮想化、
のうちの1つまたは複数を含む、請求項1に記載の方法。 - 前記変更が、
前記開発プロジェクト用のソースコードと前記ソースコードに行うべき前記変更を示すソース難読化コードとを結合する中間言語コードを生成するために、前記コードを前処理することと、
前記コードのコンパイル中に前記コンパイラ内で前記中間言語コードに前記変更を適用することによって、前記コードを難読化することと、
を含む、請求項1に記載の方法。 - コンピューティングデバイスによって実行される場合にコンパイラモジュールを実装する命令を記憶する、1つまたは複数のコンピュータ読取可能な記憶媒体であって、前記コンパイラモジュールは、
保護すべき開発プロジェクト用のソースコードの部分を示し、前記示される部分を難読化するために行うべき変更を示す指示文を取得することであって、前記変更は、前記ソースコードのヒープ実行、検証、または暗号化のうちの1つまたは複数を可能にするように設計される、取得することと、
前記ソースコードと前記指示文を実装するためのコードとを結合する中間言語コードを形成することと、
前記コンパイラモジュールによる前記中間言語コードのコンパイル中に、前記指示文に従って前記示される部分を変更するために、前記指示文を前記中間言語コードに適用することと、
前記指示文の前記中間言語コードへの適用によって生成された難読化コードをコンパイルすることと、
前記コンパイラモジュールによって前記中間言語コードの前記コンパイル中に難読化が生成された、前記開発プロジェクト用の保護されたコンパイル済みコードを出力することと、
を含む動作を実行するように構成される、1つまたは複数のコンピュータ読取可能な記憶媒体。 - 処理システムと、
統合開発環境(IDE)を実装するために前記処理システムのハードウェアにより少なくとも部分的に動作可能である1つまたは複数のモジュールと、
を備え、前記統合開発環境(IDE)は、
ソフトウェア開発プロジェクト用のソースコードの作成を可能にするための開発インターフェースを公開し、
前記ソースコードの1つまたは複数の選択された部分を難読化するために、前記ソースコードのコンパイル中にコンパイラが行うべき変更を指定する前記開発インターフェースを通じて生成された難読化定義を前記ソースコードに関連付け、
コンパイル中に前記1つまたは複数の選択された部分を難読化するために、前記指定された変更を実装するための前記難読化定義を使用して、前記開発プロジェクト用の保護されたコンパイル済みコードを生成するために、前記ソースコードをコンパイルする
ように構成される、コンピューティングデバイス。 - 前記統合開発環境(IDE)が、難読化モジュールとコンパイラモジュールとを備え、前記難読化モジュールは、前記難読化記述を生成し、前記難読化記述モジュールを前記コンパイラモジュールによる実行のために供給するように動作可能であり、前記コンパイラモジュールは、コンパイル中に前記ソースコードの対応する変更を実装するために前記難読化モジュールによって供給される前記難読化記述を取得し、解釈することを含めて、保護されたコンパイル済みコードを生成するために前記ソースコードをコンパイルするように動作可能である、請求項9に記載のコンピューティングデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/781,691 US9116712B2 (en) | 2013-02-28 | 2013-02-28 | Compile based obfuscation |
US13/781,691 | 2013-02-28 | ||
PCT/US2014/018458 WO2014134080A1 (en) | 2013-02-28 | 2014-02-26 | Compiler based obfuscation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016511905A true JP2016511905A (ja) | 2016-04-21 |
JP6490598B2 JP6490598B2 (ja) | 2019-03-27 |
Family
ID=50336512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015560258A Active JP6490598B2 (ja) | 2013-02-28 | 2014-02-26 | コンパイラベースの難読化 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9116712B2 (ja) |
EP (1) | EP2962193B1 (ja) |
JP (1) | JP6490598B2 (ja) |
KR (1) | KR102107872B1 (ja) |
CN (1) | CN105103127B (ja) |
WO (1) | WO2014134080A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020503623A (ja) * | 2017-01-05 | 2020-01-30 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | コンパイルデバイス及びコンパイル方法 |
JP2021515314A (ja) * | 2018-02-28 | 2021-06-17 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | コンパイルデバイス及び方法 |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9081587B1 (en) * | 2012-04-25 | 2015-07-14 | Google Inc. | Multiversioned functions |
US9116712B2 (en) | 2013-02-28 | 2015-08-25 | Microsoft Technology Licensing, Llc | Compile based obfuscation |
US9104862B2 (en) * | 2013-04-01 | 2015-08-11 | Uniquesoft, Llc | Secure computing device using new software versions |
EP2913772A1 (de) * | 2014-02-28 | 2015-09-02 | Wibu-Systems AG | Verfahren und Computersystem zum Schutz eines Computerprogramms gegen Beeinflussung |
US9292270B2 (en) | 2014-03-27 | 2016-03-22 | Microsoft Technology Licensing, Llc | Supporting dynamic behavior in statically compiled programs |
US9389890B2 (en) | 2014-03-27 | 2016-07-12 | Microsoft Technology Licensing, Llc | Hierarchical directives-based management of runtime behaviors |
US9547758B2 (en) * | 2014-05-19 | 2017-01-17 | Nxp B.V. | Program cable obfuscation based upon recently executed program code |
US9501301B2 (en) * | 2015-02-26 | 2016-11-22 | Nxp B.V. | Flexible instruction sets for obfuscated virtual machines |
KR101757407B1 (ko) | 2015-06-11 | 2017-07-12 | 라인 가부시키가이샤 | 바이너리 병합 장치, 방법 및 컴퓨터 프로그램 |
IN2015DE02056A (ja) * | 2015-07-07 | 2015-07-31 | Hcl Technologies Ltd | |
KR101740134B1 (ko) * | 2015-08-10 | 2017-05-26 | 라인 가부시키가이샤 | 어플리케이션의 코드 난독화를 위한 시스템 및 방법 |
US10255443B2 (en) * | 2016-02-11 | 2019-04-09 | Line Corporation | Method, apparatus, system and non-transitory computer readable medium for code protection |
US10423748B2 (en) * | 2016-07-08 | 2019-09-24 | efabless corporation | Systems and methods for obfuscating a circuit design |
US10354069B2 (en) * | 2016-09-02 | 2019-07-16 | Bae Systems Information And Electronic Systems Integration Inc. | Automated reverse engineering |
US10394554B1 (en) * | 2016-09-09 | 2019-08-27 | Stripe, Inc. | Source code extraction via monitoring processing of obfuscated byte code |
US10248412B2 (en) * | 2016-09-20 | 2019-04-02 | Microsoft Technology Licensing, Llc | Sharing applications by modifying attributes |
CN106547548B (zh) * | 2016-10-19 | 2020-06-30 | 海信视像科技股份有限公司 | 一种软件版本的编译方法和装置 |
CN106650340B (zh) * | 2016-11-16 | 2019-12-06 | 中国人民解放军国防科学技术大学 | 一种采用动态细粒度代码隐藏与混淆技术的二进制软件保护方法 |
CN106778100B (zh) * | 2016-12-01 | 2020-06-05 | 北京智游网安科技有限公司 | 基于安卓平台和ios平台的混淆编译方法及混淆编译器 |
US10311217B2 (en) | 2016-12-09 | 2019-06-04 | Microsoft Technology Licensing, Llc | Application piracy prevention with secure enclave protection of automatically modularized functions |
CN107092518A (zh) * | 2017-04-17 | 2017-08-25 | 上海红神信息技术有限公司 | 一种保护拟态防御***软件层安全的编译方法 |
CN108733988B (zh) * | 2017-04-19 | 2023-01-24 | 北京梆梆安全科技有限公司 | 安卓平台上可执行程序的保护方法 |
CN107766702A (zh) * | 2017-05-10 | 2018-03-06 | 平安科技(深圳)有限公司 | 代码混淆方法、装置及计算机可读存储介质 |
CN109240696A (zh) * | 2017-05-19 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种软件更新方法及装置 |
CN107229848A (zh) * | 2017-06-12 | 2017-10-03 | 北京洋浦伟业科技发展有限公司 | 一种代码加固方法和装置 |
US10706164B2 (en) * | 2017-09-29 | 2020-07-07 | Intel Corporation | Crypto-enforced capabilities for isolation |
EP3467691B1 (en) * | 2017-10-05 | 2020-08-26 | Eshard | Method of selecting software files |
CN108197440A (zh) * | 2017-11-28 | 2018-06-22 | 五八有限公司 | 一种代码混淆方法、设备及计算机可读存储介质 |
CN109933326B (zh) * | 2017-12-15 | 2023-03-17 | 北京奇虎科技有限公司 | 改写代码的编译方法、装置及相应终端 |
EP3502935A1 (en) * | 2017-12-20 | 2019-06-26 | Koninklijke Philips N.V. | Compiling device and method |
CN108446536B (zh) * | 2018-02-12 | 2021-08-13 | 北京梆梆安全科技有限公司 | 一种基于符号执行和单点逻辑的源代码加固方法及装置 |
CN108446541B (zh) * | 2018-02-12 | 2021-10-29 | 北京梆梆安全科技有限公司 | 基于有限状态机和符号执行的源代码加固方法及装置 |
CN108537012B (zh) * | 2018-02-12 | 2021-11-16 | 北京梆梆安全科技有限公司 | 基于变量和代码执行顺序的源代码混淆方法及装置 |
US10698668B1 (en) * | 2018-05-29 | 2020-06-30 | Amazon Technologies, Inc. | Custom code transformations during compilation process |
EP3591550A1 (en) * | 2018-07-06 | 2020-01-08 | Koninklijke Philips N.V. | A compiler device with masking function |
CN109101237A (zh) * | 2018-08-01 | 2018-12-28 | 北京顶象技术有限公司 | 代码的加密编译方法及装置 |
CN109145535A (zh) * | 2018-08-13 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种前端页面提供方法及装置 |
CN109409037B (zh) * | 2018-09-29 | 2022-04-29 | 创新先进技术有限公司 | 一种数据混淆规则的生成方法、装置及设备 |
KR102663589B1 (ko) * | 2018-10-26 | 2024-05-09 | 삼성전자주식회사 | 서버 및 서버의 제어 방법 |
CN109784010A (zh) * | 2018-12-18 | 2019-05-21 | 武汉极意网络科技有限公司 | 一种基于llvm的程序控制流混淆方法及装置 |
KR20220047928A (ko) * | 2019-04-18 | 2022-04-19 | 런세이프 시큐리티, 인크. | 소스 수정 엔진 |
CN110135133B (zh) * | 2019-04-19 | 2021-08-17 | 佛山市微风科技有限公司 | 一种面向微控制器的压缩整合式源代码混淆方法及*** |
CN111984939A (zh) * | 2019-05-22 | 2020-11-24 | 北京奇虎科技有限公司 | 字符串混淆方法、装置、电子设备和存储介质 |
US11741248B2 (en) | 2019-08-20 | 2023-08-29 | Bank Of America Corporation | Data access control using data block level encryption |
US11176264B2 (en) | 2019-08-20 | 2021-11-16 | Bank Of America Corporation | Data access control using data block level decryption |
CN110597516B (zh) * | 2019-08-27 | 2023-10-20 | 贝壳技术有限公司 | 插件化代码的混淆方法、装置、电子设备和存储介质 |
JP6752347B1 (ja) * | 2019-10-17 | 2020-09-09 | 株式会社Dnpハイパーテック | 情報処理装置、コンピュータプログラム及び情報処理方法 |
KR102361534B1 (ko) * | 2020-02-05 | 2022-02-10 | 라인플러스 주식회사 | 컴파일러를 이용한 난독화 방법 및 시스템 |
CN111339503B (zh) * | 2020-02-25 | 2023-01-03 | Oppo广东移动通信有限公司 | 控制流混淆方法及相关产品 |
KR102322965B1 (ko) | 2020-03-23 | 2021-11-09 | 주식회사 티맥스 소프트 | Transpiler를 통하여 전환된 언어와 source 언어간 범용 런타임 검증 시스템 |
CN111475168B (zh) * | 2020-04-14 | 2023-05-05 | 中国人民解放军战略支援部队信息工程大学 | 一种代码编译方法及装置 |
CN111666078A (zh) * | 2020-04-30 | 2020-09-15 | 平安科技(深圳)有限公司 | 源码加固方法、装置、计算机设备及存储介质 |
CN111694564B (zh) * | 2020-06-05 | 2023-08-04 | 百度在线网络技术(北京)有限公司 | Flutter混合模式的编译方法、装置、设备和介质 |
CN111857808B (zh) * | 2020-06-22 | 2022-04-26 | 烽火通信科技股份有限公司 | 一种符号的重命名方法和重命名装置 |
EP3944106A1 (en) * | 2020-07-24 | 2022-01-26 | Nagravision SA | Obfuscating method of protecting code |
CN112099776A (zh) * | 2020-09-17 | 2020-12-18 | 重庆轩进软件有限公司 | 安卓***防止二次打包修改方法 |
CN112612999B (zh) * | 2020-12-30 | 2022-11-15 | 中国人民解放军战略支援部队信息工程大学 | 基于树结构的多样化变体生成方法及*** |
US11556336B2 (en) | 2021-02-16 | 2023-01-17 | Bank Of America Corporation | System for computer code development environment cloning and authentication using a distributed server network and machine learning |
US20220308956A1 (en) * | 2021-03-26 | 2022-09-29 | Vmware, Inc. | Verifying object file canisters using built-in reverse relocation integrity checking |
EP4334822A4 (en) * | 2021-06-30 | 2024-06-05 | Huawei Technologies Co., Ltd. | METHOD AND SYSTEM FOR PROVIDING A CONTEXT-SENSITIVE NON-INTRUSIVE DATA PROCESSING OPTIMIZATION STRUCTURE |
CN113641395A (zh) * | 2021-08-13 | 2021-11-12 | 济南浪潮数据技术有限公司 | 微前端架构下的打包部署的方法、装置、设备及可读介质 |
CN113742661A (zh) * | 2021-09-07 | 2021-12-03 | 北京闲徕互娱网络科技有限公司 | unity代码安全防护方法、计算机可读介质 |
CN114090964A (zh) * | 2021-11-18 | 2022-02-25 | 北京五八信息技术有限公司 | 代码处理方法、装置、电子设备及可读介质 |
EP4209938A1 (en) * | 2022-01-05 | 2023-07-12 | Irdeto B.V. | Systems, methods, and storage media for creating secured computer code |
CN115473702A (zh) * | 2022-08-23 | 2022-12-13 | 广西电网有限责任公司电力科学研究院 | 一种基于在线交互式web动态防御的内容混淆方法 |
KR102482880B1 (ko) * | 2022-09-05 | 2022-12-29 | 한화시스템(주) | 무기체계 임베디드 sw 보호를 위한 역공학 방지 시스템 및 그 방법 |
CN117172209B (zh) * | 2023-11-03 | 2024-02-27 | 睿思芯科(深圳)技术有限公司 | 芯片的验证***、方法及相关设备 |
CN117909939B (zh) * | 2024-03-19 | 2024-06-07 | 麒麟软件有限公司 | 一种基于代码文本内容的代码保护方法及编译器文本锁 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09233067A (ja) * | 1990-07-31 | 1997-09-05 | Hiroichi Okano | 知的情報処理方法および装置 |
JP2007503038A (ja) * | 2003-08-20 | 2007-02-15 | マクロヴィジョン ヨーロッパ リミテッド | コード難読化およびエミュレーションによるプロセッサ制御 |
US7353400B1 (en) * | 1999-08-18 | 2008-04-01 | Sun Microsystems, Inc. | Secure program execution depending on predictable error correction |
US20090235089A1 (en) * | 2008-03-12 | 2009-09-17 | Mathieu Ciet | Computer object code obfuscation using boot installation |
JP2010517119A (ja) * | 2007-01-18 | 2010-05-20 | パナソニック株式会社 | 難読化支援装置 |
US20100281459A1 (en) * | 2009-05-01 | 2010-11-04 | Apple Inc. | Systems, methods, and computer-readable media for fertilizing machine-executable code |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4739465B2 (ja) | 1997-06-09 | 2011-08-03 | インタートラスト テクノロジーズ コーポレイション | ソフトウェアセキュリティを増強するための混乱化技術 |
US7770016B2 (en) | 1999-07-29 | 2010-08-03 | Intertrust Technologies Corporation | Systems and methods for watermarking software and other media |
US7051200B1 (en) * | 2000-06-27 | 2006-05-23 | Microsoft Corporation | System and method for interfacing a software process to secure repositories |
US7587616B2 (en) * | 2005-02-25 | 2009-09-08 | Microsoft Corporation | System and method of iterative code obfuscation |
US20070174818A1 (en) * | 2005-08-18 | 2007-07-26 | Pasula Markus I | Method and apparatus for generating application programs for multiple hardware and/or software platforms |
WO2007049817A1 (en) * | 2005-10-28 | 2007-05-03 | Matsushita Electric Industrial Co., Ltd. | Obfuscation evaluation method and obfuscation method |
JP2007304726A (ja) * | 2006-05-09 | 2007-11-22 | Fuji Xerox Co Ltd | プログラム難読化装置、難読化方法及び難読化プログラム |
US8001607B2 (en) * | 2006-09-27 | 2011-08-16 | Direct Computer Resources, Inc. | System and method for obfuscation of data across an enterprise |
US8584109B2 (en) * | 2006-10-27 | 2013-11-12 | Microsoft Corporation | Virtualization for diversified tamper resistance |
US8365157B2 (en) * | 2006-11-09 | 2013-01-29 | Oracle International Corporation | System and method for early platform dependency preparation of intermediate code representation during bytecode compilation |
EP2126713A2 (en) * | 2007-02-19 | 2009-12-02 | Ondeego, Inc. | Methods and system to create applications and distribute applications to a remote device |
US20080229115A1 (en) * | 2007-03-16 | 2008-09-18 | Microsoft Corporation | Provision of functionality via obfuscated software |
US8176473B2 (en) * | 2007-05-14 | 2012-05-08 | Microsoft Corporation | Transformations for software obfuscation and individualization |
CN100474253C (zh) * | 2007-11-22 | 2009-04-01 | 北京飞天诚信科技有限公司 | .Net程序保护方法及装置 |
GB0806284D0 (en) * | 2008-04-07 | 2008-05-14 | Metaforic Ltd | Profile-guided tamper-proofing |
US9063765B2 (en) * | 2008-04-28 | 2015-06-23 | Kaazing Corporation | System and methods for distributed execution of computer executable programs utilizing asymmetric translation |
US8094813B2 (en) * | 2008-09-02 | 2012-01-10 | Apple Inc. | System and method for modulus obfuscation |
US8429637B2 (en) * | 2008-09-02 | 2013-04-23 | Apple Inc. | System and method for conditional expansion obfuscation |
WO2010001324A2 (en) * | 2008-06-30 | 2010-01-07 | Mominis Ltd | Method of generating and distributing a computer application |
US8583553B2 (en) * | 2008-08-14 | 2013-11-12 | The Invention Science Fund I, Llc | Conditionally obfuscating one or more secret entities with respect to one or more billing statements related to one or more communiqués addressed to the one or more secret entities |
US8626848B2 (en) * | 2008-08-14 | 2014-01-07 | The Invention Science Fund I, Llc | Obfuscating identity of a source entity affiliated with a communiqué in accordance with conditional directive provided by a receiving entity |
US8929208B2 (en) * | 2008-08-14 | 2015-01-06 | The Invention Science Fund I, Llc | Conditionally releasing a communiqué determined to be affiliated with a particular source entity in response to detecting occurrence of one or more environmental aspects |
EP2159732A1 (en) * | 2008-08-21 | 2010-03-03 | Thomson Licensing | Method and device for code obfuscation |
US8561040B2 (en) * | 2009-03-10 | 2013-10-15 | Oracle America, Inc. | One-pass compilation of virtual instructions |
US8510723B2 (en) * | 2009-05-29 | 2013-08-13 | University Of Maryland | Binary rewriting without relocation information |
US8386803B2 (en) * | 2009-11-18 | 2013-02-26 | Apple Inc. | System and method for data obfuscation based on discrete logarithm properties |
US20110138373A1 (en) * | 2009-12-08 | 2011-06-09 | American National Laboratories, Inc. | Method and apparatus for globally optimizing instruction code |
US8667301B2 (en) * | 2010-04-01 | 2014-03-04 | Apple Inc. | Obfuscating transformations on data array content and addresses |
US8539597B2 (en) * | 2010-09-16 | 2013-09-17 | International Business Machines Corporation | Securing sensitive data for cloud computing |
US20120079462A1 (en) * | 2010-09-24 | 2012-03-29 | SoftKrypt LLC | Systems and methods of source software code obfuscation |
US9473530B2 (en) * | 2010-12-30 | 2016-10-18 | Verisign, Inc. | Client-side active validation for mitigating DDOS attacks |
US8615735B2 (en) | 2011-05-03 | 2013-12-24 | Apple Inc. | System and method for blurring instructions and data via binary obfuscation |
CN102236757A (zh) * | 2011-06-30 | 2011-11-09 | 北京邮电大学 | 一种适用于Android***的软件保护方法及*** |
US20130014267A1 (en) * | 2011-07-07 | 2013-01-10 | Farrugia Augustin J | Computer protocol generation and obfuscation |
US8751823B2 (en) * | 2011-08-01 | 2014-06-10 | Apple Inc. | System and method for branch function based obfuscation |
US8695060B2 (en) * | 2011-10-10 | 2014-04-08 | Openpeak Inc. | System and method for creating secure applications |
WO2013059367A1 (en) * | 2011-10-18 | 2013-04-25 | Paul Marion Hriljac | Systems and methods of source software code modification |
US20140006017A1 (en) * | 2012-06-29 | 2014-01-02 | Qualcomm Incorporated | Systems, methods, apparatus, and computer-readable media for generating obfuscated speech signal |
US9111383B2 (en) * | 2012-10-05 | 2015-08-18 | Elwha Llc | Systems and methods for obtaining and using augmentation data and for sharing usage data |
US9336370B2 (en) * | 2012-12-06 | 2016-05-10 | Apple Inc. | Method and apparatus for dynamic obfuscation of static data |
CN103093155B (zh) * | 2012-12-07 | 2016-04-27 | 中北大学 | 基于源码修改的信息隐藏方法 |
US9116712B2 (en) | 2013-02-28 | 2015-08-25 | Microsoft Technology Licensing, Llc | Compile based obfuscation |
US9250937B1 (en) * | 2013-11-06 | 2016-02-02 | The Regents Of The University Of California | Code randomization for just-in-time compilers |
EP2876593B1 (en) * | 2013-11-21 | 2018-09-26 | Nxp B.V. | Method of generating a structure and corresponding structure |
US10338933B2 (en) * | 2014-03-25 | 2019-07-02 | Dell Products, Lp | Method for generating custom BIOS setup interface and system therefor |
EP3012764A1 (en) * | 2014-10-24 | 2016-04-27 | Thomson Licensing | Control flow graph flattening device and method |
EP3012762A1 (en) * | 2014-10-24 | 2016-04-27 | Thomson Licensing | Control flow graph flattening device and method |
-
2013
- 2013-02-28 US US13/781,691 patent/US9116712B2/en active Active
-
2014
- 2014-02-26 JP JP2015560258A patent/JP6490598B2/ja active Active
- 2014-02-26 KR KR1020157023260A patent/KR102107872B1/ko active IP Right Grant
- 2014-02-26 WO PCT/US2014/018458 patent/WO2014134080A1/en active Application Filing
- 2014-02-26 CN CN201480011267.9A patent/CN105103127B/zh active Active
- 2014-02-26 EP EP14711353.4A patent/EP2962193B1/en active Active
-
2015
- 2015-08-05 US US14/818,538 patent/US9471288B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09233067A (ja) * | 1990-07-31 | 1997-09-05 | Hiroichi Okano | 知的情報処理方法および装置 |
US7353400B1 (en) * | 1999-08-18 | 2008-04-01 | Sun Microsystems, Inc. | Secure program execution depending on predictable error correction |
JP2007503038A (ja) * | 2003-08-20 | 2007-02-15 | マクロヴィジョン ヨーロッパ リミテッド | コード難読化およびエミュレーションによるプロセッサ制御 |
JP2010517119A (ja) * | 2007-01-18 | 2010-05-20 | パナソニック株式会社 | 難読化支援装置 |
US20090235089A1 (en) * | 2008-03-12 | 2009-09-17 | Mathieu Ciet | Computer object code obfuscation using boot installation |
US20100281459A1 (en) * | 2009-05-01 | 2010-11-04 | Apple Inc. | Systems, methods, and computer-readable media for fertilizing machine-executable code |
Non-Patent Citations (2)
Title |
---|
"「キーワードで探るこれからのソフトウエア開発」〜次世***発ツールフォーラムAutumnプレビュー〜", NIKKEI BYTE, vol. 第258号, JPN6018002807, 22 October 2004 (2004-10-22), JP, pages 66, ISSN: 0003728688 * |
増田 佳泰: "組み込み機器開発のプラットホームとして注目度が増す:技術者のためのPC UNIX活用ノウハウ", INTERFACE, vol. 第25巻 第2号, JPN6018002805, 1 February 1999 (1999-02-01), JP, pages 71 - 86, ISSN: 0003728687 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020503623A (ja) * | 2017-01-05 | 2020-01-30 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | コンパイルデバイス及びコンパイル方法 |
JP7132926B2 (ja) | 2017-01-05 | 2022-09-07 | コーニンクレッカ フィリップス エヌ ヴェ | コンパイルデバイス及びコンパイル方法 |
JP2021515314A (ja) * | 2018-02-28 | 2021-06-17 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | コンパイルデバイス及び方法 |
JP7285850B2 (ja) | 2018-02-28 | 2023-06-02 | コーニンクレッカ フィリップス エヌ ヴェ | コンパイルデバイス及び方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105103127A (zh) | 2015-11-25 |
KR102107872B1 (ko) | 2020-05-07 |
US20150339108A1 (en) | 2015-11-26 |
KR20150122149A (ko) | 2015-10-30 |
WO2014134080A1 (en) | 2014-09-04 |
EP2962193A1 (en) | 2016-01-06 |
US9471288B2 (en) | 2016-10-18 |
US20140245271A1 (en) | 2014-08-28 |
EP2962193B1 (en) | 2021-03-24 |
JP6490598B2 (ja) | 2019-03-27 |
CN105103127B (zh) | 2018-05-04 |
US9116712B2 (en) | 2015-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6490598B2 (ja) | コンパイラベースの難読化 | |
CN110178136B (zh) | 现场可编程门阵列程序的签名验证的方法和设备 | |
US20180260199A1 (en) | Method and apparatus for intermediate representation of applications | |
Holla et al. | Android based mobile application development and its security | |
US10409966B2 (en) | Optimizing and protecting software | |
US8694988B2 (en) | Runtime extensions | |
US20170116410A1 (en) | Software protection | |
US8683462B2 (en) | Handling calls to native code in a managed code environment | |
US8090959B2 (en) | Method and apparatus for protecting .net programs | |
CN104680039B (zh) | 一种应用程序安装包的数据保护方法及装置 | |
CN105022936A (zh) | 一种类class文件加密解密方法和装置 | |
JP6392446B2 (ja) | クラウドベースのアプリケーションセキュリティサービスの提供方法及びシステム | |
CN107871066B (zh) | 基于安卓***的代码编译方法及装置 | |
JP6815386B2 (ja) | アプリケーションのコードを保護するためのシステム、方法およびプログラム | |
CN108351766B (zh) | 从移动设备创建和修改应用 | |
US10867017B2 (en) | Apparatus and method of providing security and apparatus and method of executing security for common intermediate language | |
CN113568680A (zh) | 应用程序的动态链接库保护方法、装置、设备及介质 | |
US20150195376A1 (en) | Machine-Specific Instruction Set Translation | |
Tedeschi et al. | Information security and threats in mobile appliances | |
KR102439778B1 (ko) | 애플리케이션의 보안성 향상을 위한 애플리케이션 변환 장치 및 방법 | |
Ketonen | Examining performance benefits of real-world WebAssembly applications: a quantitative multiple-case study | |
JP2018005915A (ja) | アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム | |
Macedo | On the performance of WebAssembly | |
Haoliang et al. | The Design and Implementation on the Android Application Protection System | |
Curran et al. | Common Problems Faced When Developing Applications for Mobile Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180423 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180914 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190108 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20190116 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6490598 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |