nao
nao copied to clipboard
support branch
- hook jxx instruction, get LBR. judge for loop or infinite loop by checking ecx .
copyed from handle infinite loop · Issue #19 · tkmru/nao
分岐を含めて過剰にコードを削除する場合の対処 cmp命令とjz,jnz等を例外として追加する
全パス探査の方法
単純に分岐命令とそのアドレスを記録しておいて逆のパスを通るようにパッチングする
JE←→JNE JZ←→JNZ JA←→JB JNA←→JNB JL←→JG JLE←→JGE
- 実行に影響を与えない組み合わせを考慮せずに2^n通り実行する.(n= 分岐数)
- 分岐ツリーを作り葉から順番に実行する.
eflagsいじってもよさそう。どっちでもいいか
eflagsだとZFとCFとSFをいじらないといけないとだめだから逆の命令にするほうが楽かなと
分岐ツリー作るためのいいアイデアない?
暇なときに実装してみます