JP7068752B2 - ソースコード解析装置およびソースコード解析プログラム - Google Patents
ソースコード解析装置およびソースコード解析プログラム Download PDFInfo
- Publication number
- JP7068752B2 JP7068752B2 JP2018053902A JP2018053902A JP7068752B2 JP 7068752 B2 JP7068752 B2 JP 7068752B2 JP 2018053902 A JP2018053902 A JP 2018053902A JP 2018053902 A JP2018053902 A JP 2018053902A JP 7068752 B2 JP7068752 B2 JP 7068752B2
- Authority
- JP
- Japan
- Prior art keywords
- source code
- functions
- function
- analysis
- unit
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
指定されたソースコードをもとに、プログラム要素間の依存関係が分析される。そして、依存強度が表の交点に示される。これにより、ソースコードの変更における影響範囲が特定される。
ソフトウェアの静的解析結果としてソフトウェアの問題点が出力される。そして、問題点の発生箇所を知らせる警告が表示される。また、ソフトウェアの品質の尺度となるメトリックスが分析される。そして、メトリックスが表示される。これにより、的確な問題点の指摘および効率的な問題点の把握が可能となる。
しかし、ソフトウェアが巨大化または複雑化すると、修正を要する箇所の警告が多数出る可能性がある。例えば、実際には呼び出されないデッドコード等も含めて、数千の警告が出る可能性がある。この場合、限られた時間で、ソフトウェア設計者がすべての箇所を修正することは困難である。
第1ソースコードに含まれる1つ以上の変数のうち第2ソースコードに含まれる関数からアクセスされる変数である注目変数にアクセスする1つ以上のアクセス関数を前記第1ソースコードから見つける第1解析部と、
脆弱条件を満たす1つ以上の脆弱関数を前記第1ソースコードから見つける第2解析部と、
前記1つ以上の脆弱関数から前記1つ以上のアクセス関数に含まれる脆弱関数を注目関数として選択する絞り込み部とを備える。
例えば、ソフトウェアの修正箇所を効率よく絞り込むことが可能となる。
ソースコードの中の注目すべき関数を絞り込む形態について、図1から図10に基づいて説明する。
図1に基づいて、ソースコード解析装置100の構成を説明する。
ソースコード解析装置100は、プロセッサ101とメモリ102と補助記憶装置103と入出力インタフェース104といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
メモリ102は揮発性の記憶装置である。メモリ102は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ102はRAM(Random Access Memory)である。メモリ102に記憶されたデータは必要に応じて補助記憶装置103に保存される。
補助記憶装置103は不揮発性の記憶装置である。例えば、補助記憶装置103は、ROM(Read Only Memory)、HDD(Hard Disk Drive)、またはフラッシュメモリである。補助記憶装置103に記憶されたデータは必要に応じてメモリ102にロードされる。
入出力インタフェース104は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース104はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。USBはUniversal Serial Busの略称である。
さらに、補助記憶装置103にはOS(Operating System)が記憶されている。OSの少なくとも一部は、メモリ102にロードされて、プロセッサ101によって実行される。
つまり、プロセッサ101は、OSを実行しながら、ソースコード解析プログラムを実行する。
ソースコード解析プログラムを実行して得られるデータは、メモリ102、補助記憶装置103、プロセッサ101内のレジスタまたはプロセッサ101内のキャッシュメモリといった記憶装置に記憶される。
ソースコード解析装置100の動作はソースコード解析方法に相当する。また、ソースコード解析方法の手順はソースコード解析プログラムの手順に相当する。
ステップS110において、受付部111は、第1ソースコードと第2ソースコードとを受け付ける。
第1ソースコードは、1つ以上の変数と1つ以上の関数とを含む。
第2ソースコードは、1つ以上の変数と1つ以上の関数とを含む。
具体的な第2ソースコードは、外部システムで実行されるプログラムのソースコードである。外部システムは、対象システムにアクセスするシステムである。
ステップS111において、利用者は、第1ソースコードをソースコード解析装置100に入力する。
そして、受付部111は、入出力インタフェース104を介して、第1ソースコードを受け付ける。
そして、受付部111は、入出力インタフェース104を介して、第2ソースコードを受け付ける。
ステップS120において、第1解析部112は、第1ソースコードから1つ以上のアクセス関数を見つける。
アクセス関数は、第1ソースコードに含まれる1つ以上の関数のうち、注目変数にアクセスする関数である。アクセス関数には、注目変数に直接にアクセスする関数の他に、1つ以上の関数を介して注目変数にアクセスする関数が含まれる。例えば、第1関数が注目関数にアクセスする関数であり、第2関数が第1関数を呼び出す関数である場合、第1関数と第2関数とのそれぞれがアクセス関数である。例えば、アクセス関数は注目関数を参照する関数である。
注目変数は、第1ソースコードに含まれる1つ以上の変数のうち、第2ソースコードに含まれる関数からアクセスされる変数である。例えば、注目変数は第2ソースコードに含まれる関数によって更新される変数である。
ソフトウェア要素の階層構造は、ソフトウェア要素間の依存関係を示す。主なソフトウェア要素は、変数および関数である。主な依存関係は、変数へのアクセスおよび関数の呼び出しである。
ソフトウェア要素の階層構造には、注目変数と1つ以上のアクセス関数とが含まれる。
ステップS121において、第1解析部112は、システムソースコードを記憶部120からメモリ102に読み出す。
つまり、第1解析部112は、第1ソースコードと第2ソースコードとを記憶部120からメモリ102に読み出す。
システムソースコードがメモリ102に記憶されている場合、ステップS121は不要である。
これにより、ソフトウェア要素の階層構造が得られる。
ステップS130において、第2解析部113は、第1ソースコードから1つ以上の脆弱関数を見つける。
脆弱関数は、脆弱条件を満たす関数である。
脆弱条件は、ソフトウェアに関する脆弱性を有する関数が満たす条件である。脆弱条件は予め決められる。
注目変数がバッファ変数である場合、脆弱条件は、例えば、バッファオーバーフローが発生する関数が満たす条件である。脆弱関数は、バッファオーバーフローを発生する可能性がある。バッファ変数は、バッファとして使用される変数である。
ステップS131において、第2解析部113は、第1ソースコードを記憶部120からメモリ102に読み出す。
第1ソースコードがメモリ102に記憶されている場合、ステップS131は不要である。
これにより、1つ以上の脆弱関数が見つかる。
ステップS140において、第3解析部114は、1つ以上の脆弱関数のそれぞれのアクセス頻度を算出する。
アクセス頻度は、注目変数に対するアクセスの頻度である。
ステップS141において、第3解析部114は、システムソースコードを記憶部120からメモリ102に読み出す。
つまり、第3解析部114は、第1ソースコードと第2ソースコードとを記憶部120からメモリ102に読み出す。
システムソースコードがメモリ102に記憶されている場合、ステップS141は不要である。
これにより、第1ソースコードに含まれる1つ以上の関数のそれぞれのアクセス頻度が算出される。第1ソースコードに含まれる1つ以上の関数には、1つ以上の脆弱関数が含まれる。
ステップS150において、絞り込み部115は、1つ以上の脆弱関数から1つ以上の注目関数を選択する。
注目関数は、1つ以上のアクセス関数に含まれる脆弱関数である。つまり、注目関数は、アクセス関数と脆弱関数とのいずれにも該当する関数である。
ステップS151において、絞り込み部115は、ソフトウェア要素の階層構造と脆弱関数一覧とを記憶部120からメモリ102に読み出す。
ソフトウェア要素の階層構造と脆弱関数一覧とがメモリ102に記憶されている場合、ステップS151は不要である。
具体的には、絞り込み部115は、アクセス関数と同じ名称の関数が脆弱関数一覧に含まれるか判定する。アクセス関数と同じ名称の関数が脆弱関数一覧に含まれる場合、アクセス関数は脆弱関数である。
アクセス関数が脆弱関数である場合、処理はステップS154に進む。
アクセス関数が脆弱関数でない場合、処理はステップS155に進む。
注目関数一覧は1つ以上の注目関数を示す。
未選択関数が有る場合、処理はステップS156に進む。
未選択関数が無い場合、処理はステップS152に進む。
ステップS160において、順位付け部116は、1つ以上の注目関数のそれぞれのアクセス頻度に基づいて、1つ以上の注目関数に優先順位を付ける。
具体的には、順位付け部116は、アクセス頻度が大きいほど高い優先順位を各注目関数に付ける。
ステップS161において、順位付け部116は、注目関数一覧とアクセス頻度一覧とを記憶部120からメモリ102に読み出す。
注目関数一覧とアクセス頻度一覧とがメモリ102に記憶されている場合、ステップS161は不要である。
具体的には、順位付け部116は、アクセス頻度が大きいほど高い優先順位を各注目関数に付ける。
これにより、優先順位に従って並んだ1つ以上の注目関数が注目関数一覧に示される。
ステップS170において、表示部117は、1つ以上の注目関数が優先順位に従って並んだ状態で1つ以上の注目関数を表示する。
表示処理(S170)における注目関数一覧は、順位付け処理(S160)の後の注目関数一覧を意味する。
注目関数一覧がメモリ102に記憶されている場合、ステップS171は不要である。
受付部111は、第1ソースコード121と第2ソースコード122とを受け付ける。
第1ソースコード121は、バッファ変数buff[x]を有する。
バッファ変数buff[x]は、注目変数であり、第2ソースコード122に含まれる関数からアクセスされる。
階層構造123は、関数f1()と関数f3()とのそれぞれがバッファ変数buff[x]にアクセスすることを示している。さらに、階層構造123は、関数f3()が関数f5()から呼び出されることを示している。関数f1()、関数f3()および関数f5()は、第1ソースコード121に含まれる。
アクセス関数は、関数f1()、関数f3()および関数f5()である。
第3解析部114は、第1ソースコード121に対する動的解析を行うことによって、アクセス頻度一覧を生成する。
解析結果124は、脆弱関数一覧とアクセス頻度一覧とをマージすることによって得られる表である。脆弱性「なし」に対応する関数は、脆弱関数に該当しない。
脆弱関数は、関数f1()、関数f3()、関数f5()および関数f7()である。関数f1()、関数f3()、関数f5()および関数f7()は第1ソースコード121に含まれる。
解析結果124において、脆弱関数は、関数f1()、関数f3()、関数f5()および関数f7()である。
階層構造123において、アクセス関数は、関数f1()、関数f3()および関数f5()である。
したがって、注目関数は、関数f1()、関数f3()および関数f5()である。
注目関数は、関数f1()、関数f3()および関数f5()である。
解析結果124において、関数f1()のアクセス頻度は100であり、関数f3()のアクセス頻度は50であり、関数f5()のアクセス頻度は30である。
したがって、注目関数の優先順位は、関数f1()、関数f3()、関数f5()の順に高い。
ソースコードの中の注目すべき関数を絞り込むことができる。さらに、注目すべき関数に優先順位を付けることができる。
例えば、ソフトウェアの修正箇所を効率よく絞り込むことが可能となる。さらに、優先順位に基づいたソフトウェアの修正が可能となる。
このことは、仕様が明確ではない外部システム(つまり、例えば他社の装置のように、対象システムの設計者が挙動を明らかにできないシステム)との間で種々の情報をやり取りする対象システムにおいて、特に外部システムからのアクセスに関わる部分の弱点(つまり、外部システムからのアクセスに対して脆弱な設計部分)を見つけ出すことに繋がる。
ソースコード解析方法の手順は、図2における手順と異なってもよい。
例えば、ステップS120からステップS140の順番が入れ替わっても構わない。
ソフトウェアにおける脆弱性の種類と各注目関数に対する優先順位の付け方とが実施の形態1と異なる形態について、主に実施の形態1と異なる点を図11から図13に基づいて説明する。
ソースコード解析装置100の構成は、実施の形態1における構成と同じである(図1参照)。
図11に基づいて、ソースコード解析方法を説明する。
ステップS210において、受付部111は、第1ソースコードと第2ソースコードとを受け付ける。つまり、受付部111は、システムソースコードを受け付ける。
ステップS210は、実施の形態1におけるステップS110と同じである。
ステップS220は、実施の形態1におけるステップS120と同じである。
脆弱関数は、脆弱条件を満たす関数である。
・整数オーバーフロー
・配列インデックスの検証不備
・未初期化変数の利用
・ポインタ変数に対するsizeof演算子の使用
第2解析部113は、特許文献2に開示されたソースコード解析を行うことによって、脆弱関数を見つけてもよい。脆弱関数は、特許文献2における警告対象の関数の一種である。
ステップS241において、第3解析部114は、システムソースコードを記憶部120からメモリ102に読み出す。
ステップS241は、実施の形態1におけるステップS141と同じである(図6参照)。
これにより、第1ソースコードに含まれる1つ以上の関数のそれぞれの呼び出しタイミングが特定される。第1ソースコードに含まれる1つ以上の関数には、1つ以上の脆弱関数が含まれる。
ステップS250において、絞り込み部115は、1つ以上の脆弱関数から1つ以上の注目関数を選択する。
ステップS250は、実施の形態1におけるステップS150と同じである(図2参照)。
具体的には、順位付け部116は、優先順位規則にしたがって、1つ以上の注目関数に優先順位を付ける。優先順位規則は、予め決められる規則であり、呼び出しタイミングと優先順位との関係を指定する。
ステップS270は、実施の形態1におけるステップS170と同じである(図2参照)。
この具体例は、解析結果126を除いて、実施の形態1における具体例と同じである(図10参照)。解析結果126は、実施の形態1における解析結果124に相当する。
第1解析部112は、第1ソースコード121と第2ソースコード122とに対する構造解析を行うことによって、階層構造123を生成する。
第2解析部113は、第1ソースコード121に対する静的解析を行うことによって、脆弱関数一覧を生成する。
第3解析部114は、第1ソースコード121に対する動的解析を行うことによって、呼び出しタイミング一覧を生成する。
解析結果126は、脆弱関数一覧と呼び出しタイミング一覧とをマージすることによって得られる表である。
絞り込み部115は、1つ以上の脆弱関数から1つ以上のアクセス関数に含まれる脆弱関数を選択する。選択される脆弱関数が注目関数である。
順位付け部116は、1つ以上の注目関数のそれぞれの呼び出しタイミングに基づいて、1つ以上の注目関数に優先順位を付ける。
注目関数一覧125は、優先順位に従って並んだ3つの注目関数を示している。
表示部117は、注目関数一覧125をディスプレイに表示する。
バッファオーバーフロー以外の脆弱性を有する1つ以上の脆弱関数から1つ以上の注目関数を絞り込むことができる。さらに、各注目関数の呼び出しタイミングに基づいて各注目関数に優先順位を付けることができる。
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
Claims (6)
- 対象システムで実行される第1ソースコードに含まれる1つ以上の変数のうち前記対象システムにアクセスする外部システムで実行される第2ソースコードに含まれる関数からアクセスされる変数である注目変数にアクセスする1つ以上のアクセス関数を前記第1ソースコードから見つける第1解析部と、
脆弱条件を満たす1つ以上の脆弱関数を前記第1ソースコードから見つける第2解析部と、
前記1つ以上の脆弱関数から前記1つ以上のアクセス関数に含まれる脆弱関数を注目関数として選択する絞り込み部と
を備えるソースコード解析装置。 - 1つ以上の注目関数のそれぞれについて前記注目変数に対するアクセス頻度を算出する第3解析部と、
前記1つ以上の注目関数のそれぞれのアクセス頻度に基づいて前記1つ以上の注目関数に優先順位を付ける順位付け部と
を備える請求項1に記載のソースコード解析装置。 - 前記1つ以上の注目関数が前記優先順位に従って並んだ状態で前記1つ以上の注目関数を表示する表示部
を備える請求項2に記載のソースコード解析装置。 - 1つ以上の注目関数のそれぞれの呼び出しタイミングを特定する第3解析部と、
前記1つ以上の注目関数のそれぞれの呼び出しタイミングに基づいて前記1つ以上の注目関数に優先順位を付ける順位付け部と
を備える請求項1に記載のソースコード解析装置。 - 前記1つ以上の注目関数が前記優先順位に従って並んだ状態で前記1つ以上の注目関数を表示する表示部
を備える請求項4に記載のソースコード解析装置。 - 対象システムで実行される第1ソースコードに含まれる1つ以上の変数のうち前記対象システムにアクセスする外部システムで実行される第2ソースコードに含まれる関数からアクセスされる変数である注目変数にアクセスする1つ以上のアクセス関数を前記第1ソースコードから見つける第1解析部と、
脆弱条件を満たす1つ以上の脆弱関数を前記第1ソースコードから見つける第2解析部と、
前記1つ以上の脆弱関数から前記1つ以上のアクセス関数に含まれる脆弱関数を注目関数として選択する絞り込み部
としてコンピュータを機能させるためのソースコード解析プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018053902A JP7068752B2 (ja) | 2018-03-22 | 2018-03-22 | ソースコード解析装置およびソースコード解析プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018053902A JP7068752B2 (ja) | 2018-03-22 | 2018-03-22 | ソースコード解析装置およびソースコード解析プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019168753A JP2019168753A (ja) | 2019-10-03 |
JP7068752B2 true JP7068752B2 (ja) | 2022-05-17 |
Family
ID=68106835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018053902A Active JP7068752B2 (ja) | 2018-03-22 | 2018-03-22 | ソースコード解析装置およびソースコード解析プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7068752B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021077264A (ja) * | 2019-11-13 | 2021-05-20 | 富士通株式会社 | 解析プログラム、解析方法及び解析装置 |
JP7469999B2 (ja) | 2020-09-10 | 2024-04-17 | 株式会社日立製作所 | 検索装置、検索方法、および検索プログラム |
CN116830081A (zh) | 2021-02-24 | 2023-09-29 | 索尼集团公司 | 信息处理装置、信息处理方法、计算机程序和信息处理系统 |
WO2023195307A1 (ja) * | 2022-04-08 | 2023-10-12 | 三菱電機株式会社 | 解析支援装置、解析支援プログラム、および、解析支援方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001273169A (ja) | 2000-03-24 | 2001-10-05 | Toshiba Corp | プログラムテスト仕様書生成装置 |
WO2006087780A1 (ja) | 2005-02-17 | 2006-08-24 | Fujitsu Limited | 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法 |
JP2007052625A (ja) | 2005-08-18 | 2007-03-01 | Hitachi Software Eng Co Ltd | ソースコード脆弱性検査装置 |
JP2007179488A (ja) | 2005-12-28 | 2007-07-12 | Fujitsu Ltd | ソースコード問題予測プログラム |
JP2008197731A (ja) | 2007-02-08 | 2008-08-28 | Mitsubishi Electric Corp | 静的解析結果の分析表示装置 |
JP2012141741A (ja) | 2010-12-28 | 2012-07-26 | Fujitsu Ltd | 解析支援プログラム,解析支援装置および解析支援方法 |
WO2017141893A1 (ja) | 2016-02-17 | 2017-08-24 | 三菱電機株式会社 | ソフトウェア分析装置及びソフトウェア分析方法 |
-
2018
- 2018-03-22 JP JP2018053902A patent/JP7068752B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001273169A (ja) | 2000-03-24 | 2001-10-05 | Toshiba Corp | プログラムテスト仕様書生成装置 |
WO2006087780A1 (ja) | 2005-02-17 | 2006-08-24 | Fujitsu Limited | 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法 |
JP2007052625A (ja) | 2005-08-18 | 2007-03-01 | Hitachi Software Eng Co Ltd | ソースコード脆弱性検査装置 |
JP2007179488A (ja) | 2005-12-28 | 2007-07-12 | Fujitsu Ltd | ソースコード問題予測プログラム |
JP2008197731A (ja) | 2007-02-08 | 2008-08-28 | Mitsubishi Electric Corp | 静的解析結果の分析表示装置 |
JP2012141741A (ja) | 2010-12-28 | 2012-07-26 | Fujitsu Ltd | 解析支援プログラム,解析支援装置および解析支援方法 |
WO2017141893A1 (ja) | 2016-02-17 | 2017-08-24 | 三菱電機株式会社 | ソフトウェア分析装置及びソフトウェア分析方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2019168753A (ja) | 2019-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7068752B2 (ja) | ソースコード解析装置およびソースコード解析プログラム | |
US8572527B1 (en) | Generating properties for circuit designs | |
US20110107345A1 (en) | Multiprocessor circuit using run-time task scheduling | |
US8584095B2 (en) | Test support system, method and computer program product, which optimize test scenarios to minimize total test time | |
WO2018066074A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
WO2019159397A1 (ja) | ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム | |
US10740257B2 (en) | Managing accelerators in application-specific integrated circuits | |
US20200233732A1 (en) | Helping a hardware accelerator using software | |
US20240061664A1 (en) | Computer-implemented method for automatically determining a target architecture | |
US10990073B2 (en) | Program editing device, program editing method, and computer readable medium | |
JP6824053B2 (ja) | 関係分析装置および関係分析プログラム | |
JP6567215B2 (ja) | アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラム | |
JP7027857B2 (ja) | 制御装置 | |
JP6548848B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
KR20160070631A (ko) | 프로세서 및 프로세서의 명령어 처리 방법 | |
WO2019171464A1 (ja) | 設計支援装置および設計支援プログラム | |
US20170192485A1 (en) | Providing a power optimized design for a device | |
US20200004503A1 (en) | Information processing device, information processing method, and computer readable medium | |
US12007973B2 (en) | Information processing method, non-transitory computer readable medium having recorded thereon program, and information processing device | |
JP6851210B2 (ja) | 分析支援装置、分析支援方法および分析支援プログラム | |
GB2576457A (en) | Queues for inter-pipeline data hazard avoidance | |
JP6266183B2 (ja) | 回路設計支援装置および回路設計支援プログラム | |
JP2024072010A (ja) | プログラム、命令実行制御装置、及び命令実行制御方法 | |
JP6201921B2 (ja) | マイクロコンピュータ | |
JP2022163410A (ja) | テストケースの順序決定方法、及びテスト実行装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200914 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210811 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211116 |
|
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: 20220405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220429 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7068752 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |