JP6941897B2 - Mcsemaに基づくRemillスタック汚染分析方法およびアプライアンス - Google Patents
Mcsemaに基づくRemillスタック汚染分析方法およびアプライアンス Download PDFInfo
- Publication number
- JP6941897B2 JP6941897B2 JP2020153665A JP2020153665A JP6941897B2 JP 6941897 B2 JP6941897 B2 JP 6941897B2 JP 2020153665 A JP2020153665 A JP 2020153665A JP 2020153665 A JP2020153665 A JP 2020153665A JP 6941897 B2 JP6941897 B2 JP 6941897B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stack
- remill
- pop
- mcsema
- 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
- 238000004458 analytical method Methods 0.000 title claims description 53
- 238000000034 method Methods 0.000 claims description 51
- 230000008569 process Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 16
- 230000000694 effects Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000011109 contamination Methods 0.000 claims description 4
- 101100042271 Mus musculus Sema3b gene Proteins 0.000 claims 1
- 230000006870 function Effects 0.000 description 16
- 238000012937 correction Methods 0.000 description 6
- 230000004224 protection Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001323 posttranslational effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012732 spatial analysis Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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
- G06F21/54—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 by adding security routines or objects to programs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
randomize_va_spaceを導入することにより、Low integrityのプログラムがモジュールベースアドレス、カーネルオブジェクトアドレスなどのキー情報を漏洩するおそれがある関数を呼び出すことを阻止する。しかしながら、integrityがmedium以下のプログラムに対しては、Linuxシステムでの呼び出しに失敗する可能性がある。研究から明らかなように、ASLRはコードセグメントやデータセグメントのランダム化を担当しておらず、該作業はPIEが担当しているが、ASLRをオンにした後にのみPIEが有効であることが分かった。理論的には、32ビットのシステムがASLRに提供できるエントロピーは64ビットシステムよりも少ない。しかしながら、メモリレイアウトに関連する要素のようなエントロピーの数にも影響を与える他の制約条件もある。一例を挙げると、スタックがメモリの高位アドレスからヒープ存在の低位アドレスへ継続的に増えることを可能にするために、スタックのアドレス最上位ビットはランダム化されないことが多い。あるシーンでは、32ビットシステムのmmap()のエントロピーを単に16ビットに制限し、PAX 外付けコネクターは、エントロピーを24ビットに向上させるために使用することができる。
マシンコードおよびその命令レベルをブースティングさせて高位命令データ構造を得ることと、 復号から得られたレジスタ名をremill基本ブロックの変数名に対応させるために、マシンコードデコーダを用いて前記高位命令データ構造を復号することと、
予め設定されたポップ関連命令のSEM解釈を修正することと、
修正されたポップ関連命令の内容を再コンパイルして、スタック汚染プロセスを完了することとを含むMcsemaに基づくRemillスタック汚染分析方法を提供する。
プログラム内容に対してビット数識別を行い、その認識結果に応じて前記ポップ関連命令に対して対応するSEM解釈修正を行い、ここで、前記プログラム内容のビット数は32ビットおよび64ビットを含んだ。
マシンコードおよびその命令レベルをブースティングさせて高位命令データ構造を得る用マシンコードブースティングモジュールと、
復号から得られたレジスタ名をremill基本ブロックの変数名に対応させるために、マシンコードデコーダを用いて前記高位命令データ構造を復号する用命令復号モジュールと、
予め設定されたポップ関連命令のSEM解釈を修正する用命令修正モジュールと、
修正されたポップ関連命令の内容を再コンパイルして、スタック汚染プロセスを完了するスタック汚染モジュールとを含むMcsemaに基づくRemillスタック汚染分析アプライアンスをさらに提供する。
プロセッサと、メモリと、前記メモリに格納され、前記プロセッサによって実行されるように構成されたコンピュータプログラムとを備え、前記メモリは、前記プロセッサに結合され、前記プロセッサが前記コンピュータプログラムを実行する際に、いずれか一項に記載のMcsemaに基づくRemillスタック汚染分析方法を実現するMcsemaに基づくRemillスタック汚染分析端末デバイスをさらに提供する。
本発明は、マシンコードおよびその命令レベルをブースティングさせて高位命令データ構造を得、復号から得られたレジスタ名をremill基本ブロックの変数名に対応させるために、マシンコードデコーダを用いて前記高位命令データ構造を復号し、予め設定されたポップ関連命令のSEM解釈を修正し、修正されたポップ関連命令の内容を再コンパイルして、スタック汚染プロセスを完了することを含むMcsemaに基づくRemillスタック汚染分析方法、アプライアンス、デバイスおよび可読記憶媒体を提供する。本発明は、ポップ関連命令のSEM解釈をブースティング過程にて修正することにより、従来技術におけるバイナリプログラムの複数のコールスタックに関する制約条件を突破し、さらに、所要スタック空間オブジェクトに対して知能化、ロスレス化のスタック汚染分析を実現することができる。
S1、マシンコードおよびその命令レベルをブースティングさせて高位命令データ構造を得るステップ
本発明の実施形態では、ステップS1は、マシンコードおよびその命令レベルをブースティングさせて高位命令データ構造を得たことである。なお、“スタック汚染”の前提条件は、ROP利用緩和策が宣言されたことであり、ブースティングされたbitcode(すなわち、モックスタック中の中間コード)がモックされたリターンアドレスを無視し、自体の実行スタックに格納されているリターンアドレスを“信頼”するためである。また、ブースティングされbitcodeもモックスタック上のアロケーション変数をモックした。図3に示すように、このブースティング過程における最初のステップは、最初に原始命令バイトを利用し、それらをより高位レベルの命令データ構造に変換するという命令のバイトを復号することである。このデータ構造はマシンコード命令の論理オペランドを表示する。これらのオペランドは、語義関数に伝えたパラメータと1対1で対応する(いずれのパラメータも無視しない)。図4は、復号および分析ステップの流れを示す模式図である。
なお、SEM解釈とはMcsemaにおいて命令に対応する語義関数テンプレートである。
図5を参照し、一例として“MOV_GPRv_IMMv_32”のように、Mov語義関数のSEM解釈定義であり、汎用レジスタとイミディエートオペランドとの間に何らかの動作関係が発生したことをこのフォーマットに基づいて記録され、ここで、write_opは、32ビットレジスタEAXを書き込むことような書き込み箇所であり、read_opは、イミディエートオペランド0x1を読み出すことのような読み出し箇所である。
なお、本発明の実施形態では、図5に示すような基本ブロックでは、デコーダはこのeaxがレジスタであることを理解する。驚くべきことに、Remillのブースタはeaxに対してあまり概念がない(すなわち、プログラマが“伝える”ブースタを定義する必要がある)。RemillライブラリのMcsema-liftツールは、任意のマシンコードをLLVM bitcode(bitcodeはLLVMによって導入された中間コード(Intermediate Representation、IRと略す)に変換することを目的とし、ソースコードがバイナリマシンコードにコンパイルされる過程における中間表現形態であり、ソースコードでもマシンコードでもない。コード組織構造から見ると、マシンコードに近いが、関数や命令レベルでは高水準言語の特性が多く用いられている。そのため、ある“汎用言語”が必要であり、すなわち、アーキテクチャ中立のLLVM側である--これは“特定のアーキテクチャの語義関数”と“機械命令デコーダ”の両方が協調変換の過程に利用できるものである。そのような汎用言語は__remill_basic_block(remill基本ブロック)関数中の変数名である。命令デコーダは、復号されたレジスタ名が__remill_basic_blockに定義された変数(すなわち、rdxが&RDXに対応する)に対応することを保証する。復号された命令データ構造からLLVMbitcodeへの変換過程において、このような対応関係が常に存在すると仮定しているため、この段階での機器命令の復号を開始することができる。
さらに、ステップS3は具体的には、
プログラム内容に対してビット数識別を行い、その認識結果に応じて前記ポップ関連命令に対して対応するSEM解釈修正を行い、ここで、前記プログラム内容のビット数は32ビットおよび64ビットを含んだ。
具体的には、
Pop命令について:pop ebp命令の方式、popの命令本来の操作は、現在のスタック・トップの値を目的レジスタに与え、その中でのebpレジスタに書き込み動作の位置を解析し、その後にカスタマイズされた翻訳内容を挿入することができる。
add命令について:add ebp,0xN命令の方式、addの命令は、レジスタの値をイミディエートオペランドに加算し、その後、この和を元のレジスタに入れ、ebpレジスタへの書き込み動作が存在し、その後にカスタマイズされた解釈内容を挿入することができる。
mov命令について:mov esp,ebp命令の方式、mov命令は、右オペランドレジスタの内容をオペランドレジスタに移行し、espレジスタへの書き込み動作過程が存在するが、ここでは、mov命令にカスタマイズされた翻訳を追加するだけではなく、操作レジスタespに対して判断を行う必要がある。その理由は、バイナリプログラム中に幾千幾万個のmov命令があり、mov全体に対してカスタマイズされた解釈内容を追加することは明らかに好ましくないためである。ここで、本手法では、レジスタの前後の値を選別する方法を採用し、ブースティングされる前に1回の値をとり、ブースティング操作終了後に得られた値がこの前の値と異なる場合、espレジスタの内容が変更されていることを示し、esp操作の発生が証明できる。
leave命令について:leave;ret命令の方式、leave命令の効果はmov esp,ebp;pop ebpに等しいため、この原理は上記のmovとpopと同様にレジスタへの書き込み操作命令を行った後にカスタマイズされた解釈内容を加える。
return命令について:return命令の方式、return命令の効果はpop eip;jump、に等しいため、この原理はpopと同様にeipに対して書き込み操作を行った後にカスタマイズされた解釈内容を加える。
なお、上記の命令分析方法は、いずれも32ビットと64ビットの違いを判断する必要がある。32ビットプログラムは4バイト記憶、64ビットは8バイト記憶である。本手法は、メモリ容量表示関数sizeofを用いて1つの設定されたフラグビットを測定することで行い、フルバイト分析が必要な場合には、ビット数の差を判別し、かつ、0xdeadbeefまたは0xdeadbeefdeadbeefを選択する必要がある。Sizeofオペレータはそのオペランドのメモリサイズをバイト形式で与えていることが理解できる。オペランドは、1つの式または括弧内に囲まれたタイプ名であってもよい。オペランドのメモリサイズはオペランドのタイプによって決定されるため、あるフラグビットのメモリサイズを検出することで、どのタイプのプログラムであるかを判断する。Sizeofを利用した理由は、その検出の簡便さ、1つのメモリステップサイズの大きさでプログラムのタイプを識別することができ、複雑なアルゴリズムまたは内容判断が不要になる。
本発明の実施形態では、Mcsema-liftツールをSEMにおいて、異なる命令特性に応じて追加されたスタック空間に0xdeadbeef充填に関するコンテンツを“スタック汚染効果を有する”ツールに再コンパイルさせる。ここで、SEMでは異なる命令特性に応じて追加されたスタック空間に0xdeadbeef充填に関するコンテンツは、特定のレジスタ認識、ステップサイズを指定する循環汚染などがあることを含んだ。
本発明の実施形態では、1つの好ましい実施態様として、関数呼び出しの複雑さの上昇および再帰的関数の頻繁な呼び出すほど、パラメータまたはデータの規模が段階的に上昇し、この場合では、すでに数行のコードで解決できる問題ではなくなる。スタックはプログラムのビット数に応じてステップサイズを決定するメモリデータ構造であるため、循環的方法によりこの問題を解決することを選択した。
1.Mcsema-liftツールのブースティングの過程におけるモックスタック(実数スタックの操作と一致し、最後にデータを実数スタックに転送する)の語義解釈定義の制御可能な性質を修正することで“バッファオーバーフローホールの利用”、“バッファ入力可能長さ固定”、“プログラムに相互入力関数無し可能”などの制限条件を達成した。
2.解析チェーンを丹念に構築する必要があることで知られたROP技術の操作の難しさは、スタック空間を解析するすべての手法のうちで最も難しく、また、オーバフロー長さが不十分な場合には、スタック遷移などの操作も考慮しなければならない。スタック空間分析の過程を簡略化、洗練化するために、“スタック汚染分析”技術は、命令レベル層からスタック空間に関するオペランド情報を取得し、スタック空間サイズの知能化検出を実現する手段である。
3.既存の操作命令の正常操作語義解釈を修正せず、研究所要(例えば、説明を簡単にするために、本出願では、パディングバイナリ特殊定義バイト0xdeadbeefを使用する)の語義解釈内容を増加させることで、制御変数法を用いてプログラム制御フローおよびデータストリームを基本的に不変に維持することができるロスレス化分析手段である。
32ビットおよび64ビットバイナリプログラムに対する正確なポップ時刻分析効果を実現することができる。本発明の方法によれば、Linuxシステムにおける32ビットおよび64ビットプログラムの汎用的なスタック汚染分析方法を実現することができ、リターンアドレスの正常な作用に影響を与えることなく、かつ、一定の独創性を有する。また、プログラムのビット数を自動的に識別することで、異なる充填汚染方式を分析することができるとともに、精度が100%に達することができる。
1.命令レベルにてやりたい具体的なカスタマイズされた翻訳操作を任意に書き込むことができる。Remillライブラリに基づくマシンコードおよびその命令レベル翻訳のブースティング段階におけるカスタム書き換え技術後置を後置ということは、ユーザの視点から見ると、相対的にリーズナブルで、ハードルが低く、C言語で書かれ、レジスタの判断に結合するおよびレジスタの内容を格納すると、いくつかの通常の汚染分析操作を行うことができる。
2.命令レベルの挿入および特殊なHook効果を実現することができる。バイナリプログラムコード自体の論理を変更することなく、一連のスタックへの汚染分析操作を完了し、かつ、汚染分析だけでなく、スタイルが多く指令レベルのHookと挿入を完成することができ、実現コストが低く、効率が高く、後続の拡張性が高いことを説明した。
3.循環分析、長さ制御可能、内容制御可能を実現することができ、スタックセキュリティホールの分析に良好な研究環境を提供した。
4.規定レジスタを識別することで具体的な操作を実現し、汚染分析を盲目的に行わず、精度が100%に近くなった。
なお、本発明は、プログラムがASLRおよびPIE保護をオンにした上で、スタック汚染の研究分析方法を提供し、他の方法は、この点であまり及ばない。潜在意識では、この2つの保護がスタックセキュリティホールの大部分を実質的に緩和していると感じているからである。さらに、マシンコードおよび命令レベルのブースティング翻訳後部分段階において、ユーザがカスタマイズしてスタック空間のパディング内容を書き換えることができ、アドレスランダム化を迂回するというROP技術よりも多くの時間を節約することができる。同時に、本発明を実施することは、プログラムコード自体の論理を変更することなく、ポップする際に鍵役割を果たす命令SEM解釈層から着手し、コンピュータに正常な命令として認識させる。
復号から得られたレジスタ名をremill基本ブロックの変数名に対応させるために、マシンコードデコーダを用いて前記高位命令データ構造を復号する命令復号モジュール2と、 予め設定されたポップ関連命令のSEM解釈を修正する命令修正モジュール3と、
SEM解釈が修正されたポップ関連命令の内容を再コンパイルして、スタック汚染分析プロセスを完了する再コンパイルモジュール4とを含むMcsemaに基づくRemillスタック汚染分析アプライアンスをさらに提供する。
前記メモリは、主にプログラム記憶領域およびデータ記憶領域を含むことができ、ここで、プログラム記憶領域は、オペレーティングシステム、少なくとも1つの機能所要アプリケーションなどを記憶することができる。データ記憶領域は、携帯電話の使用に基づいて作成されたデータなどを記憶することができる。さらに、メモリは、高速ランダムアクセスメモリを含むことができ、ハードディスク、メモリ、 外付けコネクターハードディスク、スマート メディア カード(Smart Media Card、SMC)、セキュリティデジタル(Secure Digital)カード、フラッシュカード(Flash Card)、少なくとも1つのディスク記憶装置、フラッシュメモリデバイスなどの不揮発性メモリ、または他の揮発性固体記憶装置を含むことができる。
前記コンピュータ可読媒体は、コンピュータプログラムコードを携帯できる任意のエンティティまたはデバイス、記録媒体、USBメモリ、ポータブルハードディスク、磁気ディスク、光ディスク、コンピュータメモリ、読み取り専用メモリ(ROM、Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、電気搬送信号、電気通信信号およびソフトウェア配信媒体などを含むことができる。前記コンピュータ可読媒体に含まれる内容は、例えば、いくつかの司法管轄区域において、立法および特許実施に基づいて、コンピュータ可読媒体は、電気搬送信号および電気通信信号を含まないように、司法管轄区域内の立法および特許実践の要件に応じて適切に増減することができることに留意されたい。
Claims (6)
- Mcsemaに基づくRemillスタック汚染分析方法であって、
コンピュータにて、
マシンコードおよびその命令レベルをブースティングさせて高位命令データ構造を得ることと、
復号から得られたレジスタ名をremill基本ブロックの変数名に対応させるために、マシンコードデコーダを用いて前記高位命令データ構造を復号することと、
予め設定されたポップ関連命令のSEM解釈を修正することと、
SEM解釈が修正されたポップ関連命令の内容を、スタック汚染効果を有するツールに再コンパイルして、スタック汚染分析プロセスを完了することとを含み、
前記マシンコードおよびその命令レベルをブースティングさせて高位命令データ構造を得ることでは、原始命令バイトを利用し、それらをより高位レベルの命令データ構造に変換するという命令のバイトを復号し、
前記予め設定されたポップ関連命令のSEM解釈を修正することは、具体的に
プログラム内容に対してビット数識別を行い、その識別結果に応じて前記ポップ関連命令に対して対応するSEM解釈修正を行い、ここで、前記プログラム内容のビット数は32ビットおよび64ビットを含むことを特徴とするMcsemaに基づくRemillスタック汚染分析方法。 - 前記予め設定されたポップ関連命令は、pop命令、add命令、mov命令、leave命令、return命令のうちの1つまたは複数を含むことを特徴とする請求項1に記載のMcsemaに基づくRemillスタック汚染分析方法。
- Mcsemaに基づくRemillスタック汚染分析アプライアンスであって、
マシンコードおよびその命令レベルをブースティングさせて高位命令データ構造を得るマシンコードブースティングモジュールと、
復号から得られたレジスタ名をremill基本ブロックの変数名に対応させるために、マシンコードデコーダを用いて前記高位命令データ構造を復号する命令復号モジュールと、
予め設定されたポップ関連命令のSEM解釈を修正する命令修正モジュールと、
SEM解釈が修正されたポップ関連命令の内容をスタック汚染効果を有するツールに再コンパイルして、スタック汚染分析プロセスを完了する再コンパイルモジュールとを含み、 前記マシンコードブースティングモジュールは、原始命令バイトを利用し、それらをより高位レベルの命令データ構造に変換するという命令のバイトを復号し、
前記命令修正モジュールは、具体的にプログラム内容に対してビット数識別用のものであり、その識別結果に応じて前記ポップ関連命令に対して対応するSEM解釈修正を行い、ここで、前記プログラム内容のビット数は32ビットおよび64ビットを含むことを特徴とするMcsemaに基づくRemillスタック汚染分析アプライアンス。 - 前記予め設定されたポップ関連命令はpop命令、add命令、mov命令、leave命令、return命令のうちの1つまたは複数を含むことを特徴とする請求項3に記載のMcsemaに基づくRemillスタック汚染分析アプライアンス。
- Mcsemaに基づくRemillスタック汚染分析端末デバイスであって、
プロセッサと、メモリと、前記メモリに格納され、前記プロセッサによって実行されるように構成されたコンピュータプログラムとを備え、前記メモリは、前記プロセッサに結合され、前記プロセッサが前記コンピュータプログラムを実行する際に、請求項1、2のいずれか一項に記載のMcsemaに基づくRemillスタック汚染分析方法を実現することを特徴とするMcsemaに基づくRemillスタック汚染分析端末デバイス。 - コンピュータ可読記憶媒体であって、
コンピュータプログラムが記憶されており、
前記コンピュータプログラムは、その実行時に、前記コンピュータ可読記憶媒体が存在するアプライアンスを制御して、請求項1、2のいずれか一項に記載のMcsemaに基づくRemillスタック汚染分析方法を実行することを特徴とするコンピュータ可読記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911216792.5 | 2019-11-29 | ||
CN201911216792.5A CN110909347B (zh) | 2019-11-29 | 2019-11-29 | 一种基于Mcsema的Remill库栈污染分析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021086614A JP2021086614A (ja) | 2021-06-03 |
JP6941897B2 true JP6941897B2 (ja) | 2021-09-29 |
Family
ID=69821387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020153665A Active JP6941897B2 (ja) | 2019-11-29 | 2020-09-14 | Mcsemaに基づくRemillスタック汚染分析方法およびアプライアンス |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6941897B2 (ja) |
CN (1) | CN110909347B (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199116B (zh) * | 2020-10-16 | 2023-08-11 | 常熟理工学院 | 操作数栈寄存器识别方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7251594B2 (en) * | 2001-12-21 | 2007-07-31 | Hitachi, Ltd. | Execution time modification of instruction emulation parameters |
US7177985B1 (en) * | 2003-05-30 | 2007-02-13 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
CN103077011B (zh) * | 2012-10-09 | 2015-12-09 | 华为技术有限公司 | 一种在JavaScript脚本语言中预生成机器码指令的方法和装置 |
US10719321B2 (en) * | 2015-09-19 | 2020-07-21 | Microsoft Technology Licensing, Llc | Prefetching instruction blocks |
CN109597598A (zh) * | 2018-10-26 | 2019-04-09 | 珠海中电数码科技有限公司 | 一种用于智能全面屏黑板的多屏指令处理方法及其系统 |
-
2019
- 2019-11-29 CN CN201911216792.5A patent/CN110909347B/zh active Active
-
2020
- 2020-09-14 JP JP2020153665A patent/JP6941897B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2021086614A (ja) | 2021-06-03 |
CN110909347B (zh) | 2022-02-08 |
CN110909347A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11061833B2 (en) | Apparatus and method for handling page protection faults in a computing system | |
EP3761210B1 (en) | Cryptographic computing using encrypted base addresses and used in multi-tenant environments | |
US11416624B2 (en) | Cryptographic computing using encrypted base addresses and used in multi-tenant environments | |
US8479174B2 (en) | Method, computer program and computer for analyzing an executable computer file | |
Kornau | Return oriented programming for the ARM architecture | |
US8010772B2 (en) | Protected function calling | |
CN107077337B (zh) | 用于执行根据两个指令集架构编译的应用编码的系统和方法 | |
US9805188B2 (en) | Control flow integrity system and method | |
US11669625B2 (en) | Data type based cryptographic computing | |
US20220382885A1 (en) | Cryptographic computing using encrypted base addresses and used in multi-tenant environments | |
US20220374415A1 (en) | Systems and methods for updating metadata | |
US20220092173A1 (en) | Systems and methods for metadata classification | |
US7500245B2 (en) | Changing code execution path using kernel mode redirection | |
EP4020272A1 (en) | Fine-grained stack protection using cryptographic computing | |
US10795679B2 (en) | Memory access instructions that include permission values for additional protection | |
JP6941897B2 (ja) | Mcsemaに基づくRemillスタック汚染分析方法およびアプライアンス | |
JP6133409B2 (ja) | プログラムのリバースエンジニアリング及び/又は改竄に対する保護のための方法、システム及び装置 | |
WO2019223094A1 (zh) | 一种基于区块链的文件保护方法及终端设备 | |
WO2017112315A1 (en) | Non-tracked control transfers within control transfer enforcement | |
Ferguson | Reverse engineering code with IDA Pro | |
US20130080744A1 (en) | Abstracting computational instructions to improve performance | |
US10515217B2 (en) | Technologies for mitigating call-oriented programming using an inter-module control flow policy | |
US20090106540A1 (en) | Apparatus and method for remanipulating instructions | |
Staursky | Lambda Calculus for Binary Security and Analysis | |
US20060208928A1 (en) | Encoding scheme to resist code injection attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200914 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200914 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200930 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20201111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210106 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20210401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210512 |
|
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: 20210817 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210831 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6941897 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |