SlideShare a Scribd company logo
1 of 56
Download to read offline
パケット操作の
ライブラリを作った話
すらんく @slankdev
自己紹介 すらんく
(@slankdev)
• http://slankdev.net
• 城倉 弘樹(しろくら ひろき)
• 2015 IPA セキュリティ・キャンプ全国大会卒業生
• 法政大学 理工学部 B2
takahoyoさんの後輩です
• ネットワーク関係が趣味(初心者) CTF (NW問だけ)
• 宗派は Vim Arch C/C++
今日話すこと
• 趣味でパケット操作のライブラリをC++で書いたん
で
その話をすることと、普及活動
• まさかり大歓迎です
そもそもこのライブラリはまさかりで生きているよ
うなものです
パケットを見たこと、ありますか?
パケットを作ったりいじったこと、ありますか?
パケットをつくる
• ネットワークでパケットを理解する上でパケットを
見るだけではだめ
• 作って試していろいろしたい
• 自己環境ならなにやったって大丈夫
パケットを作ろう
• パケットジェネレータとして一番優秀なのは多分
scapy(pythonのモジュール)
イケメンパケリストが説明してくれるのでなにも説
明しません。
• python 便利だしよさそうだけどそれで作っても
scapyあるし
誰も使ってくれない。。
• 普段C使うしCで書くかぁ
libpcap
• http://tcpdump.org
• tcpdump の開発者が開発しているマルチOSサポート
の
パケットキャプチャのライブラリ
• Linux をはじめ様々なOSで簡単にパケットキャプ
チャが作れるから
簡単だし入門にはいいかも
• tcpdump のを開発しやすくするためにlibpcapを作っ
た
tcpdumpの機能追加で作成
超カッケーじゃんそういうの
• 今回のライブラリはそんな厨二心で始まりました
• 情報関係のとっかかりは厨二心でいいと考えていま
す
• このライブラリも一応簡単なプログラムの機能追加
のために作成
って建前で作り始めました
libpgen ってのを開発しました
• http://libpgen.org
• ソースコードはGitHubで管理しています
• 現在はEthernet, ARP, IP, ICMP, TCP, UDP, DNS,
DHCP, ar_droneに対応
• 開発は現在進行中です (協力してくれるひと募集して
ます)
• scapyに負けたくない
自分でパケットを作って送る感動
Wiresharkとかで準備して
こんな感じに作って送って
見れた時の感動
想像を絶する感動 !!!
巣立っていった我が子が帰ってくるような特別な気持ち
巣立っていった我が子が帰ってくるような特別な気持ち
別に子供とかまだいません
設計段階 その⓪
• 自由にパケットを作ることだけできればいい
(ユーザはプロトコルの知識以外なにもなくてもで
きれば最高)
• エンディアンとか気にしないでパケット作れるよう
にしたい
• ソケット開いてオプションとか設定したりとか考え
たくない
• アドレスとかもいつも同じ作業だしめんどくさい
• とりあえずARP好きだからEthernetとARPだけ実装
しよっと
この辺は全然実用段階でないので説明をはしょります
完成したもの その⓪
• ARP送れる。わー。。。終わり
• まったく使えない。。機能すくなすぎ。
• まあこれでも初心者なので僕自身は勉強になりまし
た
• SocketのPF_PACKETでソケットを開いて実装
(Linuxのみ対応)
設計段階①
• いろんなプロトコルに対応させたいけどどうしたら
効率良いか
下位のプロトコルの操作をどうすればいいか
ちょっとだけオブジェクトしこーにするか
• 将来的に他のOSでもうごかしたい。。
OSごとに違う実装になるところだけ完全に切り離す
• パケット編集のインターフェースを直感的にしたい
アーキテクチャ図
• こんな感じ設計しました
• パケットクラス
パケット操作を担当
• アドレスクラス
IP,MACアドレス操作を担当
• Netutils
OSごとの違いを吸収
OS
Netutils
パケットクラス
アドレスクラス
アドレスクラス
• IPアドレスとMACアドレスの操作を簡単にできるよ
うにする
• ネットワーク内をスキャンとかする時はIPアドレス
の大小表現とかも必要だからそういう演算子も定義
しといた
パケットクラス
• 直感的なインターフェースからパケットのバイナリ
を生成
パケットインスタンス名.プロトコル.要素名
でパケットの各要素にアクセスできるようにした。
• 以下はARPの例 (これも普通じゃないパケットの状
態ですが。。。)
後ほどこのクラスの説明を少し
Netutils
• ネットワークプログラミング関連の作業はすべてこ
いつに任せよう。ネットワーク関連の処理以外はほ
とんど高度(低レベル)なことしないのでこの部分だけ
完全にきりはなしました
• 表面的には今のとこと出てこないので、ここの説明
は省略。
• 詳しくは
http://libpgen.org/documentation/components/netut
ils/ を参照
• もはや現在はネットワークユーティリティーな状態
でないので、近々名前変えよう
完成したもの①
• 機能を綺麗に分担できています。
• アドレスクラス、パケットクラス、Netutilsを
別々にインストールとかできたらいいかも
パケット送信はとりあえずできたし
あとはたくさんのプロトコルに対応させていけばいい
パケット送信はとりあえずできたし
あとはたくさんのプロトコルに対応させていけばいい
それだけじゃ大して面白くないしつまらない
よく考えたらscapyに勝る機能が何もない
設計段階②
• 既存のパケットのバイナリを読み込ませてパケット
クラスにパース
できるようにしよう
• ならパケットの受信機能も簡単に実装するか
• pcapファイル読み込みたい
TDUCTFに参加させてもらった時に発案
pcapファイル読み込んで送ったり、受信した特定の
パケットだけpcapファイルに保存したりとできたら
かっちょいいかも
• 送受信を行う上でやはりディスクリタみたいなのが
あると便利
パケットをキャストする機能を
追加
• 以前までは
パケットクラス-->バイナリ
の一方向のみの変換だった
• パケットクラスにcastメンバ
関数を追加して
バイナリをパースして、パ
ケットクラスの形に変換して、
解析を簡単にできるようにし
た
aabb ccdd eeff 0011 2233 4455 0806 0001
0800 0604 0001 0011 2233 4455 c0a8 0004
aabb ccdd eeff c0a8 0001
パケットクラス
cast関数の問題点
• 例えばARPパケットのバイナリをDHCPとしてcast
しようとすると危険
→ あらかじめパケットの種類を簡単に調べときたい
• ついでにIPアドレスとかMACアドレスとかポート番
号とかで簡単に調べられる機能とかもあるといい
unknownパケット
• unknown型のパケットって思ってください
• isUDP とか isICMP とか
L4までの基本情報をまとめて解析してくれる特別な
パケットクラス
• ポート番号とかでいろいろ絞り込めるようにしまし
た。
unknownパケット
• こんな感じにパケットがだいたいどんな感じのパケットか、
とか送信元とかが簡単に調べられる
• ポート番号が53か? とかで調べたい時は
bool res = インスタンス名.portis(53);
とかで調べられる。
簡易的なパケット受信機能
• sniff関数をNetutilsに追加
• void sniff(pgen_t*, (bool)(const
u_char*, int));
• パケットを受信待機して受信し
たら、コールバック関数を呼ぶ。
• まあこれはなにも工夫もないし
デバッグしやすくするために追
加しただけ
sniff 関数
recv packet!!
コールバック関数
aabb ccdd eeff 0011
2233 4455 0806 0001
0800 0604 0001 0011
2233 4455 c0a8 0004
aabb ccdd eeff c0a8
0001
length is 42 bytes
こっちでパケット解析とかをする
pcapファイルも読み込みたい
• せっかくバイナリのパース機能
追加したならpcapファイルを読
み込んでそこからパケットを受
信したいってのが漢意気っても
んよ
• みんな大好きpcapファイル読め
たらウケいいかも
• pcapngにも今度対応させます
ngに対応してるパケット解析
ツール
結構少ないから案外いいかも
なんてことになるかもしれない….
pcapファイルも読み込みたい
• ファイルポインタで基本どうり
にファイル開いてパケットを書
き込む時はパケットの先頭に
pcapパケットヘッダを追加する
だけ
• この機能が一番簡単に実装でき
たからL2で送信する機能より先
に取りかかっとけば簡単だし作
業加速したかも
magic	
  number
major	
  version minor	
  version
time	
  zorne
sigfigs
snaplen
link	
  type
pcap file header
timestamp
caplen
len
pcap packet header
pgenディスクリプタ使いたい
• 今までのパケット送信部分はユーザがソケットを意識しなく
てもいいようにうんこきもい実装になってた。
• 送受信を両方行うプログラムを書くならやっぱりを意識しな
いといけない
• pcapファイルに書き込んだり、ネットワークインター
フェースから送信したりいろいろあるからまとめて管理でき
るようにした
pgenディスクリプタ使いたい
pgen
ディスクリプタ
pgen_open 関数
or
pgen_open_offline関数
開きたい
インタフェースや
ファイル名など
ディスクリプタの種類によって入出力先を指定できる
上の例ではtest.pcapへの書き込み専用モードで
パケットはtest.pcapに書き込まれる
完成したもの②
• バイナリを解析して、パケットクラスで読み取れる
ようになった
• 受信したパケットを改変して別のインターフェース
から送信することもできる
• pcapファイルにパケットを書き込んだり、pcapファ
イルひとつづつパケットを読み込んでcast関数で解
析できるようになった。
• pgen_tって感じでディスクリプタを使えるようにし
た
• この時点で簡単なルータとかブリッジなら即席で作
れます
libpgenで中間者攻撃
のツール作成
• せっかくある程度使える状態にしたので、取りあえ
ず好きなARPで実験的なのしました。
• 超適当にはしょって作ったARPスプーフィングで
MITMアタックするプログラムです
• http://slankdev.net/blog/2015/08/30/libpgen-arp-
mitm/
http://wp.me/p5YcBp-7N (短縮URL)
設計段階④ 現在
• 他のOSに対応させたい
• 拡張しやすくしたい
• 全体が正しいい動作をするのか自動でチェックする
機能追加
• パケット解析ツールだしネットワーク以外のパケッ
トも見たくね?
某鮫ツールはいろいろ読めるし
他のOSに対応させたい
• とりあえず一番の愛機がMBPなので、OSXに対応さ
せました。
友達がMac使ってる人結構いるし、対応させたら
使ってもらえるし
• OSXはBSD系なのでBSDに対応させるコードを追加
すればいいだけ
• BSDはBPFってのでリンクレイヤープログラミング
をすればいい
• LinuxのPF_PACKETよりなんか分かりやすいから
こっちの方が好きだったり
他のOSに対応させたい
• OS依存している関数のみを#ifdef __linuxとかで囲むだ
け
• あとはエンディアンに気をつけているかを全体的に
チェックするだけ
• 一番ひっかったのはインストール場所。(まだ調べて
ない)OSXは/usr/local/includeとか/usr/includeにイン
クルードパス張ってなくて(怒)
xcode.appの中にあるヘッダとかからインクルードして
る変態
• 知ってる人誰か教えて下さい ( > < )
拡張しやすくしたい
• 現在開発中です
• ユーザが簡単にプロトコルの追加とかできるように
したかった。
一人でこんな作業いつまでもやってらんない
• プロトコル解析のコードはコアな部分から独立させ
よう
• チーム開発しやすいようにしたい
全体が正しい動作をしてるか確
かめる
• 対応させてるプロトコルが増えるとその分テストが大変に
なるので、自動化したい
• これも今実装中なんですけど、これがうまくいけばいろい
ろ楽になる。
アドレスクラスは低機能だし、少ないからいいとして、
パケットクラスの動作チェックを自動化したい
• 機能追加したり、リファクタリングしたりしたあと全体が
うまく動くか
確かめていたけど、毎回やってたらきりがない。。
• どうやってうまく動いているか確認しよう。。
• 各コンポーネントごとにチェックしていった方が良さそう
全体が正しい動作をしてるか確
かめる
• パケットクラスでチェック
が必要なのはバイナリ解析
部分と生成部分
• サンプルパケットを幾つか
読ませて、そこから再度バ
イナリを生成して元のパ
ケットとdiffをとる.
• この処理はプロトコルごと
に実装しなくていいので、
名案かな
aabb ccdd eeff 0011 2233 4455 0806 0001
0800 0604 0001 0011 2233 4455 c0a8 0004
aabb ccdd eeff c0a8 0001
パケットクラス
aabb ccdd eeff 0011 2233 4455 0806 0001
0800 0604 0001 0011 2533 4455 c0a8 0004
aabb ccdd eeff c0a8 0001
キャスト
再度バイナリ生成
ここが同じか
確かめる
ネットワーク以外のパケット
• 開発初期と比べていろいろ拡張しやすくなってきた
し、ネットワーク以外のパケットも操作できたらい
いかも。
• USBとか、HDMIとかCTFの作問もできるかも
• あくまで、いろいろな勉強のためにそういうことし
てる段階なので、社会貢献できていない。
• USB機器とかのファジングツールとか将来的にでき
たらタノシイカモネ
完成したもの ④ (まだ途中で
す)
• 一応BSD用のコードを追加できた、うまく動いてい
る?
• 拡張しやすくする構造はwiresharkを参考にしました
• まだ現在製作中です
まとめ、感想 ①
• ソースを読経する力がすこーしだけついたかなって
感じです。
• 始めた時は/usr/include ? ナニソレオイシイノ だっ
たので
• デバッグ力も少し
• プロトコルの知識もつきました
• OSのプロトコル実装の手抜きとかも見れるのが楽し
い
BSDのARPとか、LinuxのICMPとか…
まとめ、感想 ②
• だいたい日本一の学生でパケットに詳しい鮫アイコ
ンの人がscapyの普及活動を行っている時点でこのま
までは到底敵わないではないか!
• scapyにない機能とかいろいろ追加したりいろいろ
やっていつかscapyと比べられるくらいのパケット解
析ツールにしていきたいです
• 開発に時間がかかりすぎてる。
• http://libpgen.org にドキュメントとかも書いておい
ているので、一度見て文句などを言ってくれると元
気がでます。
まとめ、感想 ③
• チーム開発とかやったことないから友達見つけて
ちょっとずつ協力してもらいたいと感じました
• 社会貢献してない
libpgenについて
• http://libpgen.org で詳細を説明してます。
各プロトコルのパケットクラスの資料がまだ完成し
ていないのでもう少し待ってください。。
最後に一言
• このライブラリは現在、一人で開発しているのです
が、
セキュリティキャンプ講師の方、 2015年度全国大会
卒業生の方 をはじめ、
たくさんの方にアイディアや助言をいただいており
ます。
本当にありがとうございます。 今後とも宜しくお願
いします。
aabb ccdd eeff 0011 2233 4455 0800 4500
2800 0001 0000 4006 b9a2 c0a8 b302 c0a8
6501 3039 3039 0000 0000 0000 0000 5001
2000 961c 0000
aabb ccdd eeff 0011 2233 4455 0800 4500
2800 0001 0000 4006 b9a2 c0a8 b302 c0a8
6501 3039 3039 0000 0000 0000 0000 5001
2000 961c 0000
ヒント
aabb ccdd eeff 0011 2233 4455 0800 4500
2800 0001 0000 4006 b9a2 c0a8 b302 c0a8
6501 3039 3039 0000 0000 0000 0000 5001
2000 961c 0000
TCP FIN パケットです.
ありがとうございました

