1. 分類・学名・基本スペック(Taxonomy & Profile)
これまでに解剖してきた4種族(Imp, Dwarf, Paper, Scissors)は、いずれも「相手のメモリを自分のコードで上書きするか、DAT 爆弾を踏ませて敵プロセスを殺す(Terminate)」という物理的な破壊を基本としていた。しかし CoreWar の進化が円熟期を迎えると、自然界にクモの巣や食虫植物、さらには宿主の脳を操る寄生バチ(エメラルドゴキブリバチ)やハリガネムシが存在するように、「敵を殺さず、生かしたまま敵の魂(プログラムカウンタ PC)を奪い取って無力化・使役する」という恐るべき高等種族が誕生した。
それが ロバート・マーティン(Robert Martin)らによって創始された「Vampire(ヴァンパイア:吸血鬼)」および、無敵を誇った Imp の群れを完封するために発明された「Imp-Gate(インプゲート:対インプ防壁)」、学名 Insidiae vorax である。この標本は、コンピュータ・セキュリティにおける「制御フロー・ハイジャック(Control-Flow Hijacking)」の概念を、人工生命の捕食行動として結晶化させた最高傑作である。
2. 生態と行動様式(Ecology & Behavior)
Vampire の狩りは、メモリ空間に「牙(Fang)」と呼ばれる特殊な `JMP` 命令をばら撒くことから始まる。Dwarf は遠隔地へ `DAT`(即死爆弾)を投げたが、Vampire は遠隔地へ「どこに着弾しても、必ず Vampire 本体の『胃袋(The Pit:0006番地)』へとジャンプ先が向いている `JMP` 命令」を投げる。これはまさに、獲物を捉えて中心の巣へと引きずり込むクモの巣(捕虫網)である。
ビバリウム(vivariums.net)の観察画面でこの現象を見ると、鳥肌の立つような光景が展開される。敵の Warrior(たとえば Paper のクローンや移動中の敵)の実行ポインタ(赤い核)が、メモリ上に仕掛けられた Vampire の「牙(JMP)」をうっかり踏んだ瞬間——敵の赤い核は一発で長いジャンプ弧を描き、Vampire の体内にある「胃袋(0006〜0007番地:`SPL.A 0, <-3` / `JMP.A -1`)」の真っ只中へと吸い込まれる!
胃袋に落ちた敵の赤い核は、死ぬことを許されない。敵は Vampire の胃袋の中で `SPL.A 0, <-3` を毎サイクル強制的に実行させられる。するとどうなるか?敵自身のプロセスキュー(最大64枠)が、胃袋の中で永久にもがき続ける「洗脳された分裂プロセス」によってあっという間に64枠すべて埋め尽くされてしまう。たとえメモリ上の別の場所に、無傷な敵のクローンが何十個体残っていたとしても、CPUサイクルのほぼ64分の63が胃袋の中の囚人プロセスに奪い取られるため、外の敵本体は完全にフリーズ(全身麻痺)して飼い殺されるのである。
さらにこの標本の恐るべき点は、胃袋の命令が単なる `SPL 0` ではなく `SPL.A 0, <-3`(インプゲート兼用)になっていることだ。胃袋に囚われた敵プロセスがもがけばもがくほど、Bフィールドのプリデクリメント(`<-3`)が発動し、敵自身のCPUパワーを使って Vampire の防壁(0003番地)を毎サイクル高速で削り続け、外から迫りくる Imp の軍勢を自動的にすり潰す「強制労働(奴隷化)」システムが完成している。
3. 生体解剖図:コードと器官の対応(Cellular Anatomy & Organelles)
この8行の解剖図は、「上部:牙の射出エンジン(0000〜0002)」「中部:絶縁壁と牙・定数の生成器官(0003〜0005)」「下部:消化胃袋 兼 インプゲート(0006〜0007)」という3層構造(三胚葉)に分化した、極めて高度な多器官生命体である。
4. ノイマン型アーキテクチャにおける意義(Computer Science Insight)
情報セキュリティおよび計算機科学の視点から見ると、Vampire のメカニズムは現代のサイバー攻撃における「制御フロー・ハイジャック(バッファオーバーフロー等で関数ポインタや戻りアドレスを書き換え、攻撃者が用意したシェルコード領域へCPUの実行ポインタを飛ばす手法)」と完全に同型である。敵のプログラムを直接クラッシュさせるのではなく、ジャンプ命令(Fang)を注入してプログラムカウンタ(IP/PC)を自陣のトラップ領域(Pit)へリダイレクトするという発想は、1980年代の CoreWar においてすでに完成されていた。
また、胃袋(The Pit)の内部で起きている `SPL 0 / JMP -1` は、OSにおける典型的な「フォークボム(Fork Bomb:`while(1) fork();`)」によるリソース枯渇攻撃(Denial of Service)である。MARS のタスクスケジューラが「1つの Warrior につき最大64スレッドまで、FIFOで公平に1サイクルずつ割り当てる」という仕様になっていることを逆手に取り、敵のスレッドキューの63枠以上を無意味な無限ループスレッドで占拠することで、本来のメインスレッドへのCPU割り当て時間を実質ゼロ(64サイクルに1回)へと餓死(Starvation)させる。
そして「Imp-Gate(`SPL.A 0, <-3` や `JMP.A 0, <-1`)」は、MARS の命令実行パイプラインにおける「オペランド評価時の副作用(Pre-decrement `<`)」を利用した見事な防御機構である。MARS では命令を実行する際、まずA・Bオペランドのアドレス解決が行われ、`<` が付いている場合は参照先セルのBフィールドが即座に `-1` デクリメントされる。直進してくる Imp(`MOV.I 0, 1`)がゲートの標的セルに自分を書き込んだ直後、Imp のPCがそこを実行するよりも前にゲート側が `<` でそのセルのB値を `1` から `0`(`MOV.I 0, 0`:その場で足踏みする無害な命令)へ変조してしまうため、どれほど巨大な Imp スパイラルであってもゲートの1マス手前で永久にすり潰されるのである。
5. 天敵・弱点・食物連鎖(Predators & Metagame)
直進するImpが牙(JMPトラップ)を踏めばそのまま胃袋(0006番地)へ吸い込まれて洗脳され、たとえ牙をすり抜けて正面から接近しても、プリデクリメント防壁(Imp-Gate: <-3)によって先端の命令を毎サイクル粉砕されて消滅する。
DAT爆弾では1個体しか殺せないPaperに対しても、Vampireの牙(Fang)は劇的な効果を発揮する。Paperの1個体が牙を踏んで胃袋(SPL 0)に落ちると、その個体が猛烈な勢いでSPL 0を実行し、他の正常なクローンに回るはずだった64枠のプロセスキューを内部から食い潰して群れ全体を麻痺させる!
生態系において、Vampire は「Paper(自己複製スウォーム)」や「移動型・中大型 Warrior」に対して凄まじい威力を発揮する。通常の Dwarf(Stone)が Paper に勝てないのは、DAT 爆弾が「踏んだ1つのスレッドしか殺せない」からである。しかし Vampire の牙(Fang)は、Paper の1つのスレッドが踏んだだけで、そのスレッドを胃袋の `SPL 0` で爆発的に分裂させ、Paper 全体の64スレッド枠を内側からハイジャックして群れ全体を麻痺させることができる。
一方で、Vampire にも明確な構造的リスクと天敵が存在する。第1に、高度な3層構造(エンジン・牙生成・胃袋)を持つため体長が8行以上と大きく、シンプルな小型 Stone の高速 DAT 爆撃に本体(0000〜0002番地)を直撃されると脆い。第2に、もし敵を胃袋に捕獲しただけでは、敵のプロセスは「胃袋の中で生き続けている(死んではいない)」ため、そのまま80,000サイクルが経過すると引き分け(Tie)になってしまう。そのため実戦型の Vampire は、一定回数だけ牙を撒き終えると、自らのエンジンを「コアクリア(Core Clear:メモリ全体を順番に DAT で焼き払う最終掃討モード)」へと切り替えて、胃袋の中で麻痺している獲物に引導を渡す2段階変態(メタモルフォーゼ)を行う。
このように、1行の Imp から始まり、Dwarf(Stone)、Mice(Paper)、Scanner(Scissors)、そして Vampire & Imp-Gate(Trap)へと至る5大種族の系譜は、わずか8,000マスのノイマン型メモリ空間が、地球の生命進化にも匹敵する深遠な「デジタル生態系」を宿していることを雄弁に物語っている。
6. 🔬 Lab / Academy でこの生命体を観察する
ADD.F によって牙(JMP)のA値とB値が逆方向に同時更新され、飛来する Imp の群れが胃袋(The Pit)とインプゲート(<-3)に吸い込まれて無力化される瞬間を観察しましょう。