シェルコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2015/10/10 16:23 UTC 版)
プラットフォーム依存性
多くのシェルコードは機械語で書かれている。これは抽象度を低くしないと脆弱性をうまく利用できないためである。そのため、シェルコードはCPUとオペレーティングシステムのバージョンやサービスパックといったプラットフォーム毎に作成される。利用する脆弱性によっては、シェルコードの形式が非常に限定されることもある。ただし、1つのシェルコードが複数の脆弱性に対応して機能することはないし、オペレーティングシステムのバージョンやリビジョン、プロセッサの違う環境をまたいで動作することもない[4]。その種の汎用性を達成するには、各種プラットフォーム向けにシェルコードの複数のバージョンを作成し、正しいバージョンに分岐するヘッダ部を作成する。実行されると、そのコードはプラットフォームによって異なる動作をし、そのプラットフォームに適したシェルコードを実行する。
関連項目
外部リンク
- An introduction to buffer overflows and shellcode
- The Basics of Shellcoding (PDF) x86向けシェルコードの概要 by Angelo Rosiello
- An introduction to shellcode development
- Metasploit Shellcode
- shellcode.org
- Shellcodes Archive OS別
- Practical Windows and Linux Shellcode design
- Shellcoding for Linux and Windows Tutorial
- Designing shellcode demystified
- Writing Small shellcode by Dafydd Stuttard - 設計と実装の両面で最適化することで可能な限り最小のシェルコードを作る方法を論じたホワイトペーパー
|
- ^ Sockets, Shellcode, Porting, & Coding: Reverse Engineering Exploits and Tool Coding for Security Professionals. by James C. Foster and Stuart McClure (April 12, 2005). ISBN 1-59749-005-9
- ^ “Writing ia32 alphanumeric shellcodes”. Phrack (2001年11月8日). 2008年2月29日閲覧。
- ^ “Building IA32 'Unicode-Proof' Shellcodes”. Phrack (2003年8月13日). 2008年2月29日閲覧。
- ^ “Architecture Spanning Shellcode”. Phrack (2001年8月11日). 2008年2月29日閲覧。
- 1 シェルコードとは
- 2 シェルコードの概要
- 3 符号化
- 4 プラットフォーム依存性
- シェルコードのページへのリンク