情弱ログ

参考にならないので当てにしないでください

2018-01-01から1年間の記事一覧

12ステップOS自作本の開発環境をGentoo Linux + crossdev + gcc 7.3.0で構築した話

10月の初旬に「12ステップで作る組込みOS自作入門」という本を買いました。Amazon CAPTCHAH8というCPUが乗ったマイコンボード上に組込みOSを動かすという内容で、サボりつつも2ヶ月程度で完成させることができました。 かいつまんでやったことを紹介すると、…

引数の数が関数の実行時間に及ぼす影響を調査した話

x86_64の呼び出し規約では、関数の引数は主にレジスタを使って渡すように定義されている。 主に、というのは引数の数が6個まではレジスタ(%edi、%esi、%edx、%ecx、%r8、%r9)を使って渡し、7個以上の場合はスタックに置いて渡す形式となっているからだ。レ…

ひろしま学生IT勉強会第3回(3/9開催)

speakerdeck.comひろしま学生IT勉強会で発表した資料です。

Linuxの共有ライブラリ呼び出し(呼び出し側編)

Linuxで共有ライブラリの関数を呼び出す際、PLTを経由して関数が呼び出される。PLTとはProcedure Linkage Tableの略で、PLT経由で呼び出す関数のアドレスは動的リンカが解決してくれる。この機構を追ってみた。

Linuxのプロセス実行を見てみる execve(2)編

Linuxのプロセス実行を見てみたクソ長い備忘録。全然まとまってません。

PIE(position-independent executable)なオブジェクトの中身を見てみる

巷ではSpectre/Meltdownが話題になっている.有効な対策として(K)ASLRが挙げられており,これはプロセス実行時のメモリ空間の配置をランダマイズすることで,例えば攻撃者が配置したコードのアドレスへのJMP等を防ぐことができる. 詳しくはシェルコードでグ…

vtableの中身を見てみる

C++でポリモーフィズムを実現するためにvtableと呼ばれる機構が用いられている. だいたいの入門本でvtableという言葉は出てくるものの,実装については特に触れられていないので中身を見てみた.