JP2015523635A - プログラムのリバースエンジニアリング及び/又は改竄に対する保護のための方法、システム及び装置 - Google Patents
プログラムのリバースエンジニアリング及び/又は改竄に対する保護のための方法、システム及び装置 Download PDFInfo
- Publication number
- JP2015523635A JP2015523635A JP2015513320A JP2015513320A JP2015523635A JP 2015523635 A JP2015523635 A JP 2015523635A JP 2015513320 A JP2015513320 A JP 2015513320A JP 2015513320 A JP2015513320 A JP 2015513320A JP 2015523635 A JP2015523635 A JP 2015523635A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- program
- bit string
- instruction
- machine instructions
- 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 title claims abstract description 48
- 230000002441 reversible effect Effects 0.000 title description 12
- 238000013519 translation Methods 0.000 claims abstract description 63
- 238000004590 computer program Methods 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 4
- 238000002372 labelling Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 6
- 230000014616 translation Effects 0.000 description 39
- 239000000470 constituent Substances 0.000 description 5
- 238000009795 derivation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 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
-
- 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/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
Abstract
Description
− ビット列(bit string)及びプログラムを入力するステップと、
− プロセッサを、該プロセッサが上記ビット列をマシン命令のソースとして使用する場合に上記プログラムを実行するように構成するステップと、
を有する。
− ビット列及びプログラムを入力する入力部と、
− 構成プロセッサと、
を有し、前記構成プロセッサは、
− 前記プログラム(P)を一連の基準マシン命令に翻訳し、
− 前記ビット列及び前記一連の基準マシン命令から、前記プロセッサが前記ビット列をマシン命令のソースとして使用する場合に該プロセッサが前記プログラムを実行するように該プロセッサを構成するための翻訳データを計算し、
− プロセッサを、該プロセッサが前記翻訳データに従ってマシン命令を実行するように構成する、
ように構成される。
− ビット列Bを供給するステップと、
− プログラムPを入力するステップと、
− 前記ビット列Bをマシン命令のソースとして使用する場合に前記プログラムPにより定義される処理を実行するプロセッサの演算的意味(operational semantics)を計算するステップであって、該演算的意味が入力としての前記ビット列B及び前記プログラムPから計算されるステップと、
− プロセッサを、該プロセッサがマシン命令を前記演算的意味に従って実行するように構成するステップと、
を有する。
プロセッサ等のプログラム可能な装置は、多様なソフトウェアプログラムを実行することができる。実行することが可能なプログラムの数は、通常、利用可能な時間及びメモリ等の資源の制限によってのみ制限される。プロセッサ上で動作するプログラムは、当該プロセッサにより解釈されるビットパターンとして符号化される。例示的実施態様において、ビットパターンは一連のマシン命令を有する。コンパイラは、プログラムの高レベル記述を、これらのビットパターンに変換する。高レベル記述は、通常、C、ジャバ、フォートラン等のプログラミング言語を用いて作成される。この変換において重要なことは、当該ビットパターンのプロセッサの解釈が、当該高レベルプログラムの当該プログラミング言語の仕様に従う意味に等しいということである。他の実施態様では、コンパイラは、アセンブリレベルのプログラム等の低レベルプログラム又はジャババイトコードのプログラム等の仮想マシンのためのプログラムを変換することができる。
M(P)=Q(B)
を成立させなければならない。
− ソフトウェアコンパイルは、任意のプログラム及び固定のプロセッサに対してビットパターンを発生する;
− ハードウェアコンパイルは、固定のアプリケーションに対してビットパターン及びプロセッサを発生する;
− 変形コンパイルは、固定のビットパターン及び任意のプログラムに対してプロセッサ及びコンパイラを発生する。
図1を参照することにより説明したタイプのプロセッサを使用する実施態様において、構成コンパイラ10は一連のステップにおいて変形コンパイルを実施することができる。第1ステップにおいて、構成コンパイラ10はプログラムPを、基準実行回路のための一連の基準マシン命令(reference machine instructions)に翻訳することができる。第2ステップにおいて、構成コンパイラ10は、入力されたビット列Bを、各々が対応するマシン命令として使用することができる一連の部分に分割することができる。
プロセッサQによるBの解釈がアプリケーションAと意味的に等価となるように任意のビットパターンBを用いてアプリケーションAをプロセッサQに変形させる場合に、2つのことが起きる。第1に、プロセッサQ(仮想マシン又は1つのハードウェア)の表現及び二進オブジェクトBは極めて制限され、QもBもオリジナルのアプリケーションAを損なうことなしに変更することはできないということを意味する。第2に、オリジナルのアルゴリズムAの符号化(エンコーディング)は、ここでは、2つの部分に分割される。該アルゴリズムの一方の部分はビットパターンBを用いてエンコードされ、他方の部分はプロセッサQにエンコードされる。
− プログラムに変更又は削除することができる透かしを追加する;
− アプリケーションの異なる部分に対して異なるレベルの保護を用いる;
− 攻撃者が当該実施を変化させ得ることを防止するために、アプリケーション部分を抗改竄性にさせる;
− 攻撃者が当該実施を変化させ得ると共に該実施を理解/リバースエンジニアリングし得ることを防止するために、アプリケーション部分を不明化させる、
ことを可能にする。
このことは、形式的に下記の表記法により示すことができる。アプリケーションは、ギリシャ文字α、β、γにより示され、当該アプリケーションの何らかのプログラミング言語でのソースコード表現を示す。プログラマブルなプロセッサは大文字Y、Z等により示される。プログラマブルプロセッサにより入力として使用されるビット列は小文字a、b及びcにより表される。言語標準に従うアプリケーションαの表示的意味は、表現M(α)により示される。プロセッサY上で実行される二進情報aの演算的意味は、表現MY(a)により表される。CY(α)は、MY(CY(α))=M(α)による、プロセッサYのためにコンパイラCによって発生される二進情報の表現である。
Claims (18)
- プロセッサを構成する方法であって、
− ビット列B及びプログラムPを入力するステップと、
− プロセッサを、該プロセッサが前記ビット列Bをマシン命令のソースとして使用する場合にプログラムPを実行するように構成するステップと、
を有する、方法。 - 前記プログラムPが一連の基準マシン命令を定義し、前記構成するステップが、
− 前記ビット列B及び前記一連の基準マシン命令から、前記プロセッサを該プロセッサが前記ビット列Bをマシン命令のソースとして使用する場合に前記プログラムPを実行するように構成するための翻訳データを計算するステップと、
− 前記プロセッサを前記翻訳データにより構成するステップと、
を有する、請求項1に記載の方法。 - 前記翻訳データを計算するステップが、
− 前記ビット列Bを、前記プロセッサにより各マシン命令として使用するための連続する部分に分割するステップと、
− 前記ビット列の前記部分を前記一連の基準マシン命令における対応する位置の基準マシン命令に翻訳するための翻訳を決定するステップと、
を有する、請求項2に記載の方法。 - 前記翻訳データが、前記部分の異なる下位部分を、基準マシンプログラムにおける対応する位置の基準マシン命令のオペコード、オペランド及び結果コードのうちの少なくとも1つに翻訳する、
請求項3に記載の方法。 - 前記翻訳データが、基準マシン命令を得るために前記ビット列Bの前記部分をルックアップするためのルックアップデータを有する、請求項3に記載の方法。
- 前記ビット列における前記連続する部分が基準マシン命令の長さより大きな長さを有する、請求項3に記載の方法。
- 前記プロセッサにより実行される場合の、前記ビット列の異なる部分に対応するプログラムカウンタ値を決定するステップと、
前記ビット列の前記部分を前記プログラムカウンタ値から導出される情報と組み合わせて、明確にされた部分を得ると共に、該明確にされた部分を前記基準マシン命令に翻訳するための翻訳を決定するステップと、
を有する、請求項3に記載の方法。 - 前記翻訳データにより定義される翻訳の下で前記基準マシン命令に翻訳するオリジナルを有さない基準マシン命令を決定するステップと、
前記オリジナルを有さない基準マシン命令に対して前記翻訳データにおいて既に定義されたオリジナルとは異なるオリジナルを選択すると共に、前記プロセッサを構成するための前記翻訳データを、該プロセッサが前記選択されたオリジナルをマシン命令のソースとして使用する場合に前記構成されたプロセッサが前記決定された基準マシン命令を実行するように拡張するステップと、
を有する、請求項2に記載の方法。 - 前記翻訳データにより構成されたプロセッサのためのコンパイラに対して前記翻訳データを利用可能にさせるステップと、
前記コンパイラにより他のプログラムP’をコンパイルして、前記プロセッサのためのコンパイルされたマシン命令のプログラムを生成するステップと、
前記コンパイルされたマシン命令のプログラムを前記プロセッサにより実行するステップと、
を有する、請求項2又は請求項8に記載の方法。 - 前記プログラムPが他のプロセッサをシミュレーションするためのプログラマブルプロセッサのシミュレータプログラムであり、
前記プログラマブルプロセッサのシミュレータプログラムが、
− 他のビット列及び他のプログラマブルプロセッサのシミュレータプログラムを入力するステップと、
− 前記他のプログラマブルプロセッサのシミュレータプログラムにより定義される処理を、他のプログラマブルプロセッサが前記他のビット列をマシン命令のソースとして使用する場合に実行する該他のプログラマブルプロセッサの他の翻訳データを計算するステップであって、該他の翻訳データが入力としての前記他のビット列及び前記他のプログラマブルプロセッサのシミュレータプログラムから計算されるステップと、
により得られる、請求項9に記載の方法。 - オリジナルのアプリケーションAを入力するステップと、該オリジナルのアプリケーションAを第1部分A1及び第2部分A2に分割するステップと、前記第1部分A1を前記プログラムPとして使用するステップと、前記第2部分A2のオブジェクトコードを前記ビット列Bとして使用するステップとを有する、請求項1に記載の方法。
- オリジナルのアプリケーションAを入力するステップと、該オリジナルのアプリケーションAを第1部分A1及び第2部分A2に分割するステップと、前記第1部分A1を前記プログラムPとして使用するステップと、前記第2部分A2を透かしCと組み合わせるステップと、該第2部分A2及び透かしCの組み合わせを前記ビット列Bとして使用するステップとを有する、請求項1に記載の方法。
- 前記プロセッサが合成可能なハードウェア記述により表される、請求項1ないし12の何れか一項に記載の方法。
- 前記ビット列Bの部分が、テキストの表現、標示及び計算環境から動的に収集される情報のうちの少なくとも1つである、請求項1ないし13の何れか一項に記載の方法。
- 前記入力されるビット列の如何なる変更も、オリジナルのアプリケーションが正しく動作することを妨げる、請求項1ないし14の何れか一項に記載の方法。
- プロセッサを構成する装置であって、前記装置が、
− 一連の基準マシン命令を定義するプログラムP及びビット列Bを入力する入力部と、
− 構成プロセッサと、
を有し、前記構成プロセッサが、
− 前記ビット列B及び前記一連の基準マシン命令から、前記プロセッサが前記ビット列Bをマシン命令のソースとして使用する場合に該プロセッサが前記プログラムPを実行するように該プロセッサを構成するための翻訳データを計算し、
− 前記プロセッサを、該プロセッサが前記翻訳データに従ってマシン命令を実行するように構成する、
装置。 - − ビット列Bをマシン命令のソースとして記憶するプログラムメモリと、
− 前記ビット列Bからの命令に対する当該プロセッサの応答を定義する翻訳データを記憶する命令デコード制御メモリと、
− 前記プログラムメモリの出力端に結合され、該プログラムメモリからのマシン命令の基準マシン命令への翻訳を前記命令デコード制御メモリからの前記翻訳データに依存して行う命令デコーダと、
を有する、プロセッサ。 - コンピュータにより実行された場合に該コンピュータに、
− 一連の基準マシン命令を定義するプログラムP及びビット列Bを入力させ、
− 前記ビット列B及び前記一連の基準マシン命令から、プロセッサが前記ビット列Bをマシン命令のソースとして使用する場合に該プロセッサが前記プログラムPにより定義された処理を実行するように該プロセッサを構成するための翻訳データを計算させ、
− 前記プロセッサを構成するための構成データを前記翻訳データに従って発生させる、
命令のプログラムを有する、コンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL2008888 | 2012-05-25 | ||
NL2008888 | 2012-05-25 | ||
PCT/IB2013/054042 WO2013175368A1 (en) | 2012-05-25 | 2013-05-17 | Method, system and device for protection against reverse engineering and/or tampering with programs |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015523635A true JP2015523635A (ja) | 2015-08-13 |
JP6133409B2 JP6133409B2 (ja) | 2017-05-24 |
Family
ID=48808407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015513320A Active JP6133409B2 (ja) | 2012-05-25 | 2013-05-17 | プログラムのリバースエンジニアリング及び/又は改竄に対する保護のための方法、システム及び装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10095847B2 (ja) |
EP (1) | EP2856378B1 (ja) |
JP (1) | JP6133409B2 (ja) |
CN (1) | CN104321774B (ja) |
BR (1) | BR112014028947A2 (ja) |
MX (1) | MX2014014102A (ja) |
RU (1) | RU2014152808A (ja) |
WO (1) | WO2013175368A1 (ja) |
ZA (1) | ZA201409425B (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9659156B1 (en) * | 2014-03-20 | 2017-05-23 | Symantec Corporation | Systems and methods for protecting virtual machine program code |
US9501301B2 (en) * | 2015-02-26 | 2016-11-22 | Nxp B.V. | Flexible instruction sets for obfuscated virtual machines |
US9760736B2 (en) * | 2015-09-29 | 2017-09-12 | International Business Machines Corporation | CPU obfuscation for cloud applications |
CN105825089A (zh) * | 2016-03-15 | 2016-08-03 | 上海斐讯数据通信技术有限公司 | 一种智能终端jni数据跟踪方法及系统 |
CN109358844A (zh) * | 2018-09-30 | 2019-02-19 | 仝瑞麟 | 程序执行方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01321519A (ja) * | 1988-06-24 | 1989-12-27 | Hitachi Micro Comput Eng Ltd | マイクロプロセッサ |
JPH0475137A (ja) * | 1990-07-18 | 1992-03-10 | Hitachi Ltd | データ処理装置 |
JPH07182304A (ja) * | 1993-12-24 | 1995-07-21 | Rohm Co Ltd | マイクロコンピュータ及びその製造方法 |
JP2002132364A (ja) * | 2000-10-19 | 2002-05-10 | Yutaka Iizuka | プログラムを内部解析から保護する方法、コンピュータ読み取り可能な記録媒体及びプログラムの配布方法 |
JP2003288203A (ja) * | 2002-03-27 | 2003-10-10 | Asahi Kasei Corp | プロセッサの開発支援装置 |
US20050005157A1 (en) * | 1999-08-18 | 2005-01-06 | Sun Microsystems, Inc. | Logic block used to check instruction buffer configuration |
US20080127125A1 (en) * | 2006-10-27 | 2008-05-29 | Microsoft Corporation | Virtualization For Diversified Tamper Resistance |
US20100313188A1 (en) * | 2005-08-06 | 2010-12-09 | Microsoft Corporation | Method for Preventing Software Reverse Engineering, Unauthorized Modification, and Runtime Data Interception |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101592A (en) * | 1998-12-18 | 2000-08-08 | Billions Of Operations Per Second, Inc. | Methods and apparatus for scalable instruction set architecture with dynamic compact instructions |
US6862563B1 (en) * | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
US6834343B1 (en) * | 1999-05-27 | 2004-12-21 | Microsoft Corporation | Method for watermarking computer programs |
US7770016B2 (en) * | 1999-07-29 | 2010-08-03 | Intertrust Technologies Corporation | Systems and methods for watermarking software and other media |
US7080257B1 (en) * | 2000-03-27 | 2006-07-18 | Microsoft Corporation | Protecting digital goods using oblivious checking |
EP1352307A2 (en) * | 2000-09-22 | 2003-10-15 | EDC Systems, Inc. | Systems and methods for preventing unauthorized use of digital content |
CA2327911A1 (en) * | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
WO2002061574A1 (en) * | 2001-01-30 | 2002-08-08 | Koninklijke Philips Electronics N.V. | Computer instruction with instruction fetch control bits |
US7266811B2 (en) * | 2001-09-05 | 2007-09-04 | Conexant Systems, Inc. | Methods, systems, and computer program products for translating machine code associated with a first processor for execution on a second processor |
EP1542112A4 (en) * | 2002-07-09 | 2008-04-09 | Fujitsu Ltd | UCT RESISTANT TO OPEN-TYPE UNIVERSAL ATTACKS, AND ASSOCIATED APPLICATION SYSTEM |
US20050028132A1 (en) * | 2003-07-31 | 2005-02-03 | Srinivasamurthy Venugopal K. | Application specific optimization of interpreters for embedded systems |
US20050102474A1 (en) * | 2003-11-06 | 2005-05-12 | Sridhar Lakshmanamurthy | Dynamically caching engine instructions |
US7594221B2 (en) * | 2004-04-20 | 2009-09-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus for translating binary code |
EP1850261A1 (en) * | 2005-02-10 | 2007-10-31 | Matsushita Electric Industrial Co., Ltd. | Program conversion device and program execution device |
JP2006286084A (ja) | 2005-03-31 | 2006-10-19 | Fujitsu Ltd | 符号器、復号器および符号化方法 |
US7760903B2 (en) * | 2005-08-30 | 2010-07-20 | Microsoft Corporation | Tamper-resistant text stream watermarking |
US20100191959A1 (en) * | 2005-09-23 | 2010-07-29 | Space Micro Inc. | Secure microprocessor and method |
JP5113169B2 (ja) * | 2006-07-12 | 2013-01-09 | イルデト・コーポレート・ビー・ヴイ | 暗号関数を難読化する方法およびシステム |
CN101491001B (zh) * | 2006-07-12 | 2012-03-14 | 耶德托公司 | 数字数据处理单元的防篡改系统和方法 |
US8505002B2 (en) * | 2006-09-29 | 2013-08-06 | Arm Limited | Translation of SIMD instructions in a data processing system |
EP1947584B1 (en) * | 2006-12-21 | 2009-05-27 | Telefonaktiebolaget LM Ericsson (publ) | Obfuscating computer program code |
JP4708446B2 (ja) * | 2007-03-02 | 2011-06-22 | パナソニック株式会社 | 符号化装置、復号装置およびそれらの方法 |
US20080229115A1 (en) * | 2007-03-16 | 2008-09-18 | Microsoft Corporation | Provision of functionality via obfuscated software |
EP2240857A4 (en) * | 2007-12-21 | 2013-12-25 | Univ Virginia Patent Found | SYSTEM, METHOD AND COMPUTER PROGRAM FOR PROTECTING SOFTWARE THROUGH ANTI-FALSIFICATION AND OBSCURING TRANSFORMATIONS |
WO2010127438A1 (en) * | 2009-05-06 | 2010-11-11 | Irdeto Canada Corporation | Interlocked binary protection using whitebox cryptography |
US20100325446A1 (en) * | 2009-06-19 | 2010-12-23 | Joseph Martin Mordetsky | Securing Executable Code Integrity Using Auto-Derivative Key |
EP2388730A1 (en) * | 2010-05-17 | 2011-11-23 | Nagravision S.A. | Method for generating software code |
US20120159444A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Fusing debug information from different compiler stages |
US8621620B2 (en) * | 2011-03-29 | 2013-12-31 | Mcafee, Inc. | System and method for protecting and securing storage devices using below-operating system trapping |
US9575903B2 (en) * | 2011-08-04 | 2017-02-21 | Elwha Llc | Security perimeter |
JP2013070026A (ja) | 2011-09-08 | 2013-04-18 | Rohm Co Ltd | 半導体装置、半導体装置の製造方法、半導体装置の実装構造、およびパワー用半導体装置 |
-
2013
- 2013-05-17 JP JP2015513320A patent/JP6133409B2/ja active Active
- 2013-05-17 US US14/400,586 patent/US10095847B2/en active Active
- 2013-05-17 WO PCT/IB2013/054042 patent/WO2013175368A1/en active Application Filing
- 2013-05-17 RU RU2014152808A patent/RU2014152808A/ru not_active Application Discontinuation
- 2013-05-17 MX MX2014014102A patent/MX2014014102A/es unknown
- 2013-05-17 CN CN201380027303.6A patent/CN104321774B/zh active Active
- 2013-05-17 BR BR112014028947A patent/BR112014028947A2/pt not_active IP Right Cessation
- 2013-05-17 EP EP13739501.8A patent/EP2856378B1/en active Active
-
2014
- 2014-12-19 ZA ZA2014/09425A patent/ZA201409425B/en unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01321519A (ja) * | 1988-06-24 | 1989-12-27 | Hitachi Micro Comput Eng Ltd | マイクロプロセッサ |
JPH0475137A (ja) * | 1990-07-18 | 1992-03-10 | Hitachi Ltd | データ処理装置 |
JPH07182304A (ja) * | 1993-12-24 | 1995-07-21 | Rohm Co Ltd | マイクロコンピュータ及びその製造方法 |
US20050005157A1 (en) * | 1999-08-18 | 2005-01-06 | Sun Microsystems, Inc. | Logic block used to check instruction buffer configuration |
JP2002132364A (ja) * | 2000-10-19 | 2002-05-10 | Yutaka Iizuka | プログラムを内部解析から保護する方法、コンピュータ読み取り可能な記録媒体及びプログラムの配布方法 |
JP2003288203A (ja) * | 2002-03-27 | 2003-10-10 | Asahi Kasei Corp | プロセッサの開発支援装置 |
US20100313188A1 (en) * | 2005-08-06 | 2010-12-09 | Microsoft Corporation | Method for Preventing Software Reverse Engineering, Unauthorized Modification, and Runtime Data Interception |
US20080127125A1 (en) * | 2006-10-27 | 2008-05-29 | Microsoft Corporation | Virtualization For Diversified Tamper Resistance |
Also Published As
Publication number | Publication date |
---|---|
US10095847B2 (en) | 2018-10-09 |
EP2856378B1 (en) | 2017-12-27 |
MX2014014102A (es) | 2015-01-26 |
CN104321774B (zh) | 2018-08-28 |
CN104321774A (zh) | 2015-01-28 |
BR112014028947A2 (pt) | 2017-06-27 |
ZA201409425B (en) | 2017-05-31 |
WO2013175368A1 (en) | 2013-11-28 |
US20150161363A1 (en) | 2015-06-11 |
RU2014152808A (ru) | 2016-07-20 |
EP2856378A1 (en) | 2015-04-08 |
JP6133409B2 (ja) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101440646B1 (ko) | 컴퓨터 구현가능 방법, 및 소프트웨어 보안 향상 방법 | |
TWI648648B (zh) | 安卓平台上可執行程式的保護方法 | |
CN106462677B (zh) | 一种保护软件项目的方法和装置 | |
US10175964B2 (en) | Compiler caching for runtime routine redundancy tracking | |
JP6429785B2 (ja) | 演算子のないコンパイラ | |
US8874928B2 (en) | System and method for obfuscating constants in a computer program | |
JP6133409B2 (ja) | プログラムのリバースエンジニアリング及び/又は改竄に対する保護のための方法、システム及び装置 | |
CA2612455C (en) | Translating expressions in a computing environment | |
Das et al. | SHAKTI-MS: a RISC-V processor for memory safety in C | |
CN112631656A (zh) | 一种基于源代码的智能合约优化方法及装置 | |
Yurichev | Reverse engineering for beginners | |
Wichelmann et al. | MAMBO–V: Dynamic Side-Channel Leakage Analysis on RISC–V | |
Protsenko et al. | Protecting android apps against reverse engineering by the use of the native code | |
Demicco et al. | Generic Tagging for RISC-V Binaries | |
Staursky | Lambda Calculus for Binary Security and Analysis | |
Hetland et al. | Extending Python | |
Tews et al. | Specification and verification of the Nova microhypervisor | |
Patel | Decompiler For Pseudo Code Generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160512 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170214 |
|
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: 20170321 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170419 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6133409 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |