Explore "Full-Stack" in depth!

情報系の専門学校で、今は機械学習に的を絞って学習中。プログラミングを趣味でやりつつ、IT系のあらゆる知識と技術を身に付けるべく奮闘中。

Linux

glibcラッパーからLinuxのシステムコールハンドラまでを読む,まとめる

概要 システムコールの流れ glibcでのシステムコールラッパーの処理 syscall 命令の実行 Linuxのシステムコールハンドラ 概要 IPFactory Advent Calendar 2019 一日目. 急遽開いた弊サークルのカレンダー,既に一日目が終わろうとしている. ここでは日頃勉強…

readelf -S を簡易実装してセクションヘッダを理解する

目次 目次 概要 前提:セクションヘッダとは? 本題1:実装 本題2:セクション名のテーブルについて 総評 概要 drumato.hatenablog.com こちらの記事の続きです。 一応今回でreadelfは最終回になると思います。 今回はセクションヘッダを解析するコードを書きまし…

readelf -lを簡易実装してELFフォーマットの理解を深める。

目次 目次 概要 前提:プログラムヘッダテーブルとは? 本題 コードリーディングで情報集め 実装 総評 概要 こちらの記事の続きです drumato.hatenablog.com ELFヘッダのあとは、 プログラムヘッダの解析 に移るのが自然な流れだと思います。 今回も ソースコー…

バイナリ何もわからない人に送る"ソースコード視点"のELFヘッダ解説

目次 目次 概要 まずはおさらい 本題:readelf 総評 概要 ELFフォーマットを理解するための試み第二弾。 こちらの記事の続きと言ってもいいです。 drumato.hatenablog.com 上記の記事には間違いが多いので注意してください。 本記事バイナリ何もわからない人に送…

readelf -hの簡易版・省略版を作成するミニ記事

目次 目次 概要 本題:ELFヘッダを見る 本題2:GoでELFヘッダを解析する 総評 概要 コンパイラ自作をとても楽しくやっている私ですが、 どうせコンパイラを作るならバイナリ生成までやらせたいものです。 もっと具体的に言うと、 アセンブリから機械語を生成する…

UNIX/V6における実行プロセス切り替えのsleep()→swtch()を最低限理解する

目次 目次 概要 前提 UNIX V6とは PSW(Processor Status Word) 汎用レジスタ プロセスとは 並列処理 user構造体 proc[]とproc構造体 仮想アドレス空間 本題 並列処理におけるプロセスのフロー sleep() sleep()まとめ swtch() 実行プロセスの選択アルゴリズム…

DirtyCOW(CVE-2016-5195)を最低限理解する。

目次 目次 概要 前提知識 本題 Linuxとプロセスの関係 PoCを見てみる レースコンディションの仕組み まとめ 概要 LinuxKernelに存在した脆弱性のDirtyCOW 今は完全にパッチが当てられていますが、その仕組みはとても奥深く、 理解にはLinuxKernelの挙動の理解…