More Related Content

What's hot

Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29ryuz88
 
Metasploitでペネトレーションテスト
MetasploitでペネトレーションテストMetasploitでペネトレーションテスト
Metasploitでペネトレーションテストsuper_a1ice
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~NTT Communications Technology Development
 
業務で使うIRC
業務で使うIRC業務で使うIRC
業務で使うIRConozaty
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 
フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編abend_cve_9999_0001
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
SIEMやログ監査で重要な事
SIEMやログ監査で重要な事SIEMやログ監査で重要な事
SIEMやログ監査で重要な事hogehuga
 
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)Ayako_Hasegawa
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケットTakaaki Hoyo
 
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達Yusuke Wada
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイcvpaper. challenge
 
LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説LINE Corporation
 
ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?Yuya Rin
 
第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料直久 住川
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界Preferred Networks
 
オントロジーとは?
オントロジーとは?オントロジーとは?
オントロジーとは?Kouji Kozaki
 

What's hot (20)

Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
 
Metasploitでペネトレーションテスト
MetasploitでペネトレーションテストMetasploitでペネトレーションテスト
Metasploitでペネトレーションテスト
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
業務で使うIRC
業務で使うIRC業務で使うIRC
業務で使うIRC
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
SIEMやログ監査で重要な事
SIEMやログ監査で重要な事SIEMやログ監査で重要な事
SIEMやログ監査で重要な事
 
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケット
 
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
 
