C言語でアプリケーションを作ろう
1) OS を守ろう 5
- OS 側の API に悪いコード仕込まれたらしょうがないとのこと
2) バグの発見を手伝う
- スタックを守る
- INT 0x0c
- qemu 上は動作しない
- 対象の命令の行まで取り出せる
- 例外時 CPU が自動でPUSHしてくれる EIP, CS, EFLAGS, ESP, SS など
3) アプリの強制終了
- 無限ループでCPU食ってるタスクとか
- 無限ループもちゃんんとBreakできる、凄い
4) C言語で文字列表示1
- アセンブリでAPIを書く
- 6バイトの書き換えはもういらない
5) C言語で文字列表示2
- hrb ファイルにはデータ部分が生成されてなかった
- hrb ファイルの構成
- 0x0000 - データセグメントの大きさ
- 0x0004 - Hariという Identifier
- 0x0008 - データセグメントの予備領域の大きさ
- 0x000c - ESP 初期値、スタック領域になる
- 0x0010 - データ部分の大きさ
- 0x0014 - データ部分がどこから始まってるか
- 0x0018 - 0xe9000000 (実行開始番地にJMP)
- 0x001c - 実行開始番地
- 0x0020 - malloc 領域開始アドレス
- hrb ファイルのへっだから情報を読取ることによってデータセグメントが入ってるファイルも実行出来るようになった
6) ウィンドウを出そう
- ウィンドウの大きさ、名前などを指定できる API
7) ウィンドウに文字や四角を描こう
- ウィンドウに文字列書くAPIと四角を作るAPIを追加
- バグファイルの削除
よさそう。