LoginSignup
1
0

More than 5 years have passed since last update.

メモ:「30日でできる!OS自作入門 」22日目

Posted at

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

スクリーンショット 2018-12-25 13.33.34.png

7) ウィンドウに文字や四角を描こう
- ウィンドウに文字列書くAPIと四角を作るAPIを追加
- バグファイルの削除

スクリーンショット 2018-12-25 13.39.04.png

よさそう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0