LLVM最適化のこつ
LLVM最適化のこつLLVM最適化のこつ
LLVM最適化のこつ
 
LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説
 
ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?ネットワークエンジニアはどこでウデマエをみがくのか?
ネットワークエンジニアはどこでウデマエをみがくのか?
 
第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
オントロジーとは?
オントロジーとは?オントロジーとは?
オントロジーとは?
 

Viewers also liked

大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」Shunsuke Watanabe
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようYuusuke Takeuchi
 
Java script初心者のためのnode.jsで学ぶドローン制御プログラミング
Java script初心者のためのnode.jsで学ぶドローン制御プログラミングJava script初心者のためのnode.jsで学ぶドローン制御プログラミング
Java script初心者のためのnode.jsで学ぶドローン制御プログラミング健一 茂木
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築AimingStudy
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Kohei Asai
 
Node.js Tutorial at Hiroshima
Node.js Tutorial at HiroshimaNode.js Tutorial at Hiroshima
Node.js Tutorial at HiroshimaYoshihiro Iwanaga
 
Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2Nobuhiro Nakashima
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話leverages_event
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Isamu Suzuki
 
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築Tomocha Potter
 
俺の仕事がこんなに楽しいわけが無い・公開版(初出:2010/12/20 株式会社ECナビ会社説明会@IAMAS)
俺の仕事がこんなに楽しいわけが無い・公開版(初出:2010/12/20 株式会社ECナビ会社説明会@IAMAS)俺の仕事がこんなに楽しいわけが無い・公開版(初出:2010/12/20 株式会社ECナビ会社説明会@IAMAS)
俺の仕事がこんなに楽しいわけが無い・公開版(初出:2010/12/20 株式会社ECナビ会社説明会@IAMAS)bash0C7
 
ENJOY H@RMONY!!とボーダーbot
ENJOY H@RMONY!!とボーダーbotENJOY H@RMONY!!とボーダーbot
ENJOY H@RMONY!!とボーダーbottreby
 
「PUSH 大阪」の紹介
「PUSH 大阪」の紹介「PUSH 大阪」の紹介
「PUSH 大阪」の紹介Kouji Kozaki
 
東方紅魔郷AI
東方紅魔郷AI東方紅魔郷AI
東方紅魔郷AIaki33524
 

Viewers also liked (20)

Hello, Node.js
Hello, Node.jsHello, Node.js
Hello, Node.js
 
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
 
Java script初心者のためのnode.jsで学ぶドローン制御プログラミング
Java script初心者のためのnode.jsで学ぶドローン制御プログラミングJava script初心者のためのnode.jsで学ぶドローン制御プログラミング
Java script初心者のためのnode.jsで学ぶドローン制御プログラミング
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
 
Node.js Hands-On
Node.js Hands-OnNode.js Hands-On
Node.js Hands-On
 
JUNOS: OSPF and BGP
JUNOS: OSPF and BGPJUNOS: OSPF and BGP
JUNOS: OSPF and BGP
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
 
Node.js Tutorial at Hiroshima
Node.js Tutorial at HiroshimaNode.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
 
Nodeについて
NodeについてNodeについて
Nodeについて
 
Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
 
Node.js入門
Node.js入門Node.js入門
Node.js入門
 
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
 
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築
 
俺の仕事がこんなに楽しいわけが無い・公開版(初出:2010/12/20 株式会社ECナビ会社説明会@IAMAS)
俺の仕事がこんなに楽しいわけが無い・公開版(初出:2010/12/20 株式会社ECナビ会社説明会@IAMAS)俺の仕事がこんなに楽しいわけが無い・公開版(初出:2010/12/20 株式会社ECナビ会社説明会@IAMAS)
俺の仕事がこんなに楽しいわけが無い・公開版(初出:2010/12/20 株式会社ECナビ会社説明会@IAMAS)
 
