Ⅰ. はじめに
タイトルの通り「ハードウェアブレークポイント(HWBP)とVEHを利用してデバッガを作成する方法」です。
Ⅱ. サンプルプログラム
HWBPのメリット/デメリット
メリット
- メモリを変更する必要がない為メモリ改ざんチェックを回避できる
- ページガードを利用した方法よりもHWBPの方が高速に処理できる
デメリット
- GetThreadContext等で簡単に検知可能
- ブレークポイントの数に制限がある(スレッドごとに最大4個)
- 新規スレッドが生成された時に新規スレッドに対して自動的にHWBPを設定する処理を実装する必要がある(新規スレッドに対してHWBPを設定する必要がなければ実装しなくてOK)