SAMIT16.11を開催しました
今回のテーマ
Cプログラムをハックしよう!
開催日時
- 2016年11月19日10:00~16:00
- 室蘭工業大学 V棟301号室
今月のSAMITは低レイヤーなテーマでやりました. SAMIT初のセキュリティ講座でした.
今回やったこと
午前
- 環境構築
- Linuxのセキュリティ機構について
- Stack Overflowの実践
- Shell Codeの任意実行
午後
- Format String Attackによるメモリの読み書き
内容
脆弱なCプログラムを書き,実際に自分で書いたプログラムの脆弱性をつく演習をやりました. 今回は攻撃の手口を知りセキュアなプログラムを心がけることを学ぶ講座でした.
午前
最初は受講者の環境構築から始まりました. デバッガーであるPEDAをインストールしました.
Linuxに適用されているセキュリティ機構の説明を聞きつつ, 今回は脆弱性をつく為にそれらのセキュリティ機構を停止させました.
最初の演習ではStack Overflowという脆弱性で変数を書き換える演習を行いました. C言語で脆弱なプログラムを作りPEDAや逆アセンブルを使って 書き込めるアドレスの特定などを行いました. 特定したアドレスを元にStack Overflowを行い変数の書き換えを行いました.
次の演習はShell Codeを実装して,他のプログラムに埋め込む演習を行いました. まずはC言語でShell Codeを実装して,そのC言語版Shell Codeのバイナリを逆アセンブルしました. そのアセンブラを元にヌル文字を含まないアセンブラでShell Codeを実装して午前が終わりました.
懇親会
懇親会は本学の学食を利用しました.
午後
午後は午前に作ったアセンブラ版Shell Codeを埋め込む脆弱なプログラムを作りました. プログラムでバッファオーバーフローを引き起こしShell Codeを実行しました.
最後の演習はFormat String Attackによるメモリの読み書きでした. Format String AttackはC言語のprintf仕様の脆弱性をついた攻撃です. Format String Attackを行うことでprintf関数で変数の値の読み書きを行いました.
SAMIT16.07開催しました
今回のテーマ
LaTeX神,降臨!
開催日時
- 2016年7月17日10:00~16:00
- 室蘭工業大学 V棟301号室
今月も開催当日は雨でした.
しかし,Monthly SAMIT史上最多の受講者数となりました! 参加者の方々ありがとうございました.
今回やったこと
午前
テンプレートを用いたLaTeXによるレポートの書き方
午後
内容
今回はLaTeXによるレポートの書き方をこちらで用意したテンプレートを使って説明しました.
説明に使ったテンプレートは参加者全員に配布して自由に使えるようにしました.
また,午後からはTeX及びLaTeXのマクロを用いた簡単なプログラミングを行いました.
LaTeX環境の構築は今回の講座の範囲外なので
今回はWeb上でLaTeXのソースをコンパイルできるサービスを用いました.
使用したサービスは以下のOverleafというサービスです.
午前
今回は本大学の1年生が授業で初めてのLaTeXによるレポートの提出をする為,
LaTeXによるレポートの書き方を説明しました.
レポートの書き方はこちらで用意したテンプレートを用いて行いました.
主に以下の内容について教えました.
- タイトル
- 節(section,subsection,subsubsection)
- 特殊文字,ロゴ(エスケープシーケンス,LaTeX,TeX)
- 箇条書き(itemize,enumerate,description)
- 数式(equation,align)
- 図表(figure,table,here,includegraphics,tabular,minipage)
- ソースコードの載せ方(breakitemibox,verbatim,minted,listing)
- LaTeXにgnuplotの図を直接記述(gnuplot-lua-tikz)
最初にみなさんにOverleafを紹介しました.
Overleafのセットアップ(platexを使用可能にするなど)をした後,説明をはじめました.
説明だけで,演習はありませんでした.
午前の演習は午後に行うTeXプログラミングの演習をレポートにまとめるという形式にしました.
説明を全て覚えておく必要がないようにテンプレート及び必要なスタイルファイルを配布してそのまま使えるようにしました.
懇親会
今回は初めての日曜日開催だったので学食は定休日でした.
今回は近くのHottoMottoを利用しました.
午後
受講者の対象を広げる為に午後からはTeXプログラミングを行いました.
最初に必要なTeX及びLaTeXのコマンドを解説しました.
解説後はみなさんに実際に演習としてユークリッドの互除法を実装してもらいました.
最終的には
\GCD{50}{5}
というコマンドを使うとPDF上には5と出力されるようなコマンドを実装することがゴールとなっています.
1年生も含めてみんなよく出来ていたのでよかったです.
宣伝
ポスターは今回はR棟演習室前,いくつかの研究室に貼りました. また,本学の食堂に宣伝用の三角柱を置きました.
次回
次回は夏休み明けの開催を予定しています.なので10月の開催になります.
次回は数値解析をやろうと考えています.
SAMIT16.06開催しました
今回のテーマ
ラムダオプショナルストリームアタック!
開催日時
- 2016年6月25日10:00~16:00
- 室蘭工業大学 V棟301号室
開催当日は大雨警報がでるほどの土砂降りでした.
今回から会場はV棟301号室に変更しました.
今回やったこと
- Java8の新機能を使ったプログラミング方法を学びました.
- ラムダ式
- ストリーム
- Optional
内容
今回はJavaのバージョンの中で最新であるJava8で追加された新機能の紹介とその使い方を学びました. Java8で追加された新機能は主に以下の3つです.
- ラムダ式
- ストリーム
- Optional
これらの使い方を演習を交えながら分かりやすく解説しました.
午前
今日は大雨にも関わらず4人講座を受けに来てくれました.午前はラムダ式とストリームの説明をしました. また,それに準ずる便利なメソッドも紹介しました.今回出てきたメソッドは以下の通りです.
- filter
- map
- range
- foreach
- count
- reduce
ラムダ式とストリームを使った演習問題として,GPA方式の成績判定やFizzBazz問題などをやりました.
懇親会
懇親会は御多分に漏れず本学の学食を利用しました.V棟から学食へは外へ出ないと行けないので土砂降りの中移動するのは大変でした.
午後
午後からはOptionalの解説を行いました.今まで煩わしくて危険だった例外処理(try ~ catch)をOptionalに置き換えるとどういいのか, そして,どのように書けばいいのかも解説しました.最後は演習問題を行いました.
宣伝
ポスターは今回はR棟演習室前,いくつかの研究室に貼りました. また,本学の講義である「オブジェクト指向言語」で宣伝をさせてもらいました.
次回
SAMIT16.05開催しましました
開催日時
- 2016年5月28日10:00~13:00
- 室蘭工業大学 大学会館第4集会室
春休みが開けて今年度最初のMonthly SAMITとなりました.詳細は以下のConpasssのページからご覧ください.
今回やったこと
内容
Ubuntu16.04が4月21日に出たので1年生向けにUbuntuのインストール講座を行いました.
講座の名前は「おうちDEリテラシー演習」です.
本学の情報電子工学系学科の講義の一つにUbuntuを扱う演習があります.
これから課題が多くなってくるのでわざわざ演習室に行って課題をやる必要がないように自分のノートパソコンにUbuntu環境を導入するという目的 の元今回の講座を開きました.
午前
講座に来てくれた人は去年から大幅に減少してたった2人でした(泣).
しかし,少人数だったこともあって去年のように足並みが揃わないなどのトラブルが起こりませんでした.
今回はリスクが低い仮想環境でのインストール行いました.仮想環境にはVM Ware Playerを使いました.
インストールは順調に進み,一人は午前中に終わりました.そしてその人はTOEICのテストがあるので午前中に帰って行きました.
懇親会
懇親会は学食の昼ごはんを講師二人(自分含め),参加者一人で食べました.さみしかったので写真はありません(笑)
午後
参加者一人に講師二人付いてLaTeXやemacs,gnuplotの導入を行いました.
ポスター
ポスターは今回はR棟玄関前,演習室前に貼りました.
次回
次回はJava8の内容をやりたいと思っています.
主な内容としてはラムダ式,ストリーム,Optionalについて話そうと思っています.
SAMIT 16.01開催しました
開催日時
- 2016年1月23日10:00~15:00
- 室蘭工業大学 大学会館第4集会室
2016年初めてのSAMITを行いました.イベントの詳細は以下のDoorKeeperのページをご覧ください.
d42c5003dbf3a526460ea8cfbe.doorkeeper.jp
今回やったこと
- ポインタの概念を最初から
- 型を意識しながらポインタを学んだ
内容
今回はイベントで発表する人が何とインフルエンザで来れないということがありました.その連絡が来たのがイベントが始まる1時間半前でした.スライドを作っていたのは発表者だったので僕たちはスライドの内容をさらっと見ただけでイベントが始まりました.一部,発表者にしか意図がわからない部分もありましたがトラブルなくイベントを終えることができました.
午前
午前はC言語に出てくる型のサイズを見てみたり変数がどのようにメモリに配置されるのかを見てみました.また,ポインタとは「変数の先頭アドレス」と「型の情報」を持っているという講義とは全く違う教え方をしました.また,Coffie Breakとしてポインタがなぜ必要なのかを機械語まで落とし込んで説明を行いました.
懇親会
懇親会は学食でお昼ごはんでした.イベント会場と懇親会会場が同じ建物だと移動が楽でいいですね.
午後
午後からはポインタと配列の関係を教えました.配列は「先頭アドレス」と「型の情報」,そして「配列全体のサイズ」を持っているということを教えました.だから配列とポインタは似ているということを教えました.また,「配列型ポインタ」と「配列へのポインタ型」との違いも教えました.その他にも関数ポインタや線形リストなどの発展型の問題を教えました.
第4回SAMIT開催しました
開催日時
- 2015年12月5日10:00~16:00
- 室蘭工業大学 V301号室
11月空いて一ヶ月ぶりのMonthly SAMITを行いました.
イベントの詳細は以下のconnpassのページをご覧ください。
http://connpass.com/event/22287/
今回やったこと
- JavaScriptの文法など基礎的なことを学んだ
- JavaScriptを使って簡易的なタイマーをみんなで作った
内容
今回はイベントを開始する前にちょっとしたトラブルが有りました.
スライドを使って説明する人が集中講義で来れなかったり,会場の鍵を受け取る為の証明書を前日に取るのを忘れてしまったりしました.
よって会場が開けられませんでした.(ちょっとしたトラブルではない)
会場を急遽変更しました.ちょうど会場としていい感じの会議室が開放されていたのでそこを会場にしました.
午前
午前はJavaScriptの文法の基礎を行いました.大きなトラブルもなくみんな足並み揃えて学ぶことが出来ました.ブラウザで動くので楽ですね!
懇親会
懇親会はもちろん学食です.大学会館が会場ではなかったので雪が降っている中頑張って学食までみんなで歩きました. 学食を食べ終わった後は会場の隣の僕の研究室でコーヒーを飲みながらブレイクタイムを過ごしました.
午後
午後はタイマーを作りました.すごく簡単な作りだったのでみんな無事に作ることが出来ました.
まとめ
今回は前途多難なトラブルが続いたものの当日は滞ることなくイベントを開催することができてよかったです.また初の試みとして今回のSAMITはポスターによる宣伝も行いました.ポスターを貼っても参加者が増えなくて不安でしたが前日に参加登録をしてくれた2人がポスターを見ての参加だったのでポスターの意味があってよかったです.
次回もポスターをR棟演習室前に貼るのでぜひ見てみて参加を検討してみてください!
次回
次回のMonthly SAMITは1月9日開催予定です。次回はみんなが理解に苦しむC言語のポインタを懇切丁寧に解説しようと考えています. プログラミング演習の期末テストを控えている一年生の方やC言語のポインタをなんとなくではなく理解したい方などはぜひ参加をしてみてください.
Weekly SAMITの宣伝
第三回SAMIT開催しました
開催日時
- 2015年10月24日10:00~16:00
- 室蘭工業大学 大学会館第2・3集会室
夏休み挟んで後期始まってからの初めてのMonthly SAMITを行いました。第三回です。
イベントの詳細は以下のconnpassのページをご覧ください。
http://connpass.com/event/21723/
今回やったこと
内容
今回は雨が降っていたからか参加人数が少なかったです残念... さて、今回は午前は講義、午後は演習という形で勉強会を進めていきました。
午前
午前はGitとは何かとGithubとGithub pagesの説明を行いました。全員でGithub pagesのアカウントを作り htmlを簡単に直書きしてコミットを行ったうえで自分のスマートフォンなどでアクセスしてみたりなどいろいろ試してみました。
懇親会
さて、今回もありました。本学の学食での懇親会! 今回は人数が少なくてただの友達で昼飯来た感じみたいになってしまいましたが「懇親会」です!
午後
午後は3人1組または2人1組でGithub pagesによるWebページの作成を行いました。完成したサイトを全員でアクセスしてサイト作成者が説明をするという形で発表会が行われました。
まとめ
Gitによる共同開発を実感させるために手頃なGithub pagesは大きな効果だったと思います。HTMLの直書きは大変ではあったけどみんなきちんとそれなりのサイトができていたのでよかったです。中にはネタに走っている人もいたり(?)
次回
次回のMonthly SAMITは11月開催予定です。次回はWeb系のことをやろうと思います。次回が今年最後のMonthly SAMITになると思うので皆さんぜひ参加してください!
宣伝
毎週金曜日の16:15~17:45の間にWeekly SAMIT なるものをやっています。こちらもみなさんぜひ来てください。3週間周期くらいでやる内容が変わるという浅く広くやっています。