ENJOY H@RMONY!!とボーダーbot
ENJOY H@RMONY!!とボーダーbotENJOY H@RMONY!!とボーダーbot
ENJOY H@RMONY!!とボーダーbot
 
「PUSH 大阪」の紹介
「PUSH 大阪」の紹介「PUSH 大阪」の紹介
「PUSH 大阪」の紹介
 
東方紅魔郷AI
東方紅魔郷AI東方紅魔郷AI
東方紅魔郷AI
 
過換気症候群
過換気症候群過換気症候群
過換気症候群
 

Similar to libpgenでパケット操作

LibPGEN 1st Step Guide
LibPGEN 1st Step GuideLibPGEN 1st Step Guide
LibPGEN 1st Step Guideslankdev
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話Naoto Koshikawa
 
Portacle : Common Lispのオールインワン開発環境
Portacle : Common Lispのオールインワン開発環境Portacle : Common Lispのオールインワン開発環境
Portacle : Common Lispのオールインワン開発環境Satoshi imai
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情Junichi Ishida
 
せっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜせっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜNaruto TAKAHASHI
 
Make
MakeMake
Makelnial
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景Ryunosuke SATO
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話Masataka Tsukamoto
 
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方サードパーティパッケージの歩き方
サードパーティパッケージの歩き方Takesxi Sximada
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方Yusuke Wada
 
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのかKatsunori Kanda
 
Minio on Raspberry Pi
Minio on Raspberry PiMinio on Raspberry Pi
Minio on Raspberry PiMasafumi Ohta
 
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1Nishida Kansuke
 
Cmsdou oosaka
Cmsdou oosakaCmsdou oosaka
Cmsdou oosakaonagatani
 
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップするRaspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップするKazuko Shikiya
 
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋Masafumi Ohta
 

Similar to libpgenでパケット操作 (20)

LibPGEN 1st Step Guide
LibPGEN 1st Step GuideLibPGEN 1st Step Guide
LibPGEN 1st Step Guide
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話
 
Portacle : Common Lispのオールインワン開発環境
Portacle : Common Lispのオールインワン開発環境Portacle : Common Lispのオールインワン開発環境
Portacle : Common Lispのオールインワン開発環境
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
 
せっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜせっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜ
 
Make
MakeMake
Make
 
コミュニティのある風景
コミュニティのある風景コミュニティのある風景
コミュニティのある風景
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
 
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
Osoljp201204
Osoljp201204Osoljp201204
Osoljp201204
 
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
 
Minio on Raspberry Pi
Minio on Raspberry PiMinio on Raspberry Pi
Minio on Raspberry Pi
 
Hannari python#27
Hannari python#27Hannari python#27
Hannari python#27
 
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
 
ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
Cmsdou oosaka
Cmsdou oosakaCmsdou oosaka
Cmsdou oosaka
 
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップするRaspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
 
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
 
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipenMishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
 

More from slankdev

動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発slankdev
 
Kernel vm13lt
Kernel vm13ltKernel vm13lt
Kernel vm13ltslankdev
 
OSC2017Hokkaido
OSC2017HokkaidoOSC2017Hokkaido
OSC2017Hokkaidoslankdev
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発slankdev
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Coreslankdev
 
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話slankdev
 
Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告slankdev
 
サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会slankdev
 
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料slankdev
 
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会slankdev
 
Seurity Camp Award 2016
Seurity Camp Award 2016 Seurity Camp Award 2016
Seurity Camp Award 2016 slankdev
 
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT slankdev
 
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料slankdev
 
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃slankdev
 

More from slankdev (14)

動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
 
Kernel vm13lt
Kernel vm13ltKernel vm13lt
Kernel vm13lt
 
OSC2017Hokkaido
OSC2017HokkaidoOSC2017Hokkaido
OSC2017Hokkaido
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
 
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話
 
Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告
 
サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会
 
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
 
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
 
Seurity Camp Award 2016
Seurity Camp Award 2016 Seurity Camp Award 2016
Seurity Camp Award 2016
 
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT
 
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
 
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃
 

libpgenでパケット操作

Editor's Notes

  1. ディスクリプタとは。。。この説明ちゃんとするべきか