ATND アテンド β PRODUCED BY RECRUIT

ログイン or 無料登録

第18回 IT基礎技術勉強会

Assembler, Kernel, Binary 勉強会 (ARM編)

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

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

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

「Assembler, Kernel, Binary 勉強会 (ARM編)」

■ 内容

第17回(http://atnd.org/events/29090)のARM編です.
ARMは携帯電話などで利用されている,近年話題の組込み向けプロセッサです.

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

ARMの開発環境で「Hello World」の実行バイナリを作成し,シミュレータで実行させ,デバッガで動作を追ってみましょう.また逆アセンブルしてどのようなことが行われているのかを解析してみましょう.

今回利用するARM向け「Hello World」はライブラリ類は一切利用しない,フルスクラッチのものです.このためスタートアップやシステムコール呼び出し,メモリ配置などもすべて理解することが可能です.

クロスコンパイラ・シミュレータ・デバッガ・逆アセンブラ・バイナリエディタなどを利用します.実際に手を動かす勉強会です。

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

■ 対象

・アセンブラ,カーネル,バイナリに興味のあるかた
・組込み向けプロセッサや組込みソフトウェアの開発環境に興味のあるかた
・シミュレータ実行や対応方法などに興味のあるかた
・以下の「やること」を見て「面白そう!」と思うかた

■ やること

・PC上にARMのクロスコンパイル環境を構築し,ARM向けの実行バイナリを作成してみる.

・GDBのシミュレータ機能で実行バイナリを動作させてみる.

・逆アセンブルして解析してみる.関数呼び出し時のスタックの使い方とかを見る。

・デバッガで動作をアセンブラ単位で追ってみる.

・ARMでのスタートアップやシステムコールの呼び出しを見る.

・GDBのシミュレータのソースコードを読み,どのような対応をすればシミュレータで動作させられるのか調べる.

・(余裕があれば)ARMのThumb命令についても見てみる.アセンブラや実際の動作,シミュレータ内部での処理を見てみる.

■ 説明対象レベル

「シェルベースのCUI環境での操作には馴染みがあって,lsやcdなどの基本操作やmore(もしくはless)によるファイル参照,vi(もしくはemacs)でのファイル編集には慣れている.でもバイナリエディタやgdbの操作は未経験」くらいを対象に説明します.

バイナリエディタはなんでもいいのでインストールして軽く慣れておいてください(ファイルを開いて編集して保存,くらいができればいいです).とくに無ければ,hexeditにhttp://kozos.jp/books/asm/のパッチ当てして使うのがおすすめです.hexedit は Ctrl-X でファイル保存して終了,だけおぼえておけばあとは見たままフツーに使えます.

gdbはemacsから操作するわけではないので,emacsは必須ではありません.(-tuiオプションを利用して,gdbが持つテキストユーザインターフェースをベースに説明します)

■ 環境について

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

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

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

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

以下の環境を利用します.

http://kozos.jp/books/asm/

FreeBSD, Ubuntu, CentOS, Cygwin で環境構築できることを確認してあります.上記から「最新の出力環境の構築のためのアーカイブ(2012/02/26)」をダウンロードし,上記サイトの説明に従ってインストールしてください.

以下も参考にしてください.

http://kozos.jp/group/018/build.html

説明はFreeBSD上でやるのでいちおう推奨はFreeBSDですが,UbuntuなどのGNU/Linux環境やCygwinでもOKです.上記のクロスコンパイル環境が構築できればプラットホームは問いません.

難しい場合は以下の「サーバ利用」でも構いませんが,自前PCにインストールするならばインターネット接続が不要なため,安定して操作できると思います.また事前に操作に馴染んでおくこともできます.

説明はCUIベースで行います.説明者が使うツールは tcsh, emacs, less, hexedit ですが,bash, vi, more, bvi とかでも構いません.何かしら,使える状態にしておいてください.

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

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

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

無線LANによるインターネット接続環境はこちらでも用意しますが,説明者は説明を始めたらネットワークの管理はできないので,保証はできません.可能ならば各自用意してください.

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

gdbの操作はある程度は説明しますが,初心者向けに丁寧に説明するわけではありません.CUIの操作に慣れていること前提でガンガン進みます.

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のバッテリーを充電してきてください.コンセントの数が少ないので(会議室内に数箇所程度しかありません!),なるべく電源タップを持参してください.

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

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

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

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

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

  • このコメントは全員が閲覧、すべてのログインユーザーが投稿することができます
wata3
wata3 - (2012/06/15 (金) 11:32)
補欠だったので参加出来るかどうか微妙と思っていましたが、参加上限を24→40名に増やして頂きありがとうございます。
kozos
kozos - (2012/06/21 (木) 22:01)
懇親会の店候補は以下です.
人数少ない場合→坂井がよく行く魚がおいしい店
人数多いばあい→いつもの100円サワーの店
いつもどおり当日の参加希望者を見て,てきとうに決めます.
kanpapa
kanpapa - (2012/06/30 (土) 00:56)
会場にハンカチをお忘れものがありました。ご連絡ください。

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

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