JP2020181522A - 記録システム - Google Patents
記録システム Download PDFInfo
- Publication number
- JP2020181522A JP2020181522A JP2019086022A JP2019086022A JP2020181522A JP 2020181522 A JP2020181522 A JP 2020181522A JP 2019086022 A JP2019086022 A JP 2019086022A JP 2019086022 A JP2019086022 A JP 2019086022A JP 2020181522 A JP2020181522 A JP 2020181522A
- Authority
- JP
- Japan
- Prior art keywords
- data
- program
- unit
- encrypted
- plaintext
- 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
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
図1を参照して、データ記録システム1は、データ生成装置2A,2Bと、データ記録装置10とを含む。本例においては、データ記録装置10は、一例としてMCU(Micro Controller Unit)である。
図2を参照して、本例においては、X社およびY社がそれぞれプログラムAおよびBを作成する場合について説明する。
コンパイラ部20は、本例においては、X社のプログラムAを平文データ(プログラムコードA)にコンパイルする。
なお、本例においては、データ生成装置2Aにおいて、リンカ部24およびデバッガ部26を設けた構成について説明するが、特にこれに限らずデータ生成装置2Bがリンカ部24およびデバッガ部26を有する構成としても良い。
図4は、実施形態に従うデータ記録装置の機能ブロック図である。
I/F100は、データ生成装置2Aからの連結プログラムを受信した場合には、コマンド解析部110に出力する。
書込部104は、プログラムメモリ106に平文データを書き込む。書込部104は、プログラムメモリ106に平文データを書き込んだ際のプログラムメモリ106のアドレス情報を領域管理部108に登録する。また、書込部104は、平文データに対応する認証情報を領域管理部108に登録する。当該認証情報は、データ読出の際に用いられる。
図5は、実施形態に従うコンパイラ部20の処理の具体例について説明する図である。
本例においては、関数読み出し側(プログラムA)と、関数の被読み出し側(プログラムB)とがともに平文データとして示されている。
「#pragma crypted_api start
void api_XYZ0()
void api_XYZ1()
#pragma crypted_api end」
また、X社は、データ生成装置2Aに対して、ビルド情報を提供している。
一例として、下記の如く記述されている。
「_api_xyz0:jmp_entitiy_XYZ0
_api_xyz1:jmp_entitiy_XYZ1」
コンパイラ部20は、ヘッダファイルの「#pragma」記述により開始/終了点に宣言されたAPI関数が暗号化されている点を認識する。
「mov Base,エントリテーブル開始番地
CALL[Base+Offset1]」
コンパイラ部20により生成されたプログラムコードは、実行部111によるプログラムメモリ106上での動作時に領域管理部108からY社の平文データのエントリテーブルの開始アドレスを読み出し、エントリテーブル内のオフセットアドレスOffset1を加算した値を「api_XYZ1()関数」のエントリアドレスとして関数呼び出しを実行する。
図6を参照して、ソースの記述は、API関数の呼び出しであるか否かを判断する(ステップS2)。
「Offset」は、「api_XYZ1()関数」のプロトタイプ宣言順位にエントリテーブルで使用している分岐命令の命令長を乗じた値となる。
そして、次に、ファイル終端か否かを判断する(ステップS10)。
一方、ステップS2において、ソースの記述がAPI関数の呼び出しでないと判断した場合(ステップS2においてNO)あるいは、ステップS4において、呼び出す関数の実体は、ヘッダファイルに基づいて暗号化データに含まれないと判断した場合(ステップS4においてNO)には、通常の平文データを生成する(ステップS8)。
図7は、実施形態に従うデータ記録装置10のデータ格納処理について説明するフロー図である。
一方、ステップS44において、データ記録装置10は、認証情報が一致しないと判断した場合(ステップS44においてNO)には、データ読出を不許可とする(ステップS48)。開示制御部114は、認証情報が一致しないと判断した場合には、データ読出を不許可として読出部112に通知しない。
実施形態に従う方式により、データ記録装置10の外部においては、暗号化データとして機密性が保護される。
Claims (6)
- 第1のプログラムに対して、コンパイルした第1の平文データを暗号化して第1暗号化データとして出力する第1データ生成部と、
前記第1のプログラムと協働して動作する第2のプログラムに対して、前記第1暗号化データと連結した連結プログラムを出力する第2データ生成部と、
前記第2データ生成部から出力された前記連結プログラムを格納するデータ記録部とを備え、
前記第2データ生成部は、
前記第2のプログラムをコンパイルした第2の平文データを生成するコンパイラ部と、
前記第2の平文データを暗号化して第2暗号化データとして出力する暗号化処理部と、
前記第1暗号化データと、前記第2暗号化データとを連結するリンカ部と、
前記リンカ部で連結した連結プログラムを前記データ記録部に出力するデバッガ部とを含み、
前記コンパイラ部は、前記第2の平文データに対して、前記第1暗号化データとは別に送付される前記第1のプログラムのヘッダファイルに基づいて、前記第2のプログラムが参照する、前記第1のプログラムが有する関数モジュールのアドレスをプログラム実行時に前記データ記録部に格納されている情報に基づいて設定するためのプログラムコードを生成し、
前記データ記録部は、
前記連結プログラムを復号化する復号化処理部と、
復号化された第1および第2の平文データをブロック毎に格納する記憶部と、
前記記憶部に格納された前記第1および第2の平文データのアドレス情報を記録するアドレス情報記憶部とを含む、記録システム。 - 前記データ記録部は、前記記憶部に格納された前記第1および第2の平文データを実行する実行部をさらに含み、
前記実行部は、前記プログラムコードに従って、前記アドレス情報記憶部に格納されている前記第1の平文データの先頭アドレスと、前記ヘッダファイルに含まれている関数プロトタイプ宣言データに基づいて前記関数モジュールのエントリアドレスを設定する、請求項1記載の記録システム。 - 前記第1および第2の暗号化データは、公開鍵に基づいて暗号化され、
前記復号化処理部は、前記公開鍵と対を成す秘密鍵に基づいて前記連結プログラムに含まれる前記第1および第2の暗号化データを復号化する、請求項1記載の記録システム。 - 前記アドレス情報記憶部は、前記第1および第2の平文データにそれぞれ対応する認証情報を格納する、請求項1記載の記録システム。
- 前記データ記録部は、前記アドレス情報記憶部に格納されている認証情報に基づいて前記記憶部に格納されている前記第1および第2の平文データに対するアクセスの可否を判断する開示制御部をさらに含む、請求項4記載の記録システム。
- 前記コンパイラ部は、
前記第1のプログラムのヘッダファイルに基づいて、前記第2のプログラムが参照する、前記第1のプログラムが有する関数モジュールが前記第1暗号化データに含まれるか否かを判断し、
前記関数モジュールが含まれると判断した場合に、前記第1のプログラムの登録順位および前記関数モジュールの順位に基づいて、前記第2のプログラムが参照する、前記第1のプログラムが有する関数モジュールのアドレスをプログラム実行時に前記データ記録部に格納されている情報に基づいて設定するためのプログラムコードを生成する、請求項1記載の記録システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019086022A JP7123001B2 (ja) | 2019-04-26 | 2019-04-26 | 記録システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019086022A JP7123001B2 (ja) | 2019-04-26 | 2019-04-26 | 記録システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020181522A true JP2020181522A (ja) | 2020-11-05 |
JP7123001B2 JP7123001B2 (ja) | 2022-08-22 |
Family
ID=73024330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019086022A Active JP7123001B2 (ja) | 2019-04-26 | 2019-04-26 | 記録システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7123001B2 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002132371A (ja) * | 2000-08-15 | 2002-05-10 | Sony Computer Entertainment Inc | 情報処理システム、実行可能モジュール生成方法および記憶媒体 |
JP2007148575A (ja) * | 2005-11-24 | 2007-06-14 | Fuji Xerox Co Ltd | 保護済み実行プログラムの作成のためのプログラム、方法及び装置 |
JP2009512087A (ja) * | 2005-10-17 | 2009-03-19 | エヌエックスピー ビー ヴィ | プログラム実行可能イメージの暗号化 |
JP2010231477A (ja) * | 2009-03-27 | 2010-10-14 | Fuji Xerox Co Ltd | プログラム及びプログラム実行装置 |
WO2014147748A1 (ja) * | 2013-03-19 | 2014-09-25 | 株式会社東芝 | コード処理装置およびプログラム |
-
2019
- 2019-04-26 JP JP2019086022A patent/JP7123001B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002132371A (ja) * | 2000-08-15 | 2002-05-10 | Sony Computer Entertainment Inc | 情報処理システム、実行可能モジュール生成方法および記憶媒体 |
JP2009512087A (ja) * | 2005-10-17 | 2009-03-19 | エヌエックスピー ビー ヴィ | プログラム実行可能イメージの暗号化 |
JP2007148575A (ja) * | 2005-11-24 | 2007-06-14 | Fuji Xerox Co Ltd | 保護済み実行プログラムの作成のためのプログラム、方法及び装置 |
JP2010231477A (ja) * | 2009-03-27 | 2010-10-14 | Fuji Xerox Co Ltd | プログラム及びプログラム実行装置 |
WO2014147748A1 (ja) * | 2013-03-19 | 2014-09-25 | 株式会社東芝 | コード処理装置およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP7123001B2 (ja) | 2022-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Duck et al. | Binary rewriting without control flow recovery | |
JP4976991B2 (ja) | 情報処理装置、プログラム検証方法及びプログラム | |
RU2439669C2 (ru) | Способ предотвращения обратного инжиниринга программного обеспечения, неавторизованной модификации и перехвата данных во время выполнения | |
JP5460699B2 (ja) | ソフトウェアアプリケーションのホワイトボックス実装を生成するためのシステムおよび方法 | |
US7111285B2 (en) | Method and system for protecting software applications against static and dynamic software piracy techniques | |
JP5689472B2 (ja) | 悪意ある実行環境内での静的および動的攻撃からJavaバイトコードを保護するシステムおよび方法 | |
US7430670B1 (en) | Software self-defense systems and methods | |
US20160203087A1 (en) | Method for providing security for common intermediate language-based program | |
US20090138863A1 (en) | Method And Apparatus For Protecting .NET Programs | |
US20080271001A1 (en) | Method of generating program, information processing device and microcomputer | |
US20110271350A1 (en) | method for protecting software | |
JP2004038966A (ja) | セキュアな変数データ保護を提供するセキュアで不明瞭なタイプライブラリ | |
KR102028091B1 (ko) | 덱스 파일의 메모리 적재 장치 및 방법 | |
US20100070953A1 (en) | Compiler system and a method of compiling a source code into an encrypted machine language code | |
CN110309630B (zh) | 一种Java代码加密方法及装置 | |
JP5945313B2 (ja) | 構造体を生成する方法および対応する構造体 | |
CN106599627A (zh) | 基于虚拟机保护应用安全的方法及装置 | |
JP2005135265A (ja) | 情報処理装置 | |
CN112434266A (zh) | 一种shellcode控制流扁平化混淆方法 | |
JP7123001B2 (ja) | 記録システム | |
US20130275688A1 (en) | Data processing device and method | |
US8423974B2 (en) | System and method for call replacement | |
JP5387089B2 (ja) | プログラム及びプログラム実行装置 | |
JP2013037417A (ja) | メモリシステム、情報処理装置、メモリ装置、およびメモリシステムの動作方法 | |
US20050125783A1 (en) | Program optimization with intermediate code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211005 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220630 |
|
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: 20220719 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220809 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7123001 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |