JP5821720B2 - 起動制御プログラム、起動制御方法 - Google Patents
起動制御プログラム、起動制御方法 Download PDFInfo
- Publication number
- JP5821720B2 JP5821720B2 JP2012057717A JP2012057717A JP5821720B2 JP 5821720 B2 JP5821720 B2 JP 5821720B2 JP 2012057717 A JP2012057717 A JP 2012057717A JP 2012057717 A JP2012057717 A JP 2012057717A JP 5821720 B2 JP5821720 B2 JP 5821720B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- activation control
- control program
- activation
- license key
- 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
Description
図1は、本実施の形態例における組み込みソフトウェア(実行形式ファイル)30の生成環境であるコンピュータ100と、実行形式ファイル30がデバッグされる環境である製品ボード300とを表す例図である。実行形式ファイル30は、組み込みシステムで動作する組み込みソフトウェアである。
図1において、コンピュータ100は実行形式ファイル30を生成しデバッグするIDE(Integrated Development Environment)110と、実行形式ファイル30を生成時に入力とする各ファイルを有する。IDE110はソフトウェアの開発環境を示し、コンパイラ及びリンカ111、デバッガ112を有する。コンパイラは、C言語等のプログラミング言語で記述されたソースコードのプログラムを、コンピュータが実行可能な機械語のプログラムに変換するソフトウェアである。また、リンカは、機械語のプログラムを結合し実行形式のプログラムを作成する。
図1において、評価用の製品ボード300はLSI310を搭載し、ICE200を介してコンピュータ100のデバッガ112と接続される。デバッガ112とICE200とは、例えば、USB規格に基づいた信号線201で接続され、ICE200と製品ボード300とは、例えば、JTAG規格に基づく信号線202で接続される。また、LSI310は、プロセッサ312、ROM/RAM311、周辺回路(図示せず)等を有し、各構成部はバス313によって接続される。ROM/RAM311には、コンピュータ100のIDE110で生成された評価版の実行形式ファイル30が記憶され、プロセッサ312によって読み出され実行される。
図2の(A)は、評価版の実行形式ファイル30を生成しユーザの組み込みシステムに組み込む処理の流れを説明する図である。前述したとおり、機能プログラムの評価用として、ユーザに、機能プログラムライブラリ11、起動制御プログラムライブラリ12、評価版用の認証ライセンスキーが記載されたライセンスキー記載ソースコード13等の提供ファイル10が提供される。そして、ユーザは、ユーザプログラム20と提供ファイル10とをコンパイル及びリンクし、評価版の実行形式ファイル30を生成する(S11)。
図2の(B)は、製品版の実行形式ファイル30を生成しユーザの組み込みシステムに組み込む処理の流れを説明する図である。評価版の実行形式ファイル30の生成と同様にして、ユーザは、ユーザプログラム20と提供ファイル10とをコンパイル及びリンクして、製品版の実行形式ファイル30を生成する(S21)。ただし、ライセンスキー記載ソースコード13については、評価版の実行形式ファイル30生成時と内容が異なる。製品版の実行形式ファイル30の生成時、ライセンスキー記載ソースコード13の認証用ライセンスキーの値には、製品版ライセンスキーの値が記述される。
まず、機能プログラムライブラリ11について説明する。機能プログラムライブラリ11は、例えば、所定の機能を実現する処理を記述した1つまたは複数のソースコード及びヘッダファイル11−1〜11−nに基づいて生成される。
起動制御プログラムライブラリ12は、この例では、起動制御処理を記述する1つのソースコード12s及び、1つのヘッダファイル12hに基づいて生成される。提供側は、ソースコード12s及びヘッダファイル12hをコンパイル及びリンクして、機械語の起動制御プログラムライブラリ12を生成する。起動制御プログラムライブラリ12についても、機械語に変換されていることにより、ユーザによる、記述内容に基づく処理内容の検知や、処理内容の改ざんが防止される。起動制御プログラムライブラリ12の処理の詳細については、ソースコード12s、ヘッダファイル12hの記述例と共に後述する。
また、ライセンスキー記載ソースコード13には、認証用ライセンスキーの値が設定される。ライセンスキー記載ソースコード13で設定された認証用ライセンスキーの値は、起動制御プログラムライブラリ12によって参照され、製品版ライセンスキーの値と比較される。評価版の実行形式ファイル30の生成時に入力とされるライセンスキー記載ソースコード13では、認証用ライセンスキーの値に、製品版ライセンスキーと異なる値が設定される。製品版ライセンスキーと異なる値とは、即ち、ダミーの値である。一方、製品版の実行形式ファイル30の生成時に入力とされるライセンスキー記載ソースコード13では、認証用ライセンスキーの値に、製品版ライセンスキーの値が設定される。
図5は、起動制御プログラムライブラリ12とラインセンスキー記載ソースコード13の記述の一例を表す図である。この例において、起動制御プログラムライブラリ12は、ソースコード「start.c」12sと、ヘッダファイル「start.h」12hとがコンパイル及びリンクされることによって生成される。
図6は、機能プログラムの評価用として提供されるファイルに基づく評価版実行形式ファイルの生成について説明する図である。
次に、機能プログラムライブラリ11の評価用として提供された各ファイルに基づいて、製品版の実行形式ファイル30Bを生成する処理について説明する。
製品版の実行形式ファイル30は、別の方法に従って生成されてもよい。この場合、起動制御プログラムライブラリ12が、図7に示した空処理の起動制御プログラムライブラリ12αに置き換えられる。そして、ユーザは、空処理の起動制御プログラムライブラリ12αと、機能プログラムライブラリ11とユーザプログラム20とをコンパイル及びリンクして、製品版の実行形式ファイル30Bを生成する。
ところで、ユーザが機能プログラムライブラリ11の購入時に、提供側から通知される認証用の製品版ライセンスキーの値は、ユーザごとに異なってもよい。この場合、ユーザに通知される認証用の製品版ライセンスキーの値は、製品版ライセンスキーの値0x87651234に加えて、ユーザを特定するためのユーザ識別値(例えば、0x1〜0x9)を有する。例えば、ユーザ識別情報は、認証用の製品版ライセンスキー値のうち上位の所定ビットに対応する。
上記の例では、製品ボード300に搭載されたLSI310が有するプロセッサ312によって実行形式ファイル30が実行され、機能プログラムの起動が制御される場合を例示した。しかしながら、本実施の形態例における起動制御プログラムは、実行形式ファイル30が、ハードウェア記述言語によって記述され、コンピュータ100のシミュレータ(図示せず)によってシミュレーション実行されるプロセッサモデルによって実行される場合についても有効である。
ユーザプログラムから呼び出され所定の処理をコンピュータに実行させる機能プログラムと共に提供され、前記機能プログラムの起動時に当該機能プログラムから呼び出され当該機能プログラムの起動制御処理をコンピュータに実行させるコンピュータ読み取り可能な起動制御プログラムにおいて、
前記起動制御処理は、
前記コンピュータのプロセッサがデバッグ状態であるか否かのデバッグ状態判定を行い、前記デバッグ状態である場合に前記機能プログラムの起動を許可し、前記デバッグ状態ではない場合に前記機能プログラムの起動を停止する起動制御工程、を有する起動制御プログラム。
付記1において、
前記ユーザプログラムは組み込みシステムで実行され、
前記プロセッサは、当該プロセッサによって処理されるプログラムのデバッグを行うデバッグ装置と接続状態にあるときに、前記プロセッサのデバッグ情報レジスタにデバッグ状態であることを示す値を設定し、
前記デバッグ状態判定は、前記デバッグ情報レジスタの値に基づいて行われる起動制御プログラム。
付記2において、
前記デバッグ情報レジスタは前記プロセッサの種別によって異なり、
第1の種別のプロセッサに対応する前記起動制御プログラムの前記デバッグ状態判定は、第1のデバッグ情報レジスタに基づいて行われ、第2の種別のプロセッサに対応する前記起動制御プログラムの前記デバッグ状態判定は、第2のデバッグ情報レジスタに基づいて行われる起動制御プログラム。
付記1乃至3のいずれかにおいて、
前記機能プログラム及び前記起動制御プログラムが前記ユーザプログラムとコンパイル及びリンクされた実行形式プログラムが前記デバッグ状態のプロセッサで動作することによって、前記ユーザプログラムがデバッグされる起動制御プログラム。
ユーザプログラムから呼び出され所定の処理をコンピュータに実行させる機能プログラムと共に提供され、前記機能プログラムの起動時に前記機能プログラムから呼び出され当該機能プログラムの起動制御処理をコンピュータに実行させるコンピュータ読み取り可能な起動制御プログラムにおいて、
前記機能プログラム及び前記起動制御プログラムは、ハードウェア記述言語によって記述されシミュレーション実行されるプロセッサモデルによって実行され、当該プロセッサモデルがアクセス可能なメモリにはデバッグ状態を示すデバッグ状態情報が予め記憶され、
前記起動制御処理は、
前記デバッグ状態情報が前記メモリに記憶される場合に前記機能プログラムの起動を許可し、前記デバッグ状態情報が記憶されない場合に前記機能プログラムの起動を停止する起動制御工程、を有する起動制御プログラム。
付記1乃至5のいずれかにおいて、
前記起動制御プログラムには、前記ユーザプログラムのデバッグ時に呼び出される評価版の起動制御プログラムと、製品版の起動制御プログラムとがあり、
前記評価版の起動制御プログラムには、製品版ライセンスキーと値が異なる第1の認証用ライセンスキーが記述され、
前記製品版の起動制御プログラムには、前記製品版ライセンスキーの値を有する第2の認証用ライセンスキーが記述され、
前記起動制御工程は、前記製品版ライセンスキーの値と、前記起動制御プログラムに記述される前記第1または第2の認証用ライセンスキーの値とを比較し、一致する場合に前記デバッグ状態判定を行わずに前記機能プログラムの起動を許可し、一致しない場合に前記デバッグ状態判定を行う起動制御プログラム。
付記6において、
前記起動制御プログラムは、前記第1または第2の認証用ライセンスキーの値が設定される編集可能なソースコードと、当該外部変数が参照される前記起動制御処理が機械語で記述される起動制御プログラムライブラリとを有し、
前記起動制御プログラムライブラリ及び前記ソースコードが、前記機能プログラムと前記ユーザプログラムとコンパイル及びリンクされた実行形式ファイルが前記プロセッサで動作する起動制御プログラム。
付記6または7のいずれかにおいて、
前記第2の認証用ライセンスキーは、前記製品版ライセンスキーに加えて、ユーザごとに異なるユーザ識別情報を有し、
前記起動制御工程における比較工程において、前記第2の認証用ラインセンスキーにおける前記ユーザ識別情報を除く前記製品版ライセンスキーの値が、前記製品版ライセンスキーの値と比較される起動制御プログラム。
付記1乃至5のいずれかにおいて、
前記起動制御プログラムには、前記ユーザプログラムのデバッグ時に呼び出される評価版の起動制御プログラムと、製品版の起動制御プログラムとがあり、
前記評価版の起動制御プログラムライブラリの前記起動制御処理は前記起動制御工程を行い、前記製品版の起動制御プログラムライブラリの前記起動制御処理は、前記起動制御工程を行わずに呼び出し元の前記機能プログラムに制御を戻す起動制御プログラム。
所定の処理をコンピュータに実行させる機能プログラムの起動制御方法であって、
前記機能プログラムの起動時に、前記コンピュータのプロセッサがデバッグ状態であるか否かのデバッグ状態判定を行い、前記デバッグ状態である場合に前記機能プログラムの起動を許可し、前記デバッグ状態ではない場合に前記機能プログラムの起動を停止する起動制御工程、を有する起動制御方法。
Claims (10)
- ユーザプログラムから呼び出され所定の処理をコンピュータに実行させる機能プログラムと共に提供され、前記機能プログラムの起動時に当該機能プログラムから呼び出され当該機能プログラムの起動制御処理をコンピュータに実行させるコンピュータ読み取り可能な起動制御プログラムにおいて、
前記起動制御処理は、
前記コンピュータのプロセッサがデバッグ状態であるか否かのデバッグ状態判定を行い、前記デバッグ状態である場合に前記機能プログラムの起動を許可し、前記デバッグ状態ではない場合に前記機能プログラムの起動を停止する起動制御工程、を有する起動制御プログラム。 - 請求項1において、
前記ユーザプログラムは組み込みシステムで実行され、
前記プロセッサは、当該プロセッサによって処理されるプログラムのデバッグを行うデバッグ装置と接続状態にあるときに、前記プロセッサのデバッグ情報レジスタにデバッグ状態であることを示す値を設定し、
前記デバッグ状態判定は、前記デバッグ情報レジスタの値に基づいて行われる起動制御プログラム。 - 請求項2において、
前記デバッグ情報レジスタは前記プロセッサの種別によって異なり、
第1の種別のプロセッサに対応する前記起動制御プログラムの前記デバッグ状態判定は、第1のデバッグ情報レジスタに基づいて行われ、第2の種別のプロセッサに対応する前記起動制御プログラムの前記デバッグ状態判定は、第2のデバッグ情報レジスタに基づいて行われる起動制御プログラム。 - 請求項1乃至3のいずれかにおいて、
前記機能プログラム及び前記起動制御プログラムが前記ユーザプログラムとコンパイル及びリンクされた実行形式プログラムが前記デバッグ状態のプロセッサで動作することによって、前記ユーザプログラムがデバッグされる起動制御プログラム。 - ユーザプログラムから呼び出され所定の処理をコンピュータに実行させる機能プログラムと共に提供され、前記機能プログラムの起動時に前記機能プログラムから呼び出され当該機能プログラムの起動制御処理をコンピュータに実行させるコンピュータ読み取り可能な起動制御プログラムにおいて、
前記機能プログラム及び前記起動制御プログラムは、ハードウェア記述言語によって記述されシミュレーション実行されるプロセッサモデルによって実行され、当該プロセッサモデルがアクセス可能なメモリにはデバッグ状態を示すデバッグ状態情報が予め記憶され、
前記起動制御処理は、
前記デバッグ状態情報が前記メモリに記憶される場合に前記機能プログラムの起動を許可し、前記デバッグ状態情報が記憶されない場合に前記機能プログラムの起動を停止する起動制御工程、を有する起動制御プログラム。 - 請求項1乃至5のいずれかにおいて、
前記起動制御プログラムには、前記ユーザプログラムのデバッグ時に呼び出される評価版の起動制御プログラムと、製品版の起動制御プログラムとがあり、
前記評価版の起動制御プログラムには、製品版ライセンスキーと値が異なる第1の認証用ライセンスキーが記述され、
前記製品版の起動制御プログラムには、前記製品版ライセンスキーの値を有する第2の認証用ライセンスキーが記述され、
前記起動制御工程は、前記製品版ライセンスキーの値と、前記起動制御プログラムに記述される前記第1または第2の認証用ライセンスキーの値とを比較し、一致する場合に前記デバッグ状態判定を行わずに前記機能プログラムの起動を許可し、一致しない場合に前記デバッグ状態判定を行う起動制御プログラム。 - 請求項6において、
前記起動制御プログラムは、前記第1または第2の認証用ライセンスキーの値が設定される編集可能なソースコードと、当該外部変数が参照される前記起動制御処理が機械語で記述される起動制御プログラムライブラリとを有し、
前記起動制御プログラムライブラリ及び前記ソースコードが、前記機能プログラムと前記ユーザプログラムとコンパイル及びリンクされた実行形式ファイルが前記プロセッサで動作する起動制御プログラム。 - 請求項6または7のいずれかにおいて、
前記第2の認証用ライセンスキーは、前記製品版ライセンスキーに加えて、ユーザごとに異なるユーザ識別情報を有し、
前記起動制御工程における比較工程において、前記第2の認証用ラインセンスキーにおける前記ユーザ識別情報を除く前記製品版ライセンスキーの値が、前記製品版ライセンスキーの値と比較される起動制御プログラム。 - 請求項1乃至5のいずれかにおいて、
前記起動制御プログラムには、前記ユーザプログラムのデバッグ時に呼び出される評価版の起動制御プログラムと、製品版の起動制御プログラムとがあり、
前記評価版の起動制御プログラムライブラリの前記起動制御処理は前記起動制御工程を行い、前記製品版の起動制御プログラムライブラリの前記起動制御処理は、前記起動制御工程を行わずに呼び出し元の前記機能プログラムに制御を戻す起動制御プログラム。 - 所定の処理をコンピュータに実行させる機能プログラムの起動制御方法であって、
前記機能プログラムの起動時に、前記コンピュータのプロセッサがデバッグ状態であるか否かのデバッグ状態判定を行い、前記デバッグ状態である場合に前記機能プログラムの起動を許可し、前記デバッグ状態ではない場合に前記機能プログラムの起動を停止する起動制御工程、を有する起動制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012057717A JP5821720B2 (ja) | 2012-03-14 | 2012-03-14 | 起動制御プログラム、起動制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012057717A JP5821720B2 (ja) | 2012-03-14 | 2012-03-14 | 起動制御プログラム、起動制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013191082A JP2013191082A (ja) | 2013-09-26 |
JP5821720B2 true JP5821720B2 (ja) | 2015-11-24 |
Family
ID=49391236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012057717A Active JP5821720B2 (ja) | 2012-03-14 | 2012-03-14 | 起動制御プログラム、起動制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5821720B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678125B (zh) * | 2013-12-03 | 2017-01-25 | 华为技术有限公司 | 一种代码调试方法及调试系统 |
EP3832501A4 (en) * | 2018-08-02 | 2022-04-27 | NEC Solution Innovators, Ltd. | LICENSE MANAGEMENT DEVICE, OUTPUT DEVICE AND METHOD, PROGRAM EXECUTION DEVICE AND METHOD, AND COMPUTER READABLE MEDIA |
WO2020158954A1 (ja) * | 2019-02-01 | 2020-08-06 | 株式会社コンピュータマインド | サービス構築装置、サービス構築方法及びサービス構築プログラム |
-
2012
- 2012-03-14 JP JP2012057717A patent/JP5821720B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013191082A (ja) | 2013-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7250178B2 (ja) | ブロックチェーンネットワークにおけるスマートコントラクトをサポートするための方法及びコントラクト書き換えフレームワークシステム | |
US8621279B1 (en) | System and method for generating emulation-based scenarios for Error Handling | |
Felt et al. | Android permissions demystified | |
Sen et al. | Jalangi: A selective record-replay and dynamic analysis framework for JavaScript | |
KR101966754B1 (ko) | 소프트웨어 코드의 생성 및 캐싱 기법 | |
TWI423040B (zh) | 一種用於藉由一安全性虛擬機器執行一安全政策的方法以及系統 | |
US20180260199A1 (en) | Method and apparatus for intermediate representation of applications | |
US8352923B2 (en) | Method and system for isolating software components | |
CN107526625B (zh) | 一种基于字节码检查的Java智能合约安全检测方法 | |
US8584102B2 (en) | Creating and using deltas to modify existing computer code | |
Andreasen et al. | Systematic approaches for increasing soundness and precision of static analyzers | |
US20080271001A1 (en) | Method of generating program, information processing device and microcomputer | |
CN105159732B (zh) | 在移动终端安装或更新应用程序的方法和移动终端 | |
JP2011508317A (ja) | コードエラーを減らすためのコントラクトプログラミング | |
Kuchta et al. | Shadow symbolic execution for testing software patches | |
CN100492387C (zh) | 基于Keil C51的软件保护开发的方法和系统 | |
Lam et al. | When tests collide: Evaluating and coping with the impact of test dependence | |
JP5821720B2 (ja) | 起動制御プログラム、起動制御方法 | |
Recoules et al. | Interface compliance of inline assembly: Automatically check, patch and refine | |
Kyle et al. | Application of domain-aware binary fuzzing to aid Android virtual machine testing | |
El-Harake et al. | Blocking advertisements on android devices using monitoring techniques | |
Desnos et al. | Androguard documentation | |
Kannavara | Securing opensource code via static analysis | |
Zhang et al. | Using type analysis in compiler to mitigate integer-overflow-to-buffer-overflow threat | |
Ponomarenko et al. | Automatic backward compatibility analysis of software component binary interfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141201 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20150610 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150831 |
|
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: 20150908 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150921 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5821720 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |