JP6338796B1 - 変換装置、変換プログラム、プログラム変換方法 - Google Patents
変換装置、変換プログラム、プログラム変換方法 Download PDFInfo
- Publication number
- JP6338796B1 JP6338796B1 JP2018000920A JP2018000920A JP6338796B1 JP 6338796 B1 JP6338796 B1 JP 6338796B1 JP 2018000920 A JP2018000920 A JP 2018000920A JP 2018000920 A JP2018000920 A JP 2018000920A JP 6338796 B1 JP6338796 B1 JP 6338796B1
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- function
- conversion target
- target program
- 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
Landscapes
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
Description
本実施形態に係る変換装置は、攻撃を検知して停止するようにプログラムを変換する変換装置である。この変換装置は、GOTを書き換えることで不正なプログラムを実行するGOT上書き攻撃からの防御のためにプログラムを変換する装置として好適に採用されるものである。
S701 変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスか相対アドレスか判定する。
S703 S701の処理で絶対アドレスと判定された場合に、PLT解決アドレスと、GOTスロットが参照する値とを対比して、値が一致するか判定する。
S705 S701の処理で相対アドレスと判定された場合に、変換対象プログラムの開始位置を示す絶対アドレスとPLT解決アドレスとを加算して得られる絶対アドレスと、変換対象プログラムの開始位置を示す絶対アドレスとGOTスロットとを加算した結果であるアドレスが参照する値とを対比して、値が一致するか判定する。
S707 S703の処理で値が一致しないと判定された場合に、共有ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスか相対アドレスか判定する。
S709 S707の処理で絶対アドレスと判定された場合に、関数アドレスと、GOTスロットが参照する値とを対比して、値が一致するか判定する。
S711 S707の処理で相対アドレスと判定された場合に、共有ライブラリの開始位置を示す絶対アドレスと関数アドレスとを加算して得られる絶対アドレスと、GOTスロットが参照する値とを対比して、値が一致するか判定する。
S713 S705の処理で値が一致しないと判定された場合に、共有ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスか相対アドレスか判定する。
S715 S713の処理で絶対アドレスと判定された場合に、関数アドレスと、変換対象プログラムの開始位置を示す絶対アドレスとGOTスロットとを加算した結果であるアドレスが参照する値とを対比して、値が一致するか判定する。
S717 S713の処理で相対アドレスと判定された場合に、共有ライブラリの開始位置を示す絶対アドレスと関数アドレスとを加算して得られる絶対アドレスと、変換対象プログラムの開始位置を示す絶対アドレスとGOTスロットとを加算した結果であるアドレスが参照する値とを対比して、値が一致するか判定する。
本実施形態に係る変換装置は、攻撃を検知して停止するようにプログラムを変換する変換装置である。第1実施形態が、ロードアドレス算出命令生成挿入部100は変換対象プログラム及び共有ライブラリの開始アドレスを静的変数に格納することで保持するプログラムを生成するのに対して、本実施形態は、ロードアドレス算出命令生成挿入部100は、変換対象プログラム及び共有ライブラリの開始アドレスを低い順に1つの文字列に連結してファイルに出力し、このファイルに記載された文字列を読み込み可能、書き込み不可としてプロセス空間に新たなメモリ領域として保存し、このメモリ領域の開始アドレスを静的変数に格納するプログラムを生成して、変換対象プログラムから呼び出すことができるように変換対象プログラムに挿入する点が相違する。読み取り専用でメモリに書き込むため、第1実施形態よりもセキュアなプログラムへの変換が実現できる。
100 ロードアドレス算出命令生成挿入部
110 GOTスロット取得部
120 GOT書き込み可否判定部
130 PLT解決アドレス取得部生成部
140 関数アドレス取得部
150 PLTチェック命令生成挿入部
160 関数アドレスチェック命令生成挿入部
170 関数別ジャンプ命令生成挿入部
180 コール命令書き換え部
190 リターン命令書き換え部
B10 情報取得ブロック
B20 命令生成挿入ブロック
B30 命令書き換えブロック
20 ハードウェア構成
210 中央演算装置(CPU)
220 入力装置
230 出力装置
240 主記憶装置(RAM/ROM)
250 補助記憶装置
260 複数のレジスタ
Claims (4)
- 攻撃を検知して停止するようにプログラムを変換する変換装置であって、
変換対象プログラムの実行開始直後に、前記変換対象プログラムの開始アドレス及び前記変換対象プログラムにリンクされる共有ライブラリの開始アドレスを算出し、静的変数に格納するプログラムを生成して、前記変換対象プログラムから、このプログラムを呼び出すことができるように前記変換対象プログラムに挿入する、ロードアドレス算出命令生成挿入部と、
前記共有ライブラリ内の関数を呼び出す際に前記変換対象プログラムに存在する前記関数のプロシージャリンケージテーブルから特定されるグローバルオフセットテーブル中の前記関数のスロット(以下、GOTスロット)を、前記変換対象プログラムに問い合わせ、取得して、保持するGOTスロット取得部と、
前記変換対象プログラムに存在するグローバルオフセットテーブルが書き込み可能かどうかを判定するGOT書き込み可否判定部と、
グローバルオフセットテーブルが書き込み可能な場合に、前記変換対象プログラムに存在するプロシージャリンケージテーブルに記述されている遅延リンクの際に前記関数のアドレスを解決するための命令群の先頭アドレス(以下、PLT解決アドレス)を、前記変換対象プログラムに問い合わせ、取得して、保持するPLT解決アドレス取得部と、
グローバルオフセットテーブルが書き込み可能な場合に、前記変換対象プログラムから呼び出される前記関数本体の先頭アドレス(以下、関数アドレス)を、前記共有ライブラリに問い合わせ、取得して、保持する関数アドレス取得部と、
グローバルオフセットテーブルが書き込み可能な場合に、前記変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、前記PLT解決アドレスと、前記GOTスロットが参照する値とを対比して、前記変換対象プログラムのヘッダのエントリポイントに記述された値が相対アドレスである場合には、前記変換対象プログラムの開始位置を示す絶対アドレスと前記PLT解決アドレスとを加算して得られる絶対アドレスと、前記変換対象プログラムの開始位置を示す絶対アドレスと前記GOTスロットとを加算した結果であるアドレスが参照する値とを対比して、値が一致していれば関数別ジャンプ命令生成挿入部が生成した命令に引き渡す命令を、値が一致していなければ関数アドレスチェック命令生成挿入部に引き渡す命令を、生成して、前記変換対象プログラムに挿入する、PLTチェック命令生成挿入部と、
グローバルオフセットテーブルが書き込み可能な場合に、前記変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスである場合であって、前記共有ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、前記関数アドレスと、前記GOTスロットが参照する値とを対比して、前記共有ライブラリのヘッダのエントリポイントに記述された値が相対アドレスである場合には、前記共有ライブラリの開始位置を示す絶対アドレスと前記関数アドレスとを加算して得られる前記関数の開始位置を示す絶対アドレスと、前記GOTスロットが参照する値とを対比して、前記変換対象プログラムのヘッダのエントリポイントに記述された値が相対アドレスである場合であって、前記共有ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、前記関数アドレスと、前記変換対象プログラムの開始位置を示す絶対アドレスと前記GOTスロットとを加算した結果であるアドレスが参照する値とを対比して、前記共有ライブラリのヘッダのエントリポイントに記述された値が相対アドレスである場合には、前記共有ライブラリの開始位置を示す絶対アドレスと前記関数アドレスとを加算して得られる前記関数の開始位置を示す絶対アドレスと、前記変換対象プログラムの開始位置を示す絶対アドレスと前記GOTスロットとを加算した結果であるアドレスが参照する値とを対比して、値が一致していれば関数別ジャンプ命令生成挿入部が生成した命令に引き渡す命令を、値が一致しなければ前記変換対象プログラムを終了させる命令を、生成して、前記変換対象プログラムに挿入する、関数アドレスチェック命令生成挿入部と、
グローバルオフセットテーブルが書き込み可能であり、変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスであり、共用ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、GOTスロットが参照する値に分岐する分岐命令を、それ以外の場合には、プロシージャリンケージテーブル経由で関数をコールする命令を、生成して、前記変換対象プログラムに挿入する、関数別ジャンプ命令生成挿入部と、
前記変換対象プログラムから前記共有ライブラリ内の関数を呼び出す命令を検出し、検出した前記関数を呼び出す命令を、リターンアドレスを計算して保持した後に、グローバルオフセットテーブルが書き込み可能な場合にはPLTチェック命令生成挿入部が挿入した命令に、グローバルオフセットテーブルが書き込み禁止の場合には関数別ジャンプ命令生成挿入部が挿入した命令に分岐する命令に書き換えるコール命令書き換え部と、
前記変換対象プログラムからリターン命令を検出し、検出した前記リターン命令を前記計算して保持しているアドレスに分岐する命令に書き換えるリターン命令書き換え部と、
を備えることを特徴とする変換装置 - 前記ロードアドレス算出命令生成挿入部は、変換対象プログラムが実行開始直後に、前記変換対象プログラムの開始アドレス及び前記変換対象プログラムにリンクされる共有ライブラリの開始アドレスを算出し、その算出結果を1つの文字列に連結してファイルに出力し、このファイルに記載された文字列を読み込み可能、書き込み不可としてプロセス空間に新たなメモリ領域として保存し、このメモリ領域の開始アドレスを静的変数に格納するプログラムを生成して、前記変換対象プログラムから、このプログラムを呼び出すことができるように前記変換対象プログラムに挿入する、
請求項1に記載の変換装置 - コンピュータに、
攻撃を検知して停止するようにプログラムの変換を実行させる変換プログラムであって、
変換対象プログラムの実行開始直後に、前記変換対象プログラムの開始アドレス及び前記変換対象プログラムにリンクされる共有ライブラリの開始アドレスを算出し、静的変数に格納するプログラムを生成して、前記変換対象プログラムから、このプログラムを呼び出すことができるように前記変換対象プログラムに挿入する、ロードアドレス算出命令生成挿入処理ステップと、
前記GOTスロットを、前記変換対象プログラムに問い合わせ、取得して、保持するGOTスロット取得処理ステップと、
前記変換対象プログラムに存在するグローバルオフセットテーブルが書き込み可能かどうかを判定するGOT書き込み可否判定処理ステップと、
グローバルオフセットテーブルが書き込み可能な場合に、前記PLT解決アドレスを、前記変換対象プログラムに問い合わせ、取得して、保持するPLT解決アドレス取得処理ステップと、
グローバルオフセットテーブルが書き込み可能な場合に、前記関数アドレスを、前記共有ライブラリに問い合わせ、取得して、保持する関数アドレス取得処理ステップと、
グローバルオフセットテーブルが書き込み可能な場合に、前記変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、前記PLT解決アドレスと、前記GOTスロットが参照する値とを対比して、前記変換対象プログラムのヘッダのエントリポイントに記述された値が相対アドレスである場合には、前記変換対象プログラムの開始位置を示す絶対アドレスと前記PLT解決アドレスとを加算して得られる絶対アドレスと、前記変換対象プログラムの開始位置を示す絶対アドレスと前記GOTスロットとを加算した結果であるアドレスが参照する値とを対比して、値が一致していれば、関数別ジャンプ命令生成挿入処理ステップが生成した命令に引き渡す命令を、値が一致していなければ関数アドレスチェック命令生成挿入部に引き渡す命令を、生成して、前記変換対象プログラムに挿入する、PLTチェック命令生成挿入処理ステップと、
グローバルオフセットテーブルが書き込み可能な場合に、前記変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスである場合であって、前記共有ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、前記関数アドレスと、前記GOTスロットが参照する値とを対比して、前記共有ライブラリのヘッダのエントリポイントに記述された値が相対アドレスである場合には、前記共有ライブラリの開始位置を示す絶対アドレスと前記関数アドレスとを加算して得られる前記関数の開始位置を示す絶対アドレスと、前記GOTスロットが参照する値とを対比して、前記変換対象プログラムのヘッダのエントリポイントに記述された値が相対アドレスである場合であって、前記共有ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、前記関数アドレスと、前記変換対象プログラムの開始位置を示す絶対アドレスと前記GOTスロットとを加算した結果であるアドレスが参照する値とを対比して、前記共有ライブラリのヘッダのエントリポイントに記述された値が相対アドレスである場合には、前記共有ライブラリの開始位置を示す絶対アドレスと前記関数アドレスとを加算して得られる前記関数の開始位置を示す絶対アドレスと、前記変換対象プログラムの開始位置を示す絶対アドレスと前記GOTスロットとを加算した結果であるアドレスが参照する値とを対比して、値が一致していれば関数別ジャンプ命令生成挿入処理ステップが生成した命令に引き渡す命令を、値が一致しなければ前記変換対象プログラムを終了させる命令を、生成して、前記変換対象プログラムに挿入する、関数アドレスチェック命令生成挿入処理ステップと、
グローバルオフセットテーブルが書き込み可能であり、変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスであり、共用ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、GOTスロットが参照する値に分岐する分岐命令を、それ以外の場合には、プロシージャリンケージテーブル経由で関数をコールする命令を、生成して、前記変換対象プログラムに挿入する、関数別ジャンプ命令生成挿入ステップと、
前記変換対象プログラムから前記共有ライブラリ内の関数を呼び出す命令を検出し、検出した前記関数を呼び出す命令を、リターンアドレスを計算して保持したした後に、グローバルオフセットテーブルが書き込み可能な場合にはPLTチェック命令生成挿入処理ステップが挿入した命令に、グローバルオフセットテーブルが書き込み禁止の場合には関数別ジャンプ命令生成挿入処理ステップが挿入した命令に分岐させる命令に書き換えるコール命令書き換え処理ステップと、
前記変換対象プログラムからリターン命令を検出し、検出した前記リターン命令を前記計算して保持しているアドレスに分岐する命令に書き換えるリターン命令書き換え処理ステップと、
を実行させる変換プログラム - 攻撃を検知して停止するようにプログラムを変換するプログラム変換方法であって、コンピュータが、
変換対象プログラムの実行開始直後に、前記変換対象プログラムの開始アドレス及び前記変換対象プログラムにリンクされる共有ライブラリの開始アドレスを算出し、静的変数に格納するプログラムを生成して、前記変換対象プログラムから、このプログラムを呼び出すことができるように前記変換対象プログラムに挿入する、ロードアドレス算出命令生成挿入処理ステップと、
前記GOTスロットを、前記変換対象プログラムに問い合わせ、取得して、保持するGOTスロット取得処理ステップと、
前記変換対象プログラムに存在するグローバルオフセットテーブルが書き込み可能かどうかを判定するGOT書き込み可否判定処理ステップと、
グローバルオフセットテーブルが書き込み可能な場合に、前記PLT解決アドレスを、前記変換対象プログラムに問い合わせ、取得して、保持するPLT解決アドレス取得処理ステップと、
グローバルオフセットテーブルが書き込み可能な場合に、前記関数アドレスを、前記共有ライブラリに問い合わせ、取得して、保持する関数アドレス取得処理ステップと、
グローバルオフセットテーブルが書き込み可能な場合に、前記変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、前記PLT解決アドレスと、前記GOTスロットが参照する値とを対比して、前記変換対象プログラムのヘッダのエントリポイントに記述された値が相対アドレスである場合には、前記変換対象プログラムの開始位置を示す絶対アドレスと前記PLT解決アドレスとを加算して得られる絶対アドレスと、前記変換対象プログラムの開始位置を示す絶対アドレスと前記GOTスロットとを加算した結果であるアドレスが参照する値とを対比して、値が一致していれば関数別ジャンプ命令生成挿入手段で生成した命令に引き渡す命令を、値が一致していなければ関数アドレスチェック命令生成挿入部に引き渡す命令を、生成して、前記変換対象プログラムに挿入する、PLTチェック命令生成挿入処理ステップと、
グローバルオフセットテーブルが書き込み可能な場合に、前記変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスである場合であって、前記共有ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、前記関数アドレスと、前記GOTスロットが参照する値とを対比して、前記共有ライブラリのヘッダのエントリポイントに記述された値が相対アドレスである場合には、前記共有ライブラリの開始位置を示す絶対アドレスと前記関数アドレスとを加算して得られる前記関数の開始位置を示す絶対アドレスと、前記GOTスロットが参照する値とを対比して、前記変換対象プログラムのヘッダのエントリポイントに記述された値が相対アドレスである場合であって、前記共有ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、前記関数アドレスと、前記変換対象プログラムの開始位置を示す絶対アドレスと前記GOTスロットとを加算した結果であるアドレスが参照する値とを対比して、前記共有ライブラリのヘッダのエントリポイントに記述された値が相対アドレスである場合には、前記共有ライブラリの開始位置を示す絶対アドレスと前記関数アドレスとを加算して得られる前記関数の開始位置を示す絶対アドレスと、前記変換対象プログラムの開始位置を示す絶対アドレスと前記GOTスロットとを加算した結果であるアドレスが参照する値とを対比して、値が一致していれば関数別ジャンプ命令生成挿入手段で生成した命令に引き渡す命令を、値が一致しなければ前記変換対象プログラムを終了させる命令を、生成して、前記変換対象プログラムに挿入する、関数アドレスチェック命令生成挿入処理ステップと、
グローバルオフセットテーブルが書き込み可能であり、変換対象プログラムのヘッダのエントリポイントに記述された値が絶対アドレスであり、共用ライブラリのヘッダのエントリポイントに記述された値が絶対アドレスである場合には、GOTスロットが参照する値に分岐する分岐命令を、それ以外の場合には、プロシージャリンケージテーブル経由で関数をコールする命令を、生成して、前記変換対象プログラムに挿入する、関数別ジャンプ命令生成挿入処理ステップと、
前記変換対象プログラムから前記共有ライブラリ内の関数を呼び出す命令を検出し、検出した前記関数を呼び出す命令を、リターンアドレスを計算して保持した後に、グローバルオフセットテーブルが書き込み可能な場合にはPLTチェック命令生成挿入手段が挿入した命令に、グローバルオフセットテーブルが書き込み禁止の場合には関数別ジャンプ命令生成挿入処理ステップが挿入した命令に分岐させる命令に書き換えるコール命令書き換え処理ステップと、
前記変換対象プログラムからリターン命令を検出し、検出した前記リターン命令を前記計算して保持しているアドレスに分岐する命令に書き換えるリターン命令書き換え処理ステップと、
を実行するプログラム変換方法
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018000920A JP6338796B1 (ja) | 2018-01-09 | 2018-01-09 | 変換装置、変換プログラム、プログラム変換方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018000920A JP6338796B1 (ja) | 2018-01-09 | 2018-01-09 | 変換装置、変換プログラム、プログラム変換方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6338796B1 true JP6338796B1 (ja) | 2018-06-06 |
JP2019121203A JP2019121203A (ja) | 2019-07-22 |
Family
ID=62487363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018000920A Active JP6338796B1 (ja) | 2018-01-09 | 2018-01-09 | 変換装置、変換プログラム、プログラム変換方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6338796B1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6460433B1 (ja) * | 2018-08-15 | 2019-01-30 | 株式会社Attc | 変換装置、変換プログラム、プログラム変換方法 |
KR20210062438A (ko) * | 2019-11-21 | 2021-05-31 | 국방과학연구소 | 컴퓨터 장치 및 컴퓨터 장치의 바이너리 프로그램 실행 속도 측정방법 |
US11709940B2 (en) | 2019-03-18 | 2023-07-25 | Nec Corporation | Firmware rewriting apparatus, firmware rewriting method, and non-transitory computer readable medium storing program |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102351663B1 (ko) * | 2020-02-26 | 2022-01-17 | 세종대학교산학협력단 | Cfi 기반 got 변조 공격 방지 장치 및 그 방법 |
JP6827244B1 (ja) * | 2020-09-15 | 2021-02-10 | 株式会社Attc | 監査装置、監査方法、監査プログラムおよび監査システム |
KR102713727B1 (ko) * | 2021-12-21 | 2024-10-08 | 한국전자통신연구원 | 간접 함수 호출 보호 방법 및 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011008778A (ja) * | 2009-05-27 | 2011-01-13 | Ntt Docomo Inc | プログラム実行フローの修正を防止する方法及び装置 |
US20150356294A1 (en) * | 2014-06-09 | 2015-12-10 | Lehigh University | Methods for enforcing control flow of a computer program |
-
2018
- 2018-01-09 JP JP2018000920A patent/JP6338796B1/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011008778A (ja) * | 2009-05-27 | 2011-01-13 | Ntt Docomo Inc | プログラム実行フローの修正を防止する方法及び装置 |
US20150356294A1 (en) * | 2014-06-09 | 2015-12-10 | Lehigh University | Methods for enforcing control flow of a computer program |
Non-Patent Citations (1)
Title |
---|
"Security Trend [寄稿]マイクロソフトが脆弱性攻撃の対抗技術", 日経コミュニケーション 2015年3月号, vol. 第614号, JPN6018010276, 1 March 2015 (2015-03-01), JP, pages p.40-p.41 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6460433B1 (ja) * | 2018-08-15 | 2019-01-30 | 株式会社Attc | 変換装置、変換プログラム、プログラム変換方法 |
JP2020027512A (ja) * | 2018-08-15 | 2020-02-20 | 株式会社Attc | 変換装置、変換プログラム、プログラム変換方法 |
US11709940B2 (en) | 2019-03-18 | 2023-07-25 | Nec Corporation | Firmware rewriting apparatus, firmware rewriting method, and non-transitory computer readable medium storing program |
KR20210062438A (ko) * | 2019-11-21 | 2021-05-31 | 국방과학연구소 | 컴퓨터 장치 및 컴퓨터 장치의 바이너리 프로그램 실행 속도 측정방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2019121203A (ja) | 2019-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6338796B1 (ja) | 変換装置、変換プログラム、プログラム変換方法 | |
JP6189039B2 (ja) | セキュアドメインおよび低セキュアドメインを使用するデータ処理装置および方法 | |
KR102192880B1 (ko) | 소프트웨어 재패키징 방지 방법 및 장치 | |
KR102160916B1 (ko) | 안전한 도메인과 덜 안전한 도메인을 이용한 데이터 처리 장치 및 방법 | |
US9336125B2 (en) | Systems and methods for hardware-assisted type checking | |
JP2019516181A (ja) | ケイパビリティ・メタデータに対する操作を実施するための装置及び方法 | |
US9489315B2 (en) | Method of executing, by a microprocessor, a polymorphic binary code of a predetermined function | |
US11176060B2 (en) | Dynamic memory protection | |
US7269828B2 (en) | Method for safely instrumenting large binary code | |
CN111222103B (zh) | 基于向量化异常处理的软件保护方法 | |
JP4681868B2 (ja) | 情報処理装置及びその制御方法、コンピュータプログラム及び記憶媒体 | |
JP5777843B1 (ja) | プロセッサ、処理装置、プログラム作成方法 | |
US11113392B2 (en) | Executable binary code insertion | |
JP6460433B1 (ja) | 変換装置、変換プログラム、プログラム変換方法 | |
CN107239415B (zh) | 一种执行临界区操作的方法及装置 | |
US20060168567A1 (en) | Preserving platform independence with native accelerators for performance critical program objects | |
JP2005165919A (ja) | プログラム実行方法、プログラム作成方法、情報処理装置及びプログラム | |
US9229698B2 (en) | Method and apparatus for compiler processing for a function marked with multiple execution spaces | |
JP2009020695A (ja) | 情報処理装置及びシステム | |
US11055202B1 (en) | Compilation scheme for tagged global variables | |
KR102658588B1 (ko) | 처리회로 상에서 실행할 프로그램을 디버깅할 때 메타데이터를 액세스하는 방법 | |
US20230325476A1 (en) | Obfuscation device, obfuscation method, and obfuscation program | |
JP2011164972A (ja) | プログラムローダ、データ処理装置、プログラムロード方法及びロードプログラム | |
JP2021103354A (ja) | プログラムの試験方法 | |
US20230418950A1 (en) | Methods, Devices, and Systems for Control Flow Integrity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180111 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20180111 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20180314 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180323 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180327 |
|
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: 20180507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180508 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6338796 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |