シェルコード
多くのシェルコードは機械語で書かれている。これは抽象度を低くしないと脆弱性をうまく利用できないためである。そのため、シェルコードはCPUとオペレーティングシステムのバージョンやサービスパックといったプラットフォーム毎に作成される。利用する脆弱性によっては、シェルコードの形式が非常に限定されることもある。ただし、1つのシェルコードが複数の脆弱性に対応して機能することはないし、オペレーティングシステムのバージョンやリビジョン、プロセッサの違う環境をまたいで動作することもない。その種の汎用性を達成するには、各種プラットフォーム向けにシェルコードの複数のバージョンを作成し、正しいバージョンに分岐するヘッダ部を作成する。実行されると、そのコードはプラットフォームによって異なる動作をし、そのプラットフォームに適したシェルコードを実行する。