本やネットの解説を読んで復習してたんですが、不親切だなと感じる解説が多かったので備忘録を兼ねて自分でまとめます。コードは色んなところにあるので概念的な解説のみです。ノードを削除する際は、以下の3つのノードに着目します z: 削除したい(キーを持…
2章 プロセス 2.1 プロセス概念 「プロセス」は、あらゆるOSにおいて最も中心となる概念で、これは実行中のプログラムを抽象化したものである。近年のコンピュータは同時にいくつかのことを行うことができるが、厳密にはどの瞬間もCPUは一つのプログラムを(…
前書き 「ITの道に進む人間として、知的財産まわりについて一度しっかり学んでおかなくてはならないなぁ」と数年前から思っていました。これまで中々機会が無かったのですが...ありがたいことについ先日大学院の授業としてそれらを学ぶことができました。今…
今回はflAWS.cloudというCTFを解いてみようと思います。本CTFについてざっくり説明すると「AWSを使用する際のよくある間違いや落とし穴や脆弱性を取り扱った問題集」です。flaws.cloud (前置き) これに取り組むにあたって...僕は今まで一切AWSについて勉強…
2020年ももう残り3日ですが、実家に帰るわけでもなくやるべきことも特にないので...XSSの復習も兼ねて解いてみました(初見) Level1 https://xss-game.appspot.com/level1開いてみると、Googleみたいな見た目をした入力フォーム付きのページがあった。 Inje…
最近gitを学び直しました。 Learn git branchingを解いたので、その答えを書いておきます。解いている途中で気がついたのですが...Learn git branchingには新版と旧版があり、旧版はバグで解けない問題があるそう。今回僕は4-1まで旧版で解いて、それ以降は…
リーダブルコードを読んでみて、理解定着のために自分のコードをリファクタリングをしてみました。今回僕が目指したのは「正しさ」というよりは「自分の理解」なので、温かい目で見てもらえると嬉しいです。さて今回使用したコードですが、私が学部2年の時に…
残すところあと1問。やっていきたいと思います。 Java Script Kiddie 2 https://play.picoctf.org/practice/challenge/33?category=1&page=2Java Script Kiddieシリーズの2つ目。 Java Script Kiddie1と同様、ページにはフォームとボタンだけが設置されてい…
今日もやっていきます。 web問題は残り3つっぽい。 Irish-Name-Repo 3 https://play.picoctf.org/practice/challenge/8?category=1&page=1irish-name-repoシリーズ第三弾。指定されたページに飛んでみると見慣れた画面が現れる。これまでとの違いは、adminの…
picoCTF、web問題の続き。 今回は300point~ Irish-Name-Repo 1 https://play.picoctf.org/practice/challenge/80?category=1&page=1irishって聞いて、アヤメかなぁ〜と思って指定ページを開いたら外人さんの写真がずらっと出てきた。そういえばアヤメはiris…
web問題writeupの第二回目です picobrowser https://play.picoctf.org/practice/challenge/9?category=1&page=1問題文には「picobrowserだけがflagを表示できる」と書いてあった。とりあえずpicobrowserと検索してみたらandroidアプリがヒットしたけれど...…
前書き 最近Webまわりの勉強をしていて、HTML, CSS, JavaScript, Ruby, Rails, PHP, SQL, NodeJSあたりを(一部は復習しつつ)一通り触ってみました。とりあえず次のステップとして、学んだことを活かして簡単なものを作ってみる...のもよいと思ったのですが、…
OverTheWire: Bandit 途中までだけど、とりあえず詰まってしまったのでできてるところまで...周辺知識を理解するところまでが最終的な目標ですが、まずは解ききることを優先します。どうしてもわからない所はwrite upを見るつもりですがなるべく自分で... ※…
一部書き換えてますが、2018年のseccampに応募したときに書いたやつです。落ちましたが。 アップするかどうか迷いましたが、"2018年ももう終わるしなんとなく上げておくかぁ”くらいの気持ちです。 ----(以下本文)---- 大学のSoralis演習室を使いました。 い…
本自体は既に一回読んだんですが、復習を兼ねてこの記事を書くためにわざわざ”The MINIX book Operating system implementation”を図書館から借りてきました。持ち歩くのが重いったらないです(笑)。 洋書で読んでるので、もしかしたら英語の解釈違いによる致…
メモリ管理の章です。4.3(仮想記憶)は少し長いので区切りの良いところまで。 メモリ管理システムは2つに分類できる。一つはプロセスの実行中にその内容をメモリとディスク間で移動するページング方式で、もう片方の方式ではそれを行わない(後者の方が単…
やっていきましょう。 スタートはここから。 11日目から pic.twitter.com/md94FLc9sU— Yamahiro (@ymhr_s) 2018年6月8日 ご覧の有様です。 右端に行ったら変な動きをしているので、画面外に出てしまった時には値を補正するようにします。このくらいであれば…
5月26日から27日にかけてSECCON Beginners CTFに一人で参加しました。これまで何度か常設のものを解いてみたことはありましたが、こうして大会っぽい大会に参加するのは初めてでした。 warm up5つしか解けず残念な結果に終わってしまいました。 この記事を書…
(通信制限のためか画像アップロードできないので後ほど修正加えます) ※修正しました(5/24 8:40)さて10日目,ようやく3分の1ですね。やっていきしょう。 最初の方でちょっとメモリ管理の続きでmallocっぽいのを作ったり、切り上げ切り捨てのやり方の話とかの…
(完成直前の記事が誤操作で一度全部消えたので沈みムード) 1週間ぶりのOS本の進捗です。ここ1週間は中間試験の勉強やseccampの選択課題の勉強であまりこちらに手を回せていませんでしたが、意欲は全く下がっていません。張り切ってやっていきましょうー…
8日目、今度こそマウスを動かす。 ここまでやってきてマウスからのデータを受け取れるようになったので、あとはそれを解読し、それにあわせてカーソルを動かせばよいだけ。ここからは本に沿ってやっていく。 i = fifo8_get(&mousefifo); io_sti(); if (mdec…
さてさて続き。 前回はマウスが反応しなかったところで終わりました。 今日3本目の記事でちょっと疲れてきましたがやっていきましょう。int.cを見た。 void inthandler21(int *esp) { struct BOOTINFO *binfo = (struct BOOTINFO *) ADR_BOOTINFO; unsigned…
やり残したGDTRの説明から。 _load_gdtr: ; void load_gdtr(int limit, int addr); MOV AX,[ESP+4] ; limit MOV [ESP+6],AX LGDT [ESP+6] RET 出鼻をくじくようだけどもうこのコードに関してはこれ以上説明することがなさそう…と思ったけど、そういえば初見…
張り切って5日目。 前回まででそれっぽい画面が出来たので、今回は文字を表示させてみたい。 …まぁ本の通りやったら表示できますよそりゃぁね(笑)。でもそれだけじゃぁつまらないので、自分でも何かかいてみようと思った。考えた結果フレーミーを描くことに…
※OS本の前置きの方にある「これは教材OSだから自由に使って下さい」のお言葉に甘えてこの記事でもコードそのまま載せさせてもらっています。本当に有り難く思っています。この場を借りてお礼申し上げます。 前回は真っ黒画面を出力したので今回は何か書きた…
OS学習の流れにのって30日本久々に読んでます。 この記事「OS本を持っていない人にもわかりやすく伝える」という感じではないです(微妙なところですが)。どちらかといえば進捗報告に近いのかなって思ってて、本読めばわかるようなところは説明まるごとすっ…
まとめ2回目。前回の続きで2.5章からまとめようかなって思ったのですが(ここ面白かったんですけど)実装メインの内容だったので、恐らくこれから手を動かしてやっていくうちに何度も後から見るだろうなって思ったので3章から。 3章 入出力 OSの主機能の一…