ATND アテンド β PRODUCED BY RECRUIT

ログイン or 無料登録

第17回 IT基礎技術勉強会

Assembler, Kernel, Binary 勉強会

Default latent
日時 :
2012/06/08 (金) 19:00 ~ 21:00
定員 :
40人
会場 :
川崎市 総合自治会館 第1会議室(神奈川県川崎市中原区小杉町3-1)
URL :
http://kozos.jp/group/ITbeginner.html
主催者 :
ハッシュタグ :
#itbasictech

セミナー中心の、IT基礎技術の勉強会です。気楽な感じでご参加ください。

第17回のテーマは以下です。

「Assembler, Kernel, Binary 勉強会」

■ 内容

文字列を出力するだけのプログラム、いわゆる「Hello World」はC言語の入門書の導入部分での定番ですが、その処理内容を深く追いかけると、A4用紙で何枚ものレポートが書けるとよく言われます。

PC-UNIXの環境で「Hello World」の実行バイナリを作成し,逆アセンブルしてどのようなことが行われているのかを解析してみましょう.アセンブラでのシステムコール呼び出しやカーネルのソースコードも追います.

逆アセンブラ・デバッガ・バイナリエディタなどを利用します.実際に手を動かす勉強会です。

※以前の内容については以下を参照してください。
http://kozos.jp/group/ITbeginner.html

■ 対象

・アセンブラ,カーネル,バイナリに興味のあるかた
・以下の「やること」を見て「面白そう!」と思うかた

■ やること

・FreeBSD/i386の環境で実行バイナリをコンパイル・逆アセンブルして解析してみる.
 関数呼び出し時のスタックの使い方とかを見る。

・write()の呼び出しを探す.引数の扱いとかを見る.

・int 0×80によるシステムコールの呼び出しを見る.

・FreeBSDカーネル内部でのシステムコール処理を見る.
 ・引数の渡しかた
 ・処理関数の呼び出し
 ・エラーの返しかた

・システムコール呼び出し後のerrnoの処理を見る.

・Linuxカーネルではどうなのか見てみて比較してみる.

■ 環境について

今回は逆アセンブルやバイナリ解析など,参加者のかたに実際に手を動かしてもらう勉強会になります.

なのでなるべくなら,各自,PCを持参してください。(持参できるPCが無かったり手作業に自信が無い場合には,PC無しで聞くだけの参加でもOKです)

作業環境は以下の2通りが選べます.

(1)自前で環境を用意する場合

今回利用するのはFreeBSD-8.3の環境です.自前のPC上に環境構築したい場合はFreeBSD-8.3をインストールしてきてください.難しい場合は以下(2)のサーバ利用でも構いませんが,インターネット接続が不要なため,安定して操作できると思います.また事前に操作に馴染んでおくこともできます.

VMを利用すればさほどの危険(HDDのデータ消しちゃうとか)は無く,楽に構築できると思います.インストール時にはカーネルのソースコードもインストールしてください.(セミナー中で参照するため)

バージョンが異なるとカーネルのソースコードやインストールされているgccのバージョンが異なったりするため,「FreeBSD-8.3」をインストールして来てください.あとはエディタとかがひととおり入っていればOKです.説明者はシェルにtcsh,テキストエディタにemacs,バイナリエディタにhexeditを利用します.

(注)リンクするライブラリやシステムコール体系,gccのバージョン等が異なるため,UbuntuやOpenSUSEなどのGNU/Linuxディストリビューションでは代用できません.Mac OS X でもたぶん代用できません.

Linuxカーネルコードも参照します.最新のソースコードを入れてきてください.これはたぶん参照するだけなので,VM利用の場合はWindowsなどのホストOS側に置いておくだけでいいです.

(2)サーバを利用する場合

今回はFreeBSDのサーバをこちらで用意します.自前で開発環境を構築するのが面倒な場合,サーバを利用することもできます.

各自が自分のPCからサーバにログインして,ツール操作をしてもらう感じになります.各自、インターネットに接続できるPCを持参してください。

無線LANによるインターネット接続環境はこちらでも用意しますがたぶん細いのと接続数が限られるので,なるべく各自用意してください.無線LANのAPを立ててくれるかたがいれば大歓迎しますのでお願いします。(誰かお願い!)

GUIでなくUNIX上でシェルを使っての操作になります.SSHでのログイン、bash or tcsh, vi or emacs, more or less, hexedit などの操作に慣れておいたほうがいいです.本題の説明に集中するため,これらについては最低限しか説明しません.各自で調べておいてください.不安なかたは早めに来て慣れてください.

PCにはTeraTermなど,SSHでログインできるツールをインストールしてきてください.TeraTermとWinSCPか,もしくはCygwinがおすすめです.当日は本題の方に集中したいので,このへんの準備もあらかじめ各自でお願いします.(当日はすぐに本題の説明に入るので,現地でインストールなどしている時間はあまり無いと思います)

■ おおまかなスケジュール

18:45 集合
18:50~19:00 オープニング
19:00~21:00 セミナー(途中でてきとうに休憩を入れます)

■ 資料

今回はプロジェクタによる説明と板書がメインになります。配布資料はありません。

■ その他

雰囲気的には、セミナーなので、まあ授業みたいな感じになります。説明するのは、主催者の坂井です。

場所は神奈川県川崎市の武蔵小杉駅から徒歩10分程度の公民館です。
(注)場所がわかりにくいです(毎回迷子者が出ています)。地図をご確認ください.また,以下の案内も参考にしてください。

http://kozos.jp/group/ITbeginner.html

ひとり数百円程度の会場費+電気代(¥100)がかかります。(会場費を割勘します)
学生は無料です。
コンセントを利用しなければ電気代は不要です.なのでなるべくならばPCのバッテリーを充電してきてください.コンセントの数が少ないので(会議室内に3箇所程度しかありません!),なるべく電源タップを持参してください.

開始時間は一応19時としてありますが、平日開催なので、開始時間は多くの参加者が来れる時間に合わせて調整します。会場は入退室自由なので、遅れて来たり早めに帰ったりしてもかまいません。

会場は18:00には開場しておくので、早めに来てぐだぐだと待っていても構いません。今回は各自の準備やセッティングなどに時間もかかりますので、来れるならばなるべく早めに来てください。

本勉強会は主催者が個人活動として行っているものなので,手が回りきらず当日はなにか不備があるかもしれません(とくにサーバ環境など).ご了承ください.

応募者少数の場合には、状況を見て中止にするかもしれません。そのときはごめんなさい。

のんびり気楽な感じでやりましょう。

  • このコメントは全員が閲覧、すべてのログインユーザーが投稿することができます
kozos
kozos - (2012/06/01 (金) 00:24)
ええとせっかくなので当日終了後は懇親会をやりましょうかと思っております.ざっくりの人数を知りたいので,「懇親会行きたい!」というかたはATNDのメッセージで返信ください.
kozos
kozos - (2012/06/01 (金) 00:29)
懇親会ですが予約の都合があるので,いちおう土曜までに参加表明してください.
kozos
kozos - (2012/06/04 (月) 21:08)
サーバをプレ公開しています.サーバ利用のかたは使ってみてください.使いかたはATNDのメッセージを参照してください.
MeijiK
MeijiK - (2012/06/07 (木) 04:10)
ああ、懇親会の件、いま見ました。可能なら参加のほうこうで。。。。

コメントを投稿するには、ログインしてください。

掲載されるイベント情報は、利用者の皆様によりご提供いただくものであり、株式会社リクルートホールディングスは本情報の正確性や内容について、一切保証するものではございません。詳しくは利用規約をご参照ください。