JP7042270B2 - セルフデバッギング - Google Patents
セルフデバッギング Download PDFInfo
- Publication number
- JP7042270B2 JP7042270B2 JP2019527551A JP2019527551A JP7042270B2 JP 7042270 B2 JP7042270 B2 JP 7042270B2 JP 2019527551 A JP2019527551 A JP 2019527551A JP 2019527551 A JP2019527551 A JP 2019527551A JP 7042270 B2 JP7042270 B2 JP 7042270B2
- Authority
- JP
- Japan
- Prior art keywords
- debugger
- code
- computer program
- software
- software process
- 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
- 230000008569 process Effects 0.000 claims description 125
- 238000000034 method Methods 0.000 claims description 123
- 230000006870 function Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 11
- 230000004913 activation Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 1
- 239000012634 fragment Substances 0.000 description 43
- 230000004224 protection Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001391944 Commicarpus scandens Species 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Description
図1は、本開示によるセルフデバッギング方式の基本的概念を示す。この実施形態は、Linux(登録商標)(及びアンドロイド(登録商標)のような派生品)を目標とし、原理は、他の環境、例えばWindows(登録商標)及びOS Xに適用することもできる。
図3は、1つの可能な概念上のツールフローを示す。
デバッガに移行されるコードフラグメントを決定するために、多くのオプションが存在する。図に示す1つ、そして又我々が我々の実施態様で用いるものは、プラグマ、コメント、又はデバッガプロセスに移行されるコード領域の始め及び終了をマークするその他の形態の注釈によって、ステップs31でソースコードに注釈をつけることである。単純なグレップ(grep)は、注釈及びそれらの行番号を抽出して、ステップs32でその情報を注釈ファイルに格納するのに十分である。
開示されたセルフデバッギング方法を展開するために、いかなる「標準」コンパイラも、ステップs33で用いることができる。技術は、いかなる規制もコンパイラによって生成するコードに課さない。実験評価において、GCC及びLLVMの両方が使われ、そこにおいてコード生成に適応するか又は調整する必要がなかった。
リンクタイムリライタは、ステップs35で保護されたアプリケーションを生成するために2つのオプションを有する。第1のオプションは、2つのバイナリ、即ち、アプリケーション/デバッギのための1つ、及びデバッガのための1つを生成することである。セキュリティの観点から、これは好ましいかもしれない。その理由は、アプリケーション意味論及びその実施が、次に、複数のバイナリを通じて分散されて、それは、攻撃者が保護を取り消す、即ち、デバッギを最初のアプリケーションに戻すことをおそらく更により難しくするからである。しかしながら、デバッガの開始が、次に、第2のバイナリをロードすることも必要とするので、このオプションは、追加の実行時オーバーヘッドを導入する。
初期化及び終了処理
追加の初期化ルーチンを、保護されたバイナリに加えることができる。このルーチンは、バイナリがロードされるとすぐに呼び出される(それが高い優先権を割り当てたので)。その後に、バイナリのinitセクションにリストした全ての他のルーチンは実行される。
デバッガをアタッチすることは、特に保護された共有ライブラリの場合、簡単ではない。ライブラリがロードされるときに、アプリケーションは、いくつかのスレッドから成るかもしれない。それらのうちの1つだけは、dlopenへのその呼び出しの間にデバッギ初期化ルーチンを実行する。1つのフォークだけが実行されるので、これは良好であるが、それは、1つのスレッドだけが前節に記載の無限ループに入るという不利な面をもたらす。デバッギプロセスの他のスレッドは、動作し続けて、デバッギ初期化ルーチン又はデバッガ初期化ルーチンの実行中のいかなる時点でも新規なスレッドを生成するかもしれない。適当な保護を確実にするために、デバッガは、その初期化の一部としてデバッギプロセスのあらゆるスレッドにアタッチしなければならない。デバッガがその間にデバッギにおいて生成されるいかなるスレッドも見逃さないことを確実にするために、我々は、プロセスのスレッドごとにエントリを含む、/proc/[pid]/タスクディレクトリを使用する。デバッガプロセスは、このディレクトリのエントリを繰り返すことによって、そして新しいエントリが見つからないまで繰り返し続けることによって、全てのスレッドにアタッチする。PTRACE_ATTACH要求によって生じるスレッドにアタッチすると、スレッドも止められる(そしてデバッガは、OSによってこのイベントを通知される)。そして、それがその時以来新規なスレッドをもはや生じることができないことを意味する。それで、有限数のスレッドを生じるいかなるプログラムに対しても、全てのスレッドにアタッチする反復手順は、終了すると保証される。一旦全てのスレッドがアタッチされると、デバッギの無限ループは終わり、そしてその止められたスレッドは続くことができる。追加スレッドが、プログラム実行中に後で生成されると、デバッガは、OSによってそれらに自動的にアタッチされて、全ての必要なブックキーピングが実行されることができるように、それは信号を得る。
制御フローを移行されたコードフラグメントに変形することは、いくつかの部分から成る。我々は、デバッガに通知するために例外を提起することを検討し、IDの転送は、デバッガにどんなフラグメントが実行されることになっているか、及びコードフラグメントごとに加えられるカスタマイズされたプロエピローグとエピローグを通知する。
デバッガの実際の通知は、例外を提起させるいかなる命令によっても起こることがあり得る。我々の実施態様において、我々は、簡単にするためにソフトウェアブレークポイント(即ち、ARMv7に関するBKPT命令)を使用する。他のより顕著でない例外、例えば、違法であるか未確定の命令によって生じるそれらは、もちろん使用できる。この種の命令が、直接的な制御フロー(直接的な分岐又はフォールスルーパス)を経て届くとき、それらは、もちろん、静的に容易に検出できる。しかし、間接的な制御フロー転送がコードセクションのデータへジャンプするために用いられて、データビットが違法であるか未確定の命令に対応するとき、静的検出は非常により難しくなることがあり得る。同様に、それらのオペランドが「無効な」場合にだけ例外を投げる法的命令は、命令の目的を隠すために用いることができる。この種の命令は、ゼロ除算、無効なメモリアクセス(即ち、セグメンテーションフォールト)、又は無効なポインタ(バスエラーに結果としてなる)のデリファレンスを含む。
それがあるコードフラグメントを実行することをデバッガに基本的に求めているので、我々は、例外を提起するデバッギのスレッドを要求スレッドと称する。
ミニデバッガのデバッガループは、フラグメントが実行される前にデバッギのプログラム状態を取り出し、そしてその実行の後にそれをもとに戻す。標準ptrace機能は、こうするために用いる。
移行されたコードフラグメントのロード又は格納動作ごとに、デバッギのメモリへのアクセスが必要である。この種のアクセスを実行する複数のオプションが存在する。第1は、ptrace機能を単に使用することであり、デバッガは、デバッギのアドレス空間において読込み及び書込みを行うために、PTRACE_PEEKDATA及びPTRACE_POKEDATA要求を実施できる。この場合に、読込み又は書込みが行われる語当たり、ptraceシステムコールが必要であり、それは著しいオーバーヘッドに結果としてなる。いくつかの最近のLinux(登録商標)版は、より広いアクセスをサポートするが、それらは、Android(登録商標)のように、まだ至る所で利用できるわけではない。
MATE攻撃に対する強力なソフトウェア保護を提供するために、追加の保護技術を使用できる。例えば、セルフデバッギングに加えて、静的解析を防止する難読化は、あらゆる種類の攻撃を防止するために不正加工防止技術と共に使用できる。
制御フロー難読化:不明確な述部の周知の難読化、制御フローフラット化、及び 分岐機能、
コード・レイアウト・ランダム化:コードレイアウトの間、全ての機能からのコ ードは混ぜられて、レイアウトはランダム化される、
コード可動性:コードフラグメントが静的バイナリから取外されて、いわゆるモ バイルコードとして、実行時のアプリケーションにダウンロードされるだけで ある技術、
コードガード:ハッシュがプロセスのコードにわたって計算される技術のオンラ イン及びオフラインの実施は、コードが変えられなかったことを検査するため に空間をアドレス指定する、
制御フロー完全性:復帰アドレスが内部機能が外部コードから呼び出されること を防止するために検査される軽量技術、
命令セット仮想化:固有コードがネイティブに実行される代わりに埋め込みバー チャルマシンにより解釈されるバイトコードに翻訳される技術。
評価プラットフォーム
セルフデバッガの1つの実施態様は、ARMv7プラットフォームを目標とする。具体的に、この実施態様は、Linux(登録商標)3.15及び(ルート化を解除された)Android(登録商標)4.3+4.4の実施を目標として、広範囲に評価した。技術がLinux(登録商標)(4.7)及びAndroid(登録商標)(7.0)の最新版でまだ機能し、そしてそれは実際このケースであることが更に確認された。
セルフデバッギング方式は、複数の使用事例において機能することを示した。例えば、デジタル権利管理シナリオにおいて、以下の実際的な考慮点がみられた。
Claims (10)
- ソフトウェアを保護する方法を処理装置に実行させるコンピュータプログラムであって、
ソフトウェアプロセスを開始するステップと、
デバッガプロセスを前記ソフトウェアプロセスにアタッチするステップと、
前記デバッガプロセスが少なくとも1回呼び出されるように、前記ソフトウェアプロセスを実行するステップと、
前記デバッガプロセスの起動に応答して前記デバッガプロセス中に1つ以上の機能を実行するステップであって、前記1つ以上の機能は前記ソフトウェアプロセスと関連したデータに依存する出力を有するステップと、
を含むコンピュータプログラム。 - 前記出力は、前記ソフトウェアプロセス用のデータ出力を含む請求項1に記載のコンピュータプログラム。
- 所与の機能の前記出力は、継続的な実行のために前記ソフトウェアプロセス中に複数の戻り点を示すことができる請求項1又は2に記載のコンピュータプログラム。
- 前記デバッガプロセスは、前記1つ以上の機能がデータを前記ソフトウェアプロセスのアドレス空間の中のメモリから検索することを可能にするためにメモリサポート機能を提供する請求項1~3のいずれか1項に記載のコンピュータプログラム。
- 前記ソフトウェアプロセス中のブレークポイントに達すると、前記デバッガプロセスは呼び出される請求項1~4のいずれか1項に記載のコンピュータプログラム。
- 前記ソフトウェアプロセスが終了すると、前記デバッガプロセスを前記ソフトウェアプロセスから分離することを更に含む請求項1~5のいずれか1項に記載のコンピュータプログラム。
- 前記ソフトウェアプロセスは、コンピュータプログラムとして実行可能なファイル、例えばアプリケーションを実施する請求項1~6のいずれか1項に記載のコンピュータプログラム。
- 前記ソフトウェアプロセスは、ライブラリを実施する請求項1~6のいずれか1項に記載のコンピュータプログラム。
- 請求項1~8のいずれか1項に記載のコンピュータプログラムを実行するためのコンピュータ実行可能なコードを含むコンピュータ実行可能なコンピュータプログラム。
- 請求項1~8のいずれか1項に記載のコンピュータプログラムを実行するように構成される処理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16202259.4A EP3330859A1 (en) | 2016-12-05 | 2016-12-05 | Self-debugging |
EP16202259.4 | 2016-12-05 | ||
PCT/EP2017/081587 WO2018104344A1 (en) | 2016-12-05 | 2017-12-05 | Self-debugging |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019537150A JP2019537150A (ja) | 2019-12-19 |
JP7042270B2 true JP7042270B2 (ja) | 2022-03-25 |
Family
ID=57482335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019527551A Active JP7042270B2 (ja) | 2016-12-05 | 2017-12-05 | セルフデバッギング |
Country Status (9)
Country | Link |
---|---|
US (1) | US11580007B2 (ja) |
EP (2) | EP3330859A1 (ja) |
JP (1) | JP7042270B2 (ja) |
KR (1) | KR102684371B1 (ja) |
CN (1) | CN110088736B (ja) |
BR (1) | BR112019011434A2 (ja) |
ES (1) | ES2901532T3 (ja) |
PT (1) | PT3549020T (ja) |
WO (1) | WO2018104344A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110366828B (zh) * | 2017-03-14 | 2023-11-10 | Oppo广东移动通信有限公司 | 一种上行信号的传输方法及相关设备 |
US20230049233A1 (en) * | 2020-01-28 | 2023-02-16 | C2A-Sec, Ltd. | Control flow integrity system and method |
CN111737661A (zh) * | 2020-05-22 | 2020-10-02 | 北京百度网讯科技有限公司 | 异常堆栈处理方法、系统、电子设备及存储介质 |
CN111935622B (zh) * | 2020-08-03 | 2022-02-11 | 深圳创维-Rgb电子有限公司 | 带数字功放电子设备的调试方法、装置、设备及存储介质 |
KR102271273B1 (ko) * | 2020-11-26 | 2021-06-29 | 숭실대학교산학협력단 | 네이티브 코드 분석방지 우회를 위한 프로세스 래핑 방법, 이를 수행하기 위한 기록 매체 및 장치 |
US11886589B2 (en) | 2020-11-26 | 2024-01-30 | Foundation Of Soongsil University-Industry Cooperation | Process wrapping method for evading anti-analysis of native codes, recording medium and device for performing the method |
US11681786B2 (en) * | 2020-12-07 | 2023-06-20 | Arm Limited | System, devices and/or processes for secure computation |
CN117370214B (zh) * | 2023-12-01 | 2024-04-19 | 珠海格力电器股份有限公司 | 一种控制器的程序调试方法、装置和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005011342A (ja) | 2003-06-20 | 2005-01-13 | Microsoft Corp | プラグ可能構成要素におけるブレークポイントのデバッグ |
JP2008059404A (ja) | 2006-09-01 | 2008-03-13 | Fuji Xerox Co Ltd | 情報処理システムおよびプログラム |
JP2012008825A (ja) | 2010-06-25 | 2012-01-12 | Nec Corp | プログラム難読化装置、プログラム制御装置、プログラム難読化方法及びプログラム |
JP2016528635A (ja) | 2013-08-16 | 2016-09-15 | インカ・エントワークス・インコーポレイテッドInka Entworks, Inc. | ハッシュを用いた動的コードの無欠性検証方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647589B1 (en) * | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
CN101682506B (zh) * | 2007-05-18 | 2013-10-16 | 美国唯美安视国际有限公司 | 用于确定在保护数据时应用的可编程处理步骤的系统和方法 |
US8166459B2 (en) * | 2008-02-27 | 2012-04-24 | Sap Ag | Apparatus and method of generating self-debugging computer software |
CN103077112A (zh) * | 2012-10-16 | 2013-05-01 | 中兴通讯股份有限公司 | 一种软件调试的方法和系统 |
CN104063258B (zh) * | 2013-03-21 | 2017-05-03 | 国际商业机器公司 | 用于调试过程中的代码动态切换的方法和系统 |
EP2979211B1 (en) * | 2013-03-27 | 2020-09-09 | Irdeto B.V. | Protecting software application |
FR3003967B1 (fr) * | 2013-03-29 | 2015-05-01 | Alstom Transport Sa | Procede d'execution d'un logiciel securitaire et d'un logiciel non securitaire entrelaces |
US10127138B2 (en) * | 2013-06-06 | 2018-11-13 | Microsoft Technology Licensing, Llc. | Debugging native code by transitioning from execution in native mode to execution in interpreted mode |
US9262300B1 (en) * | 2014-06-24 | 2016-02-16 | Google Inc. | Debugging computer programming code in a cloud debugger environment |
US9892019B2 (en) * | 2015-10-16 | 2018-02-13 | Successfactors Inc. | Use case driven stepping component automation framework |
-
2016
- 2016-12-05 EP EP16202259.4A patent/EP3330859A1/en not_active Withdrawn
-
2017
- 2017-12-05 CN CN201780075541.2A patent/CN110088736B/zh active Active
- 2017-12-05 US US16/466,044 patent/US11580007B2/en active Active
- 2017-12-05 ES ES17808502T patent/ES2901532T3/es active Active
- 2017-12-05 PT PT178085023T patent/PT3549020T/pt unknown
- 2017-12-05 KR KR1020197017015A patent/KR102684371B1/ko active IP Right Grant
- 2017-12-05 EP EP17808502.3A patent/EP3549020B1/en active Active
- 2017-12-05 BR BR112019011434A patent/BR112019011434A2/pt unknown
- 2017-12-05 WO PCT/EP2017/081587 patent/WO2018104344A1/en active Application Filing
- 2017-12-05 JP JP2019527551A patent/JP7042270B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005011342A (ja) | 2003-06-20 | 2005-01-13 | Microsoft Corp | プラグ可能構成要素におけるブレークポイントのデバッグ |
JP2008059404A (ja) | 2006-09-01 | 2008-03-13 | Fuji Xerox Co Ltd | 情報処理システムおよびプログラム |
JP2012008825A (ja) | 2010-06-25 | 2012-01-12 | Nec Corp | プログラム難読化装置、プログラム制御装置、プログラム難読化方法及びプログラム |
JP2016528635A (ja) | 2013-08-16 | 2016-09-15 | インカ・エントワークス・インコーポレイテッドInka Entworks, Inc. | ハッシュを用いた動的コードの無欠性検証方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3549020B1 (en) | 2021-10-13 |
ES2901532T3 (es) | 2022-03-22 |
KR20190090810A (ko) | 2019-08-02 |
CN110088736B (zh) | 2023-05-23 |
EP3330859A1 (en) | 2018-06-06 |
BR112019011434A2 (pt) | 2019-10-22 |
JP2019537150A (ja) | 2019-12-19 |
CN110088736A (zh) | 2019-08-02 |
KR102684371B1 (ko) | 2024-07-11 |
PT3549020T (pt) | 2021-12-02 |
US11580007B2 (en) | 2023-02-14 |
US20190286551A1 (en) | 2019-09-19 |
WO2018104344A1 (en) | 2018-06-14 |
EP3549020A1 (en) | 2019-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7042270B2 (ja) | セルフデバッギング | |
Williams-King et al. | Egalito: Layout-agnostic binary recompilation | |
Kroes et al. | Delta pointers: Buffer overflow checks without the checks | |
Jang et al. | SafeDispatch: Securing C++ Virtual Calls from Memory Corruption Attacks. | |
Volckaert et al. | Cloning your gadgets: Complete ROP attack immunity with multi-variant execution | |
US20100095281A1 (en) | Internal Function Debugger | |
US10795659B1 (en) | System and method for live patching processes in user space | |
Abrath et al. | Tightly-coupled self-debugging software protection | |
Stüttgen et al. | Robust Linux memory acquisition with minimal target impact | |
US20230267067A1 (en) | Software protection from attacks using self-debugging techniques | |
Zhang et al. | IntPatch: Automatically fix integer-overflow-to-buffer-overflow vulnerability at compile-time | |
US20060277371A1 (en) | System and method to instrument references to shared memory | |
Saito et al. | A survey of prevention/mitigation against memory corruption attacks | |
Cabutto et al. | Software protection with code mobility | |
Zhang et al. | Embroidery: Patching vulnerable binary code of fragmentized android devices | |
Bai et al. | idea: Static analysis on the security of apple kernel drivers | |
V’yukova et al. | Dynamic program analysis tools in gcc and clang compilers | |
Baumann et al. | Cudagrind: Memory-usage checking for cuda | |
Harper‐Cyr et al. | Fast and flexible tracepoints in x86 | |
Gregersen et al. | State of the art of dynamic software updating in Java | |
Saeed et al. | Tag‐Protector: An Effective and Dynamic Detection of Illegal Memory Accesses through Compile Time Code Instrumentation | |
Hassnain et al. | Counterexamples in Safe Rust | |
Arnold | Ksplice: An automatic system for rebootless kernel security updates | |
Rasmussen et al. | Dynamic Software Updating with Gosh! Current Status and the Road Ahead | |
Wu et al. | RUSPATCH: Towards Timely and Effectively Patching Rust Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201118 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211005 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20211223 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220127 |
|
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: 20220214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220314 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7042270 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |