書籍立ち読み 書籍本体画像 出版秘話
書籍サポート 著者サイト 出版社サイト

インターネットからも購入できます

Amazonで購入する 7&Yで購入する bk1で購入する

●本書は、純粋なアセンブリ言語の技術解説書です。全416ページ、CD-ROM付き。データハウス刊、3,800円(+税)にて、7月20日に全国書店で発売されます。
●C言語など、各種のプログラミング経験のある方はもちろん、プログラミング知識の浅い初心者の方にも対応できるよう、アセンブラの基礎から具体的な解説を行っています。
●本書では、現在もっとも有名なアセンブラのひとつであるNASM(The Netwide Assembler)とGAS(GNU Assembler)を中心に、アセンブラを利用した、Windows、Linuxアプリケーションの作成を、具体的な例を挙げながら解説していきます。
●OS(Operating System)作成の初歩的部分であるブートセクタ関連のプログラミングや、Linux環境でのアセンブラプログラミング解説はもちろん、MS-DOS上での16ビットアセンブラプログラミング、そしてWindows上での32ビットGUIアプリケーション開発まで、アセンブラを題材に幅広い内容を取り上げています。さらに、アセンブラを使ってのマシン語レベルでのexploit(shellcode)作成法やネットワークプログラミングについても言及しています。
●サーバへのHackingやソフトウェアのKrackingといった、アセンブリ言語を学ぶことで初めて理解できる攻撃プログラムの仕組みやリバースエンジニアリングについても、本書で触れていきます。
●内容など詳細については、上記リンクを参考にしてください、目次は制作の関係上、一部異なる箇所もありますのでご了承ください。
●内容や各種情報は随時、追加していきます。サイト掲載情報は予告なく変更、削除する場合がありますのでご了承ください。


【目次】

1章:アセンブリ言語を学ぶ前に

 コンピュータの基礎知識とアセンブリ言語
  はじめに
  コンピュータとは
  CPU
  メモリ
  I/O
  プログラミング言語とは
  アセンブリ言語とアセンブラ
  アセンブリ言語の処理速度
  マシン語とは
  2進数と16進数とコンピュータの関係
  電卓を使って16進数へ変換する
  ビットとバイト
  バイナリエディタ
  レジスタとは
  x86系CPUの進化
   8080
   8086
   80386
  アセンブリ言語の記述法
  さいごに


2章:16ビットアセンブラプログラミング

 8086アセンブラプログラミング
  はじめに
  ようこそ16ビットの世界へ
  凡用レジスタ
  加算と減算
   加算
   減算
   インクリメントとデクリメント
  ジャンプ命令
  フラグレジスタと条件分岐
  乗算と除算
   乗算(mul命令)
   除算(div命令)
  ループ命令
  フラグ操作
  命令ポインタ
  スタックと特殊凡用レジスタ
  サブルーチン
  論理演算
   論理積
   論理和
   排他的論理和
   論理否定
  シフト
   論理シフト
   算術シフト
  ローテート
   CFフラグを通さないローテート
   CFフラグを通すローテート
  セグメントとオフセット
  メモリ操作
  システムコール(文字の出力)
  さいごに

 16ビットNASMプログラミング
  はじめに
  インストール
  コンパイル
  マシン語
   マシン語とアセンブリ言語
   マシン語でプログラミング
  文字列の入出力
   文字列の出力
   文字列の入力
  ファイル操作
   ファイルを開く
   ファイルを読み込む
   ファイルを閉じる
   ファイルの書き込み
   ファイルの作成
   ファイルの削除
   ファイルポインタ
   標準入出力とファイルの関係
  コマンドラインのデータ取得
   引数の取得
   実行ファイルパスの取得
  typeコマンドの作成
  アクセスカウンタ
   アクセスカウンタの作成
   HTTPサーバの設定
   アクセスカウンタの実行
  ファイル膨張ソフトの作成
  さいごに

 BIOSを利用したプログラミング
  はじめに
  エミュレータとは
  Bochsのダウンロード
  Bochsのインストール
  Bochsの設定
   DISPLAY_LIBRARY
   MEGS
   FLOPPYAとFLOPPYB
   ATA[0-3]-MASTER, ATA[0-3]-SLAVE
   BOOT
   PARPORT1
  文字の表示
  BIOSを利用したプログラミング
  Hello World!
  GNUアセンブラでの開発
  512バイト以上のプログラムの作成
  さいごに


3章:32ビットプログラミング

 GNUアセンブラプログラミング
  はじめに
  GDBの使い方
   GDBとは
   デバッグの流れ
   コマンドの説明
  Hello World!
  数値カウントプログラム
  引数の取得
   自作関数の作成
   argcの取得
   argvの取得
  ファイル操作
   fopenとfclose
   fgetsとfputs
  アクセスカウンタの作成
   処理の流れ
   作成
  BBSの作成
   処理の流れ
   作成
  ネットワークプログラミング
   クライアントプログラム作成
  サーバプログラム作成
  システムコールを直接利用するプログラミング
  システムコールでネットワークプログラミング
   socketcall
   プログラミング
  バッファオーバーフロー
   root権限を与えるプログラム
   セキュリティホールが存在するプログラム
   スタック
   実行すべきマシン語の作成
   exploitの作成
   大文字へ変換するターゲットプログラム
  さいごに

 Windowsアセンブラプログラミング
  はじめに
  リンカ
  Hello World!
  hello32.exeをデバッガで解析
  ダイアログボックス表示
   リソースコンパイラ(Resource Compiler)
   リソーススクリプトのコンパイル
   ダイアログボックスの表示
  ウィンドウ表示
  簡単なアプリケーションの作成
   リソーススクリプト
   プログラム作成
  少し実用的なアプリケーション
   クリップボードログ取得プログラム
   おおまかな仕様
   処理の流れ
   プログラム作成
   実行結果
  さいごに


Appendix

 命令一覧
  転送命令
  論理演算命令
  算術演算命令
  比較命令
  ジャンプ、ループ命令
  スタック関連の命令
  シフト、ローテート命令

 OllyDbgのインストールと使い方
  OllyDbgとは
  ダウンロード
  インストール
  日本語化
  プログラムの簡単なデバッグ

 MASM(Microsoft assembler)

 インラインアセンブラ
  インラインアセンブラとは
  Windows
  Linux

 Linux環境でNASMを使う

 ネット上で入手できるアセンブラとリンカ
  アセンブラ
  リンカ

 アセンブリ言語に関して参考になるWEBページ
  入門講座
  資料

 ASCII文字コード表

 16進数対応表




Copyright (C) 2005 Kenji Aiko All rights reserved.