2018-01-01から1年間の記事一覧
10月の初旬に「12ステップで作る組込みOS自作入門」という本を買いました。Amazon CAPTCHAH8というCPUが乗ったマイコンボード上に組込みOSを動かすという内容で、サボりつつも2ヶ月程度で完成させることができました。 かいつまんでやったことを紹介すると、…
x86_64の呼び出し規約では、関数の引数は主にレジスタを使って渡すように定義されている。 主に、というのは引数の数が6個まではレジスタ(%edi、%esi、%edx、%ecx、%r8、%r9)を使って渡し、7個以上の場合はスタックに置いて渡す形式となっているからだ。レ…
speakerdeck.comひろしま学生IT勉強会で発表した資料です。
Linuxで共有ライブラリの関数を呼び出す際、PLTを経由して関数が呼び出される。PLTとはProcedure Linkage Tableの略で、PLT経由で呼び出す関数のアドレスは動的リンカが解決してくれる。この機構を追ってみた。
Linuxのプロセス実行を見てみたクソ長い備忘録。全然まとまってません。
巷ではSpectre/Meltdownが話題になっている.有効な対策として(K)ASLRが挙げられており,これはプロセス実行時のメモリ空間の配置をランダマイズすることで,例えば攻撃者が配置したコードのアドレスへのJMP等を防ぐことができる. 詳しくはシェルコードでグ…
C++でポリモーフィズムを実現するためにvtableと呼ばれる機構が用いられている. だいたいの入門本でvtableという言葉は出てくるものの,実装については特に触れられていないので中身を見てみた.