Explore "Full-Stack" in depth!

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

システムプログラミング

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

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

ELFバイナリに含まれるnullセクション/ヘッダの真実…?

概要 本題 自作アセンブラについて 正解は… 概要 gccの吐くELFバイナリを見てみると、セクションヘッダテーブルの先頭に NULLヘッダ を見つけます。 これってなんだろう? ってずっと疑問だったのですが、今日理由がわかったのでそれについて述べたいと思います。…

Seccamp2019でCコンパイラ実装に取り組みました

概要 応募課題について 問1 問2 問3 集中開発コースについて 成果物とその進捗について 事前学習期間 当日 総評 概要 セキュリティ・キャンプ全国大会2019に参加しました! 集中開発コースの中にある 「Y-Ⅱ Cコンパイラを自作してみよう!」のテーマに応募し、 普…

オブジェクトファイルのシンボルテーブルを最低限理解する。

目次 目次 概要 対象読者 本題 ELFフォーマット復習 シンボルテーブル シンボル名 name シンボルの情報を格納する info ST_BIND ST_TYPE シンボルの可視性 Other シンボルの実体 Value 総評 概要 お久しぶりです。 最近やりたい事が沢山あってブログをかけず…

IA-32 Architectures Developer's Manual 6章まとめ

目次 目次 概要 プロシージャ・コールのタイプ スタック スタックのセットアップ スタックのアライメント プロシージャのリンクに関する情報 CALLとRETによるプロシージャコール farコール・リターン 総評 概要 IA-32マニュアルを読み始めました。 無料で読める…

IA-32 Architectures Developer's Manual 4章まとめ

目次 目次 概要 基本データ型 各データ型のアライメント 数値のデータ型 整数 浮動小数点 ポインタ型 ビットフィールドデータ型 ストリング・データ型 パックドSIMD データ型 総評 概要 IA-32 マニュアルを読み始めました。 無料で読めるドキュメントとしては…

IA-32 Architectures Developer's Manual 3章まとめ

目次 目次 概要 動作モード 保護モード・プロテクトモード 実アドレスモード・リアルモード SMM( System Management Mode) IA-32における基本実行環境 アドレス空間 基本プログラム実行レジスタ メモリ構成 フラットメモリモデル セグメント化メモリモデル 動…

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ヘッダを解析する 総評 概要 コンパイラ自作をとても楽しくやっている私ですが、 どうせコンパイラを作るならバイナリ生成までやらせたいものです。 もっと具体的に言うと、 アセンブリから機械語を生成する…