Download - リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した
![Page 1: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/1.jpg)
リンカとローダで遊んでみよう!~知られざるリンクの世界~
坂井弘亮(KOZOSプロジェクト)
![Page 2: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/2.jpg)
資料は以下にありますhttp://www.saturn.dti.ne.jp/~hsakai/linker.html
聞きながら試したい人はサンプルコードを
ダウンロードしてください(FreeBSD用です)
![Page 3: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/3.jpg)
1997年頃 プログラミングに傾倒 X Window System プログラミング オブジェクト指向プログラミング OSに興味を持つ1999年 就職 組込みシステムに興味を持つ2007年 自作組込みOS「KOZOS」の開発を 趣味で開始2009年 OSC出展 KOZOSを実ボードに移植2010年 「12ステップで作る 組込みOS自作入門」 出版
略歴
![Page 4: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/4.jpg)
基礎知識の説明後、デモをします
リンカやローダでいろいろ試したり
遊んでみたりします
![Page 5: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/5.jpg)
1.テキスト、データ、BSS領域2.オブジェクトファイルフォーマット、 ELFフォーマット、セクション3.リンカスクリプト4.コア・ファイル5.シンボル、再配置
![Page 6: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/6.jpg)
そもそも「リンカ」って何?
![Page 7: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/7.jpg)
![Page 8: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/8.jpg)
![Page 9: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/9.jpg)
・複数のオブジェクト ファイルをまとめる・ライブラリもまとめる・ファイルをまたいだ 関数呼び出しを解決する
実行形式ファイルを作成するために…
![Page 10: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/10.jpg)
じゃあ、「ローダ」って何?
![Page 11: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/11.jpg)
・CPUが実行できるのは、メモリ上の 機械語コードのみ
・プログラムを実行するには、HDD等から メモリ上に展開する必要がある(ロード)
・ロードを行うためのプログラムを 「ローダ」という
・いわゆる「ブートローダー」もローダの一種
![Page 12: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/12.jpg)
・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した 書き方をされることもある
・組込みではメモリマップを意識した プログラミングが必要になるので、 リンカやローダの知識が要る
なぜ今「リンカ」が熱いのか…?
![Page 13: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/13.jpg)
・ソフトウェア・セキュリティの分野では 実行形式をバイナリハックして 脆弱性を解析したりすることも
・最近はJITコンパイラや動的最適化 のために必要になることも…?
・バイナリハックとか、流行りだし (バイナリアンのかた、いかがで しょうか?)
![Page 14: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/14.jpg)
・まあでも、このへんのことも 知らないとなんか気になるし 面白そうだし知りたいじゃん!
・リンカとローダを駆使すると、 C言語のレベルでは不可能 なおもしろいことができる!(注)実用的かどうかは別問題
![Page 15: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/15.jpg)
1テキスト、データ、
BSS領域
![Page 16: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/16.jpg)
実行形式には3つの領域があります
・テキスト領域 ...機械語コードが配置される・データ領域 ...静的変数が配置される ロードのときに展開される・BSS領域 ...初期値無しの静的変数が 配置される ロードのときにゼロクリアされる
![Page 17: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/17.jpg)
int value = 1; …データ領域へ
int value2; …BSS領域へ
int main() …テキスト領域へ
{ ...;}
![Page 18: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/18.jpg)
はいここで実験です!
・const変数書き換え・文字列リテラル書き換え
![Page 19: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/19.jpg)
2.オブジェクトファイル
フォーマット、 ELFフォーマット、
セクション
![Page 20: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/20.jpg)
・オブジェクトファイルフォーマット …オブジェクトファイルや実行形式 のファイルフォーマット
・a.out形式、ELF形式、COFF形式 など
![Page 21: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/21.jpg)
ELF形式・オブジェクトファイル、実行形式、 コアファイル、共有ライブラリが 表現可能
・バイエンディアン、32/64ビット対応
・セクションとセグメントの細かい設定
・かなり万能のフォーマット
![Page 22: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/22.jpg)
![Page 23: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/23.jpg)
はいここで実験です!
・ELF形式の解析・セクションの作成・バイナリデータ埋め込み・簡易ローダ作成
![Page 24: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/24.jpg)
3.リンカスクリプト
![Page 25: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/25.jpg)
・リンカスクリプト …セクションの配置などを 細かくチューニングできます
・組込みとかでは必須なのに あまり資料が無い!
![Page 26: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/26.jpg)
リンカスクリプトを見てみよう!リンカスクリプトのファイル名は,様々.
拡張子が決まっていないので,いろんな名前になっている.
例(ちょっと古い情報です)
FreeBSDのカーネル/usr/src/sys/conf/ldscript.i386, ldscript.alpha
FreeBSD のアプリケーション用/usr/libdata/ldscripts/elf_i386.x, elf_i386.xn, elf_i386.xs
Linux のカーネルarch/$(ARCH)/kernel/vmlinux.lds.S
(この他にもカーネルローダ用やramdisk用などが点在している)
Linux のカーネルローダarch/i386/boot/compressed/vmlinux.scrarch/sh/boot/compressed/vmlinux.scr
arch/arm/boot/compressed/vmlinux.lds.inarch/ppc/boot/ld.script
NetBSD のカーネルsys/arch/mmeye/conf/sh.x
sys/arch/i386/conf/kern.ldscriptsys/arch/sparc/conf/kern.ldscriptsys/arch/mips/conf/kern.ldscript
(この他にもカーネルローダ用が点在しているようだ)
![Page 27: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/27.jpg)
はいここで実験です!
・バイナリデータ埋込み(2)・静的変数の再初期化
![Page 28: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/28.jpg)
ここでちょっと紹介タ~イム!
![Page 29: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/29.jpg)
組込み勉強会やります!
![Page 30: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/30.jpg)
「組込みこぞう勉強会」
9月25日(土)東京近郊
良い場所、探してます
![Page 31: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/31.jpg)
宣伝終わり!本編に戻ります
![Page 32: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/32.jpg)
4.コア・ファイル
![Page 33: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/33.jpg)
コア・ファイルとは?アプリが不正メモリアクセスとかでダウンしたときに、生成されるファイル「*.core」ってやつ
(「コア」という名前が歴史を感じさせる)
![Page 34: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/34.jpg)
コア・ファイルもELF形式だって
知ってた?
![Page 35: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/35.jpg)
ダウンしたときのメモリのダンプとかが格納されています
![Page 36: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/36.jpg)
はいここで実験です!
・coreファイル解析・coreファイルからの 動作再開
![Page 37: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/37.jpg)
5.シンボル、
再配置
![Page 38: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/38.jpg)
再配置
コンパイラが作成したオブジェクトファイルでは、
ファイル間をまたいだ関数の呼び出しや変数の参照部分は、
空欄になっています(アドレスが決定されていないため)
→リンク時に決定されます(再配置)→リンク時に補填されます(名前解決)
![Page 39: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/39.jpg)
再配置のためには…
変数の参照や関数の呼び出しごとに、
どの変数や関数を呼び出すのかの情報が必要
(再配置エントリ)
![Page 40: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/40.jpg)
void func(){ extern int value; value = 1; …valueの再配置エントリが必要
func2(); …func2の再配置エントリが必要
}
int main(){ func(); …funcの再配置エントリが必要
}
![Page 41: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/41.jpg)
![Page 42: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/42.jpg)
はいここで実験です!
・再配置の実際・簡易動的リンカ作成・簡易静的リンカ作成
![Page 43: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/43.jpg)
最後にちょっと役に立つものを
…
![Page 44: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/44.jpg)
不要シンボルのチェックツール(checksym)
![Page 45: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/45.jpg)
オブジェクトファイルを与えると…
利用されていない変数、関数の一覧を
出力してくれます
![Page 46: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/46.jpg)
ちょっと試してみましょう
![Page 47: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/47.jpg)
そろそろ、まとめに
入りますが
![Page 48: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/48.jpg)
どうでしたか?リンカって
面白いでしょ?
![Page 49: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/49.jpg)
でも、リンカやローダの情報って、あまり無い(ネット上も、書籍も)
![Page 50: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/50.jpg)
あったとしても、単発だったり、
他の情報のおまけの内容だったりして、まとまっていない
![Page 51: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/51.jpg)
リンカやローダの専門的な情報として、まとめられていない!
![Page 52: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/52.jpg)
OSをいじろうとしたときに、
これが一番困った
![Page 53: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/53.jpg)
なんとかならんもんか...
![Page 54: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/54.jpg)
じゃ、書くか!
![Page 55: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/55.jpg)
CQ出版より8月9日発売!
![Page 56: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/56.jpg)
各方面から賛辞の声が!
![Page 57: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/57.jpg)
「これは、素晴らしくマニアックですねえ」
![Page 58: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/58.jpg)
「相変わらず、マニアックなものを
書きますねえ」
![Page 59: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/59.jpg)
「これからもぜひ、マニアックなものを書き続けてください」
![Page 60: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/60.jpg)
ほめられた!
![Page 61: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/61.jpg)
みんな、バイナリハックが好きなんだなあ…
![Page 62: リンカとローダで 遊んでみよう! - kozoskozos.jp/documents/linker_kernelvm5.pdf・OSのカーネルのソースなどでは、 リンカやローダの機能を駆使した](https://reader034.vdocuments.net/reader034/viewer/2022042308/5ed4733e3fb4881c434b07ac/html5/thumbnails/62.jpg)
おしまい