JP4905480B2 - プログラム難読化プログラム及びプログラム難読化装置 - Google Patents
プログラム難読化プログラム及びプログラム難読化装置 Download PDFInfo
- Publication number
- JP4905480B2 JP4905480B2 JP2009037526A JP2009037526A JP4905480B2 JP 4905480 B2 JP4905480 B2 JP 4905480B2 JP 2009037526 A JP2009037526 A JP 2009037526A JP 2009037526 A JP2009037526 A JP 2009037526A JP 4905480 B2 JP4905480 B2 JP 4905480B2
- Authority
- JP
- Japan
- Prior art keywords
- loop
- executable
- program
- conditional expression
- statement
- 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
- 230000014509 gene expression Effects 0.000 claims description 131
- 238000000034 method Methods 0.000 claims description 55
- 238000001514 detection method Methods 0.000 claims description 13
- 230000009466 transformation Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 3
- 230000002265 prevention Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
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
Description
Cbefore = n( c(A) + c(B1) + c(B2) ) + c(A)
ここで、c(X)は、文Xの実行コストを表すとする。
Cafter = ( c(A') + c(B1') + c(B2) ) + (n - 1)( c(A) + c(B1) + c(B2) ) + c(A)
となる。
Cafter - Cbefore = ( c(A') - c(A) ) + ( c(B1') - c(B1) )
と見積もることができる。このように、本実施形態によって生じる実行オーバーヘッドはループ構造の実行回数に関わらず一定なので、予測しやすい。
Claims (5)
- コンピュータを、
難読化対象のプログラムからループを検出する検出手段、
前記難読化対象のプログラムに対し、前記ループの前に恒偽及び恒真のいずれでもない条件式を追加すると共に、前記条件式の論理値が偽の場合には前記ループの先頭に進み、真の場合には前記ループ内の複数の実行文のうちの最初の実行文から途中の実行文までの実行文の組と等価な実行文の組を実行した後前記ループ内の前記途中の実行文の次の実行文に進む、というフローを追加する追加手段、
として機能させるためのプログラム難読化プログラム。 - 前記追加手段は、前記ループ内に実行文が1つしかない場合には、当該実行文を当該実行文と等価な複数の実行文に置き換えた上で、前記条件式の論理値が真の場合には、当該複数の実行文のうちの最初の実行文から途中の実行文までの実行文の組と等価な実行文の組を実行した後、前記ループ内の前記途中の実行文の次の実行文に進むというフローを前記プログラムに追加する、ことを特徴とする請求項1記載のプログラム難読化プログラム。
- 前記追加手段は、前記ループを継続するか否かを判定する判定条件式が前記ループの先頭に位置する場合には、前記恒偽及び恒真のいずれでもない条件式として、前記判定条件式の論理値が偽となる場合には必ず偽となる条件式を前記ループの前に追加する、ことを特徴とする請求項1又は2に記載のプログラム難読化プログラム。
- 前記等価な実行文の組は、前記ループ内の複数の実行文のうちの最初の実行文から途中の実行文までの実行文の組と異なる表現を含むことを特徴とする請求項1〜3のいずれか1項に記載のプログラム難読化プログラム。
- 難読化対象のプログラムからループを検出する検出手段と、
前記難読化対象のプログラムに対し、前記ループの前に恒偽及び恒真のいずれでもない条件式を追加すると共に、前記条件式の論理値が偽の場合には前記ループの先頭に進み、真の場合には前記ループ内の複数の実行文のうちの最初の実行文から途中の実行文までの実行文の組と等価な実行文の組を実行した後前記ループ内の前記途中の実行文の次の実行文に進む、というフローを追加する追加手段と、
を備えるプログラム難読化装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009037526A JP4905480B2 (ja) | 2009-02-20 | 2009-02-20 | プログラム難読化プログラム及びプログラム難読化装置 |
US12/543,524 US8327452B2 (en) | 2009-02-20 | 2009-08-19 | Program obfuscation apparatus, program obfuscation method and computer readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009037526A JP4905480B2 (ja) | 2009-02-20 | 2009-02-20 | プログラム難読化プログラム及びプログラム難読化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010191847A JP2010191847A (ja) | 2010-09-02 |
JP4905480B2 true JP4905480B2 (ja) | 2012-03-28 |
Family
ID=42632086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009037526A Expired - Fee Related JP4905480B2 (ja) | 2009-02-20 | 2009-02-20 | プログラム難読化プログラム及びプログラム難読化装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8327452B2 (ja) |
JP (1) | JP4905480B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2942558B1 (fr) * | 2009-02-24 | 2014-05-30 | Eads Europ Aeronautic Defence | Procede d'obscurcissement d'un programme d'ordinateur. |
JP2012208655A (ja) * | 2011-03-29 | 2012-10-25 | Kddi Corp | 自己書き換え処理装置、自己書き換え処理方法、およびプログラム |
EP2901348A4 (en) * | 2012-09-28 | 2016-12-14 | Hewlett Packard Entpr Dev Lp | ANWENDUNGSRANDOMISIERUNG |
IL224743A0 (en) * | 2013-02-14 | 2013-06-27 | Harel Cain | A system for automatic obfuscation of computer programs |
CN106951746B (zh) * | 2017-04-25 | 2020-01-21 | 厦门芯阳科技股份有限公司 | 一种温控类程序的防逆向破解方法和系统 |
CN112115488A (zh) * | 2019-06-20 | 2020-12-22 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0988591A1 (en) * | 1997-06-09 | 2000-03-29 | Intertrust, Incorporated | Obfuscation techniques for enhancing software security |
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US6694435B2 (en) * | 2001-07-25 | 2004-02-17 | Apple Computer, Inc. | Method of obfuscating computer instruction streams |
JP2003337629A (ja) | 2002-05-18 | 2003-11-28 | Mitsuko Miyaji | プログラム難読化方法及び装置 |
JP2004185064A (ja) * | 2002-11-29 | 2004-07-02 | Matsushita Electric Ind Co Ltd | プログラムの難読化装置及び難読化方法 |
JP3944069B2 (ja) | 2002-12-06 | 2007-07-11 | 国立大学法人 奈良先端科学技術大学院大学 | 自己書換え処理追加プログラム、自己書換え処理追加装置及び自己書換え処理追加方法 |
JP2005049925A (ja) | 2003-07-29 | 2005-02-24 | Nara Institute Of Science & Technology | プログラム難読化装置、プログラム難読化プログラム及びプログラム難読化方法 |
JP4924177B2 (ja) * | 2007-04-23 | 2012-04-25 | 富士ゼロックス株式会社 | プログラム難読化装置及びプログラム |
-
2009
- 2009-02-20 JP JP2009037526A patent/JP4905480B2/ja not_active Expired - Fee Related
- 2009-08-19 US US12/543,524 patent/US8327452B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010191847A (ja) | 2010-09-02 |
US20100218257A1 (en) | 2010-08-26 |
US8327452B2 (en) | 2012-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4905480B2 (ja) | プログラム難読化プログラム及びプログラム難読化装置 | |
Kang et al. | Dta++: dynamic taint analysis with targeted control-flow propagation. | |
JP6904043B2 (ja) | 未知のプログラムバイナリのための入力発見 | |
Ďurfina et al. | Design of a retargetable decompiler for a static platform-independent malware analysis | |
CN110569628B (zh) | 一种代码的混淆方法以及装置、计算机设备、存储介质 | |
Van Cleemput et al. | Adaptive compiler strategies for mitigating timing side channel attacks | |
US20110145799A1 (en) | Path-sensitive dataflow analysis including path refinement | |
CN110309629B (zh) | 一种网页代码加固方法、装置及设备 | |
CN111723345B (zh) | 基于回调函数的控制流混淆方法及系统 | |
JP2015194881A (ja) | コンパイル装置、コンパイラプログラム、コンパイル方法 | |
CN105426707A (zh) | 一种指令级密码算法识别方法和系统 | |
US9552284B2 (en) | Determining valid inputs for an unknown binary program | |
US20140075424A1 (en) | Efficiently solving the "use-def" problem involving label variables | |
JP2008276735A (ja) | プログラムコード変換装置及びプログラムコード変換方法 | |
You et al. | Deoptfuscator: Defeating Advanced Control-Flow Obfuscation Using Android Runtime (ART) | |
Yang et al. | Towards code watermarking with dual-channel transformations | |
WO2017204139A1 (ja) | データ処理装置、データ処理方法、およびプログラム記録媒体 | |
CN114003868A (zh) | 一种处理软件代码的方法和电子设备 | |
Li et al. | DepTaint: a static taint analysis method based on program dependence | |
Fu et al. | A neural-based program decompiler | |
EP2947590A1 (en) | Program code obfuscation based upon recently executed program code | |
JP5215813B2 (ja) | プログラム変換方法及びプログラム変換装置 | |
JP5277825B2 (ja) | プログラム難読化装置及び難読化プログラム | |
US20170344351A1 (en) | Information processing apparatus, compiling management method, and recording medium | |
GB2527567A (en) | Optimising software code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111130 |
|
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: 20111213 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111226 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150120 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4905480 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |