JP5300294B2 - 処理装置、難読化装置、プログラムおよび集積回路 - Google Patents
処理装置、難読化装置、プログラムおよび集積回路 Download PDFInfo
- Publication number
- JP5300294B2 JP5300294B2 JP2008078779A JP2008078779A JP5300294B2 JP 5300294 B2 JP5300294 B2 JP 5300294B2 JP 2008078779 A JP2008078779 A JP 2008078779A JP 2008078779 A JP2008078779 A JP 2008078779A JP 5300294 B2 JP5300294 B2 JP 5300294B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- block
- executed
- identification information
- processes
- 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.)
- Active
Links
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Description
実施の形態1では、ループを含む制御構造を持つ原処理命令群を、その原処理命令群を構成するブロックの実行順序を隠蔽することができるよう変換した難読命令群、および、
その変換を行う難読化装置について説明する。
まず、本実施の形態で例として用いる原処理命令群、および、それを変換して得られる難読命令群についての説明を行う。なお、原処理命令群および難読命令群は、それぞれコンピュータに対する1つ以上の命令の集合であり、1つまたは複数のプログラムであっても良いし、プログラムを構成する一部の単位(例えば関数)などであってもよい。本発明で述べる他の「命令群」および「命令」または「ブロック」についても同様である。
続いて、難読命令群3000の動作について説明する。図4は、難読命令群3000の動作を示した図である。
図5は、原処理命令群2000の具体例をC言語を用いて記述したものである。なお、各命令ブロックの詳細については、発明の本質ではないので省略している。また、説明を簡単にするため、ブロックB1〜B5までの処理の繰り返し回数は2回としている。図5に示すとおり、原処理命令群では、各命令ブロックは図1に示した通りの実行順序で動作するプログラムとなっている。
続いて、原処理命令群を変換して難読命令群を生成する難読化装置8000について説明する。図8は、難読化装置8000の構成を示した図である。難読化装置8000は、
入力部801、ブロック分割部802、ブロック番号付与部803、初期化命令生成部804、選択命令群生成部805、ブロック更新部806、命令統合部807、および出力部808から構成される。以下、それぞれの構成要素について説明する。
続いて、難読化装置8000の動作を説明する。図9は、難読化装置8000の動作を表すフローチャートである。
実施の形態1では、ループを含む原処理命令群の難読化を行った。より具体的には、原処理命令群によって実現される各処理についての進行状況を管理するブロック番号保持部を設け、それぞれの処理の進行状況を個別に管理し、次に実行すべき処理をどちらにするかをこのブロック番号保持部の選択により実現した。これにより、原処理命令群がループなどを含む複雑な制御構造を持っていたとしても、それぞれの処理の実行状況を適切に把握しつつ、各ブロックの実行順序を入れ替えることができる。これにより、従来技術と比べ、より広い範囲で順序の入れ替えが可能となった。
本発明の実施の形態2を説明する。実施の形態2では、原処理命令群にループおよび分岐が含まれる場合に、その原処理命令群を、分岐を狙った攻撃を防止できるよう変換した難読命令群、および、その変換を行う難読化装置について説明する。
図10および図11を用いて、本実施の形態が想定している攻撃である「実行ログ差分攻撃」について説明する。
上述した実行ログ差分攻撃は、分岐を行う処理命令群をなくし、一部のブロックを以下で説明する依存ブロックに変換することで回避することができる。以下、依存ブロックについて説明する。
上記のように、原処理命令群10000を依存ブロックを含んだ命令群に変換することで条件分岐命令をなくし、かつ、条件分岐命令がある場合と同等の結果を得ることができる。しかし、この場合でも、例えば改ざんチェックの処理にループが含まれている場合には、改ざんチェックとその他の命令群との境界がどこであるか、大まかに推測することができてしまう。
図15は、本実施の形態に係る原処理命令群の具体例をC言語を用いて表したものである。ただし、図15に示した原処理命令群は、すでに分岐命令を削除し、ブロックB26を依存ブロックB26’に変換した後のものである。なお、ブロックA10・・・A18までのループの回数は2回としている。
図18は、原処理命令群10000を難読命令群14000に変換する難読化装置18000の構成を示した図である。難読化装置18000は、基本的には実施の形態1の難読化装置8000と同様の構成であるので、同等の機能を実現する部分については図8と同一の符号を付し、説明を省略する。
実施の形態2の難読命令群14000では、使用制限チェックの処理における分岐命令がなくなっている。よって、不正解析者が、使用制限チェックの分岐命令を無条件分岐命令に置き換える改ざんを行おうとしても、そのような改ざんを行うことが出来ない。
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
3000、14000 難読命令群
3001、14001 初期化命令群
3002、14002 選択命令群
3003、14003 選択対象命令群
301、1401 ブロック番号保持部
8000、18000 難読化装置
801 入力部
802、1802 ブロック分割部
803 ブロック番号付与部
804 初期化命令群生成部
805、1805 選択命令群生成部
806、1806 ブロック更新部
807 命令統合部
808 出力部
1809 依存化部
20000 情報処理装置
20001 初期化部
20002 選択部
20003 命令保持部
Claims (15)
- 複数の処理を実現する処理装置であって、
複数の処理それぞれについて、当該処理を実現するために所定の順序で実行すべき複数の命令ブロックを保持する保持手段と、
前記複数の処理それぞれについて、当該処理を進めるために次に実行すべき命令ブロックを示す識別情報を管理する管理手段と、
前記複数の処理から次に進めるべき処理を選択し、選択された処理を進めるために実行すべき命令ブロックを前記管理手段が管理する識別情報を用いて選択する選択手段と、
選択された命令ブロックを実行する実行手段と、
前記選択手段によって選択された処理について前記管理手段が管理する識別情報を、前記実行手段によって実行された命令ブロックの次に実行すべき命令ブロックを示す識別情報に更新する更新手段と
を備えることを特徴とする処理装置。 - 前記選択手段は、前記次に進めるべき処理をランダムに選択する
ことを特徴とする請求項1に記載の処理装置。 - 前記複数の処理の少なくとも1つは、他の処理の処理結果に依存した動作を行う依存ブロックを含み、
前記選択手段は、前記他の処理の処理結果が得られるまでは、前記ランダムに選択を行った結果に関わらず、前記依存ブロック以降の命令ブロックとは異なる命令ブロックを選択する
ことを特徴とする請求項2に記載の処理装置。 - 原処理命令群を難読化して難読命令群を生成する難読化装置であって、
前記複数の原処理命令群を、前記原処理命令群が実現する複数の処理それぞれに分類し、かつ、前記複数の処理それぞれごとについての複数の命令ブロックに分割する分割手段と、
前記複数の命令ブロックそれぞれに識別情報を付与する付与手段と、
前記複数の処理それぞれについて、当該処理を進めるために次に実行すべき命令ブロックを示す識別情報を管理する管理領域を確保する初期化命令と、
前記複数の処理から次に進めるべき処理を選択し、選択された処理を進めるために実行すべき命令ブロックを前記管理領域が管理する識別情報を用いて選択する選択命令と、
前記管理領域が管理する前記複数の処理それぞれに対応する識別情報を、当該処理を実現する複数の命令ブロックそれぞれが実行された場合に、当該処理において次に実行すべき命令ブロックを示す識別情報に更新する更新命令とを生成する命令生成手段と、
前記初期化命令と、前記選択命令と、前記更新命令と、前記識別情報を付与された複数の命令ブロックとから、難読命令群を生成する生成手段と
を備えることを特徴とする難読化装置。 - 前記複数の処理命令群の少なくとも1つは変数の値に応じた条件分岐を行う条件分岐命令を含み、
前記難読化装置は、更に、
前記条件分岐命令の分岐先または前記分岐先の後に実行される命令ブロックを、
前記変数に代入される値が、前記条件分岐命令が前記分岐先に分岐する場合に代入されるべき値であれば前記命令ブロックと同一の結果を得られる動作を行い、
前記条件分岐命令が前記分岐先に分岐する場合に代入されるべき値と異なれば前記命令ブロックと異なる動作を行う依存ブロックに置き換える依存化手段と、
前記条件分岐命令を含む命令ブロックから、前記条件分岐命令を削除する削除手段と を備える
ことを特徴とする請求項4に記載の難読化装置。 - 前記命令生成手段は、前記次に進めるべき処理をランダムに選択する選択命令を生成する
ことを特徴とする請求項4に記載の難読化装置。 - 前記複数の処理のうち少なくとも1つを実現する複数の命令ブロックは、他の処理の処理結果に依存した動作を行う依存ブロックを含み、
前記選択命令は、前記他の処理の処理結果が得られるまでは、前記ランダムに選択を行った結果に関わらず、前記依存ブロック以降の命令ブロックとは異なる命令ブロックを選択する
ことを特徴とする請求項6に記載の難読化装置。 - 前記原処理命令群はループを含み、
前記分割手段は、前記原処理命令群を分割する際に、前記ループを展開して分割を行い、
前記命令生成手段は、
展開されたループの各繰り返しに対応する命令ブロックに対し、
前記ループの最後以外の繰り返しに対応する命令ブロックについては、前記ループの最初に当たる命令ブロックを示す識別情報によって、
前記ループの最後の繰り返しに対応する命令ブロックについては、前記ループの繰り返しが終了した後に実行される命令ブロックを示す識別情報によって、
前記管理領域が管理する識別情報を更新する更新命令を生成する
ことを特徴とする請求項6に記載の難読化装置。 - 前記原処理命令群はループを含み、
前記命令生成手段は、前記複数の命令ブロックのうち、前記ループ内で最後に実行される命令ブロックについて、
当該命令ブロックが前記ループの最後の繰り返し以外で実行される場合には、前記ループの最初に当たる命令ブロックを示す識別情報によって、
当該命令ブロックが前記ループの最後の繰り返しで実行される場合には、前記ループの繰り返しが終了した後に実行される命令ブロックによって、
前記管理領域が管理する識別情報を更新する更新命令を生成する
ことを特徴とする請求項6に記載の難読化装置。 - 複数の処理を実現する処理装置で用いられる処理方法であって、
複数の処理それぞれについて、当該処理を実現するために所定の順序で実行すべき複数の命令ブロックを保持する保持手段と、
前記複数の処理それぞれについて、当該処理を進めるために次に実行すべき命令ブロックを示す識別情報を管理する管理手段とを備え、
前記処理方法は、
前記複数の処理から次に進めるべき処理を選択し、選択された処理を進めるために実行すべき命令ブロックを前記管理手段が管理する識別情報を用いて選択する選択ステップと、
選択された命令ブロックを実行する実行ステップと、
前記選択ステップによって選択された処理について前記管理手段が管理する識別情報を、前記実行ステップによって実行された命令ブロックの次に実行すべき命令ブロックを示す識別情報に更新する更新ステップと
を含むことを特徴とする処理方法。 - 複数の処理を実現する処理装置で用いられる処理プログラムであって、
複数の処理それぞれについて、当該処理を実現するために所定の順序で実行すべき複数の命令ブロックを保持する保持手段と、
前記複数の処理それぞれについて、当該処理を進めるために次に実行すべき命令ブロックを示す識別情報を管理する管理手段とを備え、
前記処理プログラムは、
前記複数の処理から次に進めるべき処理を選択し、選択された処理を進めるために実行すべき命令ブロックを前記管理手段が管理する識別情報を用いて選択する選択ステップと、
選択された命令ブロックを実行する実行ステップと、
前記選択ステップによって選択された処理について前記管理手段が管理する識別情報を、前記実行ステップによって実行された命令ブロックの次に実行すべき命令ブロックを示す識別情報に更新する更新ステップと
を含むことを特徴とする処理プログラム。 - 複数の処理を実現する処理装置で用いられる集積回路であって、
複数の処理それぞれについて、当該処理を実現するために所定の順序で実行すべき複数の命令ブロックを保持する保持手段と、
前記複数の処理それぞれについて、当該処理を進めるために次に実行すべき命令ブロックを示す識別情報を管理する管理手段と、
前記複数の処理から次に進めるべき処理を選択し、選択された処理を進めるために実行すべき命令ブロックを前記管理手段が管理する識別情報を用いて選択する選択手段と、
選択された命令ブロックを実行する実行手段と、
前記選択手段によって選択された処理について前記管理手段が管理する識別情報を、前記実行手段によって実行された命令ブロックの次に実行すべき命令ブロックを示す識別情報に更新する更新手段と
を備えることを特徴とする集積回路。 - 原処理命令群を難読化して難読命令群を生成する難読化装置で用いられる難読化方法であって、
前記難読化方法は、
前記複数の原処理命令群を、前記原処理命令群が実現する複数の処理それぞれに分類し、かつ、前記複数の処理それぞれごとについての複数の命令ブロックに分割する分割ステップと、
前記複数の命令ブロックそれぞれに識別情報を付与する付与ステップと、
前記複数の処理それぞれについて、当該処理を進めるために次に実行すべき命令ブロックを示す識別情報を管理する管理領域を確保する初期化命令と、
前記複数の処理から次に進めるべき処理を選択し、選択された処理を進めるために実行すべき命令ブロックを前記管理領域が管理する識別情報を用いて選択する選択命令と、
前記管理領域が管理する前記複数の処理それぞれに対応する識別情報を、当該処理を実現する複数の命令ブロックそれぞれが実行された場合に、当該処理において次に実行すべき命令ブロックを示す識別情報に更新する更新命令とを生成する命令生成ステップと、
前記初期化命令と、前記選択命令と、前記更新命令と、前記識別情報を付与された複数の命令ブロックとから、難読命令群を生成する生成ステップと
を含むことを特徴とする難読化方法。 - 原処理命令群を難読化して難読命令群を生成する難読化装置で用いられる難読化プログラムであって、
前記難読化プログラムは、
前記複数の原処理命令群を、前記原処理命令群が実現する複数の処理それぞれに分類し、かつ、前記複数の処理それぞれごとについての複数の命令ブロックに分割する分割ステップと、
前記複数の命令ブロックそれぞれに識別情報を付与する付与ステップと、
前記複数の処理それぞれについて、当該処理を進めるために次に実行すべき命令ブロックを示す識別情報を管理する管理領域を確保する初期化命令と、
前記複数の処理から次に進めるべき処理を選択し、選択された処理を進めるために実行すべき命令ブロックを前記管理領域が管理する識別情報を用いて選択する選択命令と、
前記管理領域が管理する前記複数の処理それぞれに対応する識別情報を、当該処理を実現する複数の命令ブロックそれぞれが実行された場合に、当該処理において次に実行すべき命令ブロックを示す識別情報に更新する更新命令とを生成する命令生成ステップと、
前記初期化命令と、前記選択命令と、前記更新命令と、前記識別情報を付与された複数の命令ブロックとから、難読命令群を生成する生成ステップと
を含むことを特徴とする難読化プログラム。 - 原処理命令群を難読化して難読命令群を生成する難読化装置で用いられる集積回路であって、
前記複数の原処理命令群を、前記原処理命令群が実現する複数の処理それぞれに分類し、かつ、前記複数の処理それぞれごとについての複数の命令ブロックに分割する分割手段と、
前記複数の命令ブロックそれぞれに識別情報を付与する付与手段と、
前記複数の処理それぞれについて、当該処理を進めるために次に実行すべき命令ブロックを示す識別情報を管理する管理領域を確保する初期化命令と、
前記複数の処理から次に進めるべき処理を選択し、選択された処理を進めるために実行すべき命令ブロックを前記管理領域が管理する識別情報を用いて選択する選択命令と、
前記管理領域が管理する前記複数の処理それぞれに対応する識別情報を、当該処理を実現する複数の命令ブロックそれぞれが実行された場合に、当該処理において次に実行すべき命令ブロックを示す識別情報に更新する更新命令とを生成する命令生成手段と、
前記初期化命令と、前記選択命令と、前記更新命令と、前記識別情報を付与された複数の命令ブロックとから、難読命令群を生成する生成手段と
を備えることを特徴とする集積回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008078779A JP5300294B2 (ja) | 2008-03-25 | 2008-03-25 | 処理装置、難読化装置、プログラムおよび集積回路 |
US12/409,756 US8225077B2 (en) | 2008-03-25 | 2009-03-24 | Obfuscation device for generating a set of obfuscated instructions, processing device, method, program, and integrated circuit thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008078779A JP5300294B2 (ja) | 2008-03-25 | 2008-03-25 | 処理装置、難読化装置、プログラムおよび集積回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009230717A JP2009230717A (ja) | 2009-10-08 |
JP5300294B2 true JP5300294B2 (ja) | 2013-09-25 |
Family
ID=41134323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008078779A Active JP5300294B2 (ja) | 2008-03-25 | 2008-03-25 | 処理装置、難読化装置、プログラムおよび集積回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8225077B2 (ja) |
JP (1) | JP5300294B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012043322A (ja) * | 2010-08-23 | 2012-03-01 | Kddi Corp | ソフトウェアの不正流用検出装置、ソフトウェアの不正流用検出方法およびプログラム |
WO2012032653A1 (ja) * | 2010-09-10 | 2012-03-15 | 富士通株式会社 | 処理システム,通信装置および処理装置 |
US20120079462A1 (en) * | 2010-09-24 | 2012-03-29 | SoftKrypt LLC | Systems and methods of source software code obfuscation |
WO2013059367A1 (en) * | 2011-10-18 | 2013-04-25 | Paul Marion Hriljac | Systems and methods of source software code modification |
US9223974B2 (en) * | 2013-07-09 | 2015-12-29 | Globalfoundries Inc. | Anti-viral compiler |
WO2016056120A1 (ja) * | 2014-10-10 | 2016-04-14 | 株式会社日立製作所 | 情報処理装置、及び情報処理方法 |
US9892039B2 (en) * | 2015-04-21 | 2018-02-13 | Oracle International Corporation | Non-temporal write combining using cache resources |
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 |
CA3072266A1 (en) | 2017-08-08 | 2019-02-14 | Crypto4A Technologies Inc. | Secure machine executable code deployment and execution method and system |
US11263308B2 (en) * | 2019-03-25 | 2022-03-01 | Micron Technology, Inc. | Run-time code execution validation |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6643775B1 (en) * | 1997-12-05 | 2003-11-04 | Jamama, Llc | Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications |
JP3865347B2 (ja) | 1998-09-01 | 2007-01-10 | 日立ソフトウエアエンジニアリング株式会社 | プログラムへの透かしの挿入方法及びシステム |
US6438682B1 (en) * | 1998-10-12 | 2002-08-20 | Intel Corporation | Method and apparatus for predicting loop exit branches |
JP3664473B2 (ja) * | 2000-10-04 | 2005-06-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
US7447886B2 (en) * | 2002-04-22 | 2008-11-04 | Freescale Semiconductor, Inc. | System for expanded instruction encoding and method thereof |
US7346160B2 (en) * | 2003-04-23 | 2008-03-18 | Michaelsen David L | Randomization-based encryption apparatus and method |
US7415618B2 (en) * | 2003-09-25 | 2008-08-19 | Sun Microsystems, Inc. | Permutation of opcode values for application program obfuscation |
WO2006001365A1 (ja) | 2004-06-28 | 2006-01-05 | Matsushita Electric Industrial Co., Ltd. | プログラム生成装置、プログラムテスト装置、プログラム実行装置、及び情報処理システム |
US8312297B2 (en) * | 2005-04-21 | 2012-11-13 | Panasonic Corporation | Program illegiblizing device and method |
WO2006115217A1 (ja) * | 2005-04-21 | 2006-11-02 | Matsushita Electric Industrial Co., Ltd. | プログラム変換装置及び秘密保持プログラム |
CN101416197A (zh) * | 2006-02-06 | 2009-04-22 | 松下电器产业株式会社 | 程序混淆装置 |
US8302188B2 (en) * | 2006-07-18 | 2012-10-30 | Panasonic Corporation | Instruction generation apparatus for generating a computer program resistant to unauthorized analyses and tampering |
US20090249492A1 (en) * | 2006-09-21 | 2009-10-01 | Hans Martin Boesgaard Sorensen | Fabrication of computer executable program files from source code |
JP4917860B2 (ja) * | 2006-10-03 | 2012-04-18 | Kddi株式会社 | プログラム難読化方法およびプログラム |
US7660967B2 (en) * | 2007-02-01 | 2010-02-09 | Efficient Memory Technology | Result data forwarding in parallel vector data processor based on scalar operation issue order |
US8176473B2 (en) * | 2007-05-14 | 2012-05-08 | Microsoft Corporation | Transformations for software obfuscation and individualization |
US20090327674A1 (en) * | 2008-06-27 | 2009-12-31 | Qualcomm Incorporated | Loop Control System and Method |
-
2008
- 2008-03-25 JP JP2008078779A patent/JP5300294B2/ja active Active
-
2009
- 2009-03-24 US US12/409,756 patent/US8225077B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8225077B2 (en) | 2012-07-17 |
JP2009230717A (ja) | 2009-10-08 |
US20090254738A1 (en) | 2009-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5300294B2 (ja) | 処理装置、難読化装置、プログラムおよび集積回路 | |
US8135963B2 (en) | Program conversion device and program execution device | |
JP4806402B2 (ja) | プログラム難読化装置及び難読化方法 | |
EP1840782B1 (en) | Unauthorized contents detection system | |
CN105408912B (zh) | 处理认证和资源许可 | |
US20210294879A1 (en) | Securing executable code integrity using auto-derivative key | |
JP5118036B2 (ja) | 命令生成装置、命令生成方法、プログラムおよび集積回路 | |
US10713339B2 (en) | Build system with plugins for encryption of application components | |
US8516574B2 (en) | Software update system, management apparatus, recording medium, and integrated circuit | |
EP2264640A2 (en) | Feature specific keys for executable code | |
CN109255235A (zh) | 基于用户态沙箱的移动应用第三方库隔离方法 | |
US10331896B2 (en) | Method of protecting secret data when used in a cryptographic algorithm | |
US7330980B2 (en) | Method of and system for encrypting digital data, method of and apparatus for reproducing digital data, and computer product | |
JP2004185064A (ja) | プログラムの難読化装置及び難読化方法 | |
CN112559983B (zh) | 软件安全加固方法、装置、电子设备及存储介质 | |
CN110032832B (zh) | 一种Web应用程序的处理方法及装置 | |
JP5356583B2 (ja) | 半導体記憶装置 | |
CN110032866B (zh) | 一种Web应用程序的处理方法及装置 | |
JP2008299930A (ja) | 半導体記憶装置 | |
EP3398103B1 (en) | A build system with plugins for encryption of application components | |
JP5716051B2 (ja) | 半導体記憶装置 | |
CN102985930B (zh) | 信息处理装置以及信息处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130508 |
|
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: 20130528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130618 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5300294 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |