Soumettre la recherche
Mettre en ligne
OSC 2016 Hokkaido セミナー資料
•
0 j'aime
•
736 vues
slankdev
Suivre
オープンソースカンファレンス2016北海道で「セキュリティ・キャンプ同窓会」として成果報告を行った時のセミナー資料です。
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 50
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会
slankdev
Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告
slankdev
Seurity Camp Award 2016
Seurity Camp Award 2016
slankdev
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
slankdev
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
slankdev
libpgenでパケット操作
libpgenでパケット操作
slankdev
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT
slankdev
Recommandé
サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会
slankdev
Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告
slankdev
Seurity Camp Award 2016
Seurity Camp Award 2016
slankdev
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
slankdev
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
slankdev
libpgenでパケット操作
libpgenでパケット操作
slankdev
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT
slankdev
Kernel vm13lt
Kernel vm13lt
slankdev
OSC2017Hokkaido
OSC2017Hokkaido
slankdev
CSRを自動生成する!
CSRを自動生成する!
Taichi Ishitani
20090124shibuya Trac
20090124shibuya Trac
Kazuya Hirobe
Mishimasyk 3 20140705
Mishimasyk 3 20140705
Takayuki Serizawa
Rdkitの紹介
Rdkitの紹介
Takayuki Serizawa
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
Takayuki Serizawa
RgGen ご紹介
RgGen ご紹介
Taichi Ishitani
Kotlin と Rxjava2
Kotlin と Rxjava2
Recruit Lifestyle Co., Ltd.
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Jun Omae
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
Kenichiro MATOHARA
Windows Windows上に作るチーム開発環境
Windows Windows上に作るチーム開発環境
Tadahiro Ishisaka
最近のrubyのインストール方法
最近のrubyのインストール方法
Kazuhiro Nishiyama
Turnip
Turnip
Yoichi Toyota
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Tetsuyuki Kobayashi
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
Yuji Takayama
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
hiroshi oshiba
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
Frank-afcproxy
Frank-afcproxy
Toshiyuki Terashita
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
自分的pkgsrcの課題
自分的pkgsrcの課題
Ryo ONODERA
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
Yasuhiro Yoshimura
Contenu connexe
Tendances
Kernel vm13lt
Kernel vm13lt
slankdev
OSC2017Hokkaido
OSC2017Hokkaido
slankdev
CSRを自動生成する!
CSRを自動生成する!
Taichi Ishitani
20090124shibuya Trac
20090124shibuya Trac
Kazuya Hirobe
Mishimasyk 3 20140705
Mishimasyk 3 20140705
Takayuki Serizawa
Rdkitの紹介
Rdkitの紹介
Takayuki Serizawa
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
Takayuki Serizawa
RgGen ご紹介
RgGen ご紹介
Taichi Ishitani
Kotlin と Rxjava2
Kotlin と Rxjava2
Recruit Lifestyle Co., Ltd.
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Jun Omae
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
Kenichiro MATOHARA
Windows Windows上に作るチーム開発環境
Windows Windows上に作るチーム開発環境
Tadahiro Ishisaka
最近のrubyのインストール方法
最近のrubyのインストール方法
Kazuhiro Nishiyama
Turnip
Turnip
Yoichi Toyota
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Tetsuyuki Kobayashi
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
Yuji Takayama
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
hiroshi oshiba
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
Frank-afcproxy
Frank-afcproxy
Toshiyuki Terashita
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
Tendances
(20)
Kernel vm13lt
Kernel vm13lt
OSC2017Hokkaido
OSC2017Hokkaido
CSRを自動生成する!
CSRを自動生成する!
20090124shibuya Trac
20090124shibuya Trac
Mishimasyk 3 20140705
Mishimasyk 3 20140705
Rdkitの紹介
Rdkitの紹介
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
RgGen ご紹介
RgGen ご紹介
Kotlin と Rxjava2
Kotlin と Rxjava2
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
Windows Windows上に作るチーム開発環境
Windows Windows上に作るチーム開発環境
最近のrubyのインストール方法
最近のrubyのインストール方法
Turnip
Turnip
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Frank-afcproxy
Frank-afcproxy
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
Similaire à OSC 2016 Hokkaido セミナー資料
自分的pkgsrcの課題
自分的pkgsrcの課題
Ryo ONODERA
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
Yasuhiro Yoshimura
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
Yasuhiro Yoshimura
OpenStack Now!
OpenStack Now!
Hideki Saito
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
統計解析ソフトR
統計解析ソフトR
Yoshitomo Akimoto
超簡単! PythonをWindows Serverにインストール
超簡単! PythonをWindows Serverにインストール
Shin Tanigawa
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Shinya Takamaeda-Y
LibreOfficeとモバイルデバイス
LibreOfficeとモバイルデバイス
Masataka Kondo
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Katsuhiro Morishita
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
IKEv2-VPN PyHackCon2023
IKEv2-VPN PyHackCon2023
Takayuki Shimizukawa
210728 mpy
210728 mpy
Takuya Nishimoto
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
Makoto Takizawa
PYNQ祭り
PYNQ祭り
Mr. Vengineer
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Takayuki Shimizukawa
OCaml でデータ分析
OCaml でデータ分析
Akinori Abe
MenohにおけるC++実装 / C API / C++API
MenohにおけるC++実装 / C API / C++API
Shintarou Okada
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
mganeko
Similaire à OSC 2016 Hokkaido セミナー資料
(20)
自分的pkgsrcの課題
自分的pkgsrcの課題
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
OpenStack Now!
OpenStack Now!
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
統計解析ソフトR
統計解析ソフトR
超簡単! PythonをWindows Serverにインストール
超簡単! PythonをWindows Serverにインストール
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
LibreOfficeとモバイルデバイス
LibreOfficeとモバイルデバイス
How to run P4 BMv2
How to run P4 BMv2
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
IKEv2-VPN PyHackCon2023
IKEv2-VPN PyHackCon2023
210728 mpy
210728 mpy
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
PYNQ祭り
PYNQ祭り
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
OCaml でデータ分析
OCaml でデータ分析
MenohにおけるC++実装 / C API / C++API
MenohにおけるC++実装 / C API / C++API
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
OSC 2016 Hokkaido セミナー資料
1.
パケット解析ライブラリ LibPGEN を使用した新たなプロトコルに対する パケット解析 @slankdev セキュリティ・キャンプ2015修了生 6/18/16 osc2016do 1
2.
自己紹介 o すらんく o 理工学部
3年生 o Twitter: @slankdev o Github: slankdev o セキュリティ・キャンプ {2015修了,2016チューター} o パケットとOSと開発を愛する oゆる〜い感じに楽しくやらせていただきます oどうぞお付き合いお願いいたします m(. .)m 6/18/16 osc2016do 2
3.
Agenda 1. パケット解析の課題 2. LibPGENの紹介 3.
LibPGENを使用して 新たなプロトコルを解析するプログラムを実装 oLinux環境がある方はデモの作業を一緒にやりましょう! 以下URLを参照ください! ohttp://blog.slankdev.net/2016/06/17/osc2016do 6/18/16 osc2016do 3
4.
既存の手法 o WiresharkやNetwork Minerでの解析 6/18/16 osc2016do
4
5.
Wiresharkはすごい o メリット ◦ プロトコルアナライザとして最強 ◦
異常検知までやってくれる ◦ 多少知識なくても使える o デメリットというか要望… ? ◦ dissectorやプラグイン ◦ Wiresharkの内部理解 6/18/16 osc2016do 5
6.
異常検知例 6/18/16 osc2016do 6
7.
でもこんなことやりたい o 便利だけど、もっとこうしてほしいってことがあった o決まったしょりとか、ログ出力とか oプログラミングしたい o何かに頼るより自分でやったほうがかっこいいじゃん! 6/18/16 osc2016do
7
8.
ここから生まれた課題 oプログラミング言語からパケット解析をしよう o新たなプロトコルに迅速に対応できるように 6/18/16 osc2016do 8
9.
パケット解析をプログラミング…? o 例えば以下のようなコード oARPリプライだけ情報表示したいときとか… 6/18/16 osc2016do
9
10.
新たなプトロコルに迅速に対応…? oツールの対応してないプロトコルに遭遇したら… 6/18/16 osc2016do 10 おう、このパケットは? どうなってんの? 無理でシャーク つらいでシャーク
11.
解決策の一例 o 今回はパケット解析ライブラリの 使用でまかなうことにします o 先ほどの課題の解決策の実装を紹介します 6/18/16
osc2016do 11
12.
LibPGEN oパケット解析支援ライブラリ oパケットに関する多数の仕事を簡単にする o拡張可能 oC++11, Linux, BSDで動作 oサイボウズ・ラボユース5thにて開発 6/18/16 osc2016do 12
13.
LibPGENの設計 6/18/16 osc2016do 13
14.
LibPGENの設定 6/18/16 osc2016do 14 o
大きく分けて三つのコンポーネントに分かれてます • IO • データをネットワークインターフェースやpcap, pcapngファイルに 入出力するクラス群 • pgen::net_stream, pgen::pcap_stream …etc • Core • パケットやアドレスのバイナリを解析したり、変更したりする部分 • pgen::ethernet, pgen::ip, …etc • Module • Core, IOを使って書かれたモジュール群 • めんどくさい作業をまとめてやってくれるクラスや関数群 • 説明は省略
15.
パケットクラス in COREコンポーネント 6/18/16 osc2016do
15 o使用用途 ◦ ゼロからパケットのバイナリを 組み立て ◦ 既存のバイナリを変更 ◦ 長さを変えたり途中に追加な ど柔軟に o設計部分は後述 Packet Class ffff ffff ffff 703e aceb 27a5 0806 0001 0800 0604 0001 703e aceb 27a5 0000 0000 0000 0000 0000 0ad2 7c7e 5b2a 0100 2d1a ac19 1bff ffff 0000 0000 0000 aaaa aaaa aaaa 703e aceb 27a5 0806 0001 0800 0604 0002 703e aceb 27a5 0000 0000 0000 0000 0000 0ad2 7c7e 5b2a 0100 2d1a ac19 1bff ffff 0000 0000 0000 4920 6c6f 7665 2070 6163 6b65 742e
16.
パケットクラスの継承関係 6/18/16 osc2016do 16
17.
ストリームクラス 6/18/16 osc2016do 17 o幾つかのインターフェースを触れる ◦
ネットワークインターフェース ◦ pcapファイル ◦ pcapngファイル も完全対応ではない (最新版は知りません) oOSごとの実装の違いを吸収
18.
ここまでのまとめ oパケット解析の課題の話 oパケット解析のライブラリを設計実装した ◦ プログラミング言語からパケット解析ができる ◦ 新たなプロトコルの解析が簡単に行える 6/18/16
osc2016do 18
19.
デモ内容 oLibPGENを使用して 新たなプロトコルに対応できるように拡張 o簡単な解析スクリプトを実装 6/18/16 osc2016do 19
20.
TMP (Test Message Protocol) o 今回のデモのために定義した仮のプロトコル o クライアント->サーバの単方向メッセージ通信 oプロトコルの使用用途とかは特に考えてません 6/18/16
osc2016do 20 Hello World!
21.
TMP (Test Message Protocol) oデモで使用するプロトコル oメッセージ用プロトコル oIdentification: ユーザごとのid oseq num : シーケンス番号 omsg
len : メッセージ長 omsg : メッセージ 6/18/16 osc2016do 21
22.
通信環境 6/18/16 osc2016do 22
23.
今日のデモ内容 o2台のクライアントでサーバと通信 oサーバの別プロセスでパケットをキャプチャして解析 各ユーザの発言を時間ごとにまとめてlogファイルに出力 oTMPサーバ, クライアントは独立してC++で実装 6/18/16 osc2016do 23
24.
解析のための手順 1. TMP用のパケットクラスの実装 2. 解析用スクリプトの実装 6/18/16
osc2016do 24
25.
TMPの解析をする前に oTMPパケットクラスを実装する前に パケットクラスの構造を少し説明します 6/18/16 osc2016do 25
26.
LibPGENの設計 6/18/16 osc2016do 26
27.
クラス設計 oパケットクラス ◦ プロトコルごとのヘッダのインスタンスを持つ (has-a) oヘッダクラス ◦
ヘッダの要素を持つ (UDPヘッダならsrc_portとかdst_portとか) 6/18/16 osc2016do 27 Packet Class Header Class Header Class Header Element Header Element Header Element Header Class
28.
新プロトコルのパケットクラスの実装 o拡張するユーザは新たな ヘッダクラスを実装 oそのヘッダのバイナリ解析 のコードのみを追加 6/18/16 osc2016do 28 新
Packet Class 既存のHeader Class 新 Header Class 既存のHeader Class
29.
パケットクラスの継承関係 6/18/16 osc2016do 29 pgen::packet pgen::ethernet pgen::ipv6pgen::tcppgen::udp
pgen::icmp pgen::ippgen::arp
30.
パケットクラスの継承関係 6/18/16 osc2016do 30 pgen::packet pgen::ethernet pgen::ipv6pgen::tcppgen::udp
pgen::icmp pgen::ippgen::arp pgen::XXX
31.
ヘッダクラスの継承関係 6/18/16 osc2016do 31 pgen::header pgen::ethernet _header pgen::ipv6_headerpgen::tcp_headerpgen::udp_header
pgen::icmp_header pgen::ip_headerpgen::arp_header
32.
ヘッダクラスの継承関係 6/18/16 osc2016do 32 pgen::header pgen::ethernet _header pgen::ipv6_headerpgen::tcp_headerpgen::udp_header
pgen::icmp_header pgen::ip_headerpgen::arp_header pgen::XXX_header
33.
ヘッダクラスのメンバ関数 oヘッダクラスのメンバ関数 (一部) ◦ virtual write(buffer, bufferlen) = 0 ヘッダのバイナリを書き込む ◦
virtual read(buffer, bufferlen) = 0 ヘッダのバイナリを読み込む ◦ virtual size_t length() = 0 ヘッダの長さを返す 6/18/16 osc2016do 33
34.
ヘッダクラスとパケットクラスの関係 oパケットの バイナリ解析を行う場合 oanalyze()は 各ヘッダクラス::read()を 上から呼び出して解析 oバイナリ生成も同じ構造 6/18/16 osc2016do 34 Ether IP UDP Trailer ethヘッダ::read() ipヘッダ::read() udpヘッダ::read() udpパケット ::analyze()
35.
ヘッダクラスとパケットクラスの関係 oパケットの バイナリ解析を行う場合 oanalyze()は 各ヘッダクラス::read()を 上から呼び出して解析 oバイナリ生成も同じ構造 6/18/16 osc2016do 35 Ether IP UDP Trailer ethヘッダ::read() ipヘッダ::read() udpヘッダ::read() udpパケット ::analyze()
36.
新プロトコルでパケットクラスの実装 6/18/16 osc2016do 36 Ether IP UDP Trailer ethヘッダ::read() ipヘッダ::read() udpヘッダ::read() 新プロトコル パケット ::analyze() 新 プロト コル 新プロトコル ::read() 拡張をする開発者はヘッダクラスの 実装のみを気に掛ければいい
37.
UDPパケットクラスの構造 6/18/16 osc2016do 37 例えばUDPパケットクラスを実装する場合
38.
UDPパケットクラスの構造 6/18/16 osc2016do 38 決まり文句だけの 関数で1~4行程度 例えばUDPパケットクラスを実装する場合
39.
UDPパケットクラスの構造 6/18/16 osc2016do 39 決まり文句だけの 関数で1~4行程度 ここのみを新たに 実装すればいい 例えばUDPパケットクラスを実装する場合
40.
UDPヘッダクラスの構造 6/18/16 osc2016do 40 例えばUDPパケットクラスを実装する場合
41.
UDPヘッダクラスの構造 6/18/16 osc2016do 41 UDPヘッダの要素 ヘッダ長の 最大値と最小値 例えばUDPパケットクラスを実装する場合
42.
UDPヘッダクラスの構造 6/18/16 osc2016do 42 決まり文句だけの 関数で1~4行程度 バイナリ解析など のコードでここだけ しっかり実装 UDPはチェックサム があるので、それ用の関数 例えばUDPパケットクラスを実装する場合
43.
TMPパケット解析までの道のり… 1. LibPGENのインストール 2. TMP解析環境の実装 3.
Let’s Analyze Packet! 6/18/16 osc2016do 43
44.
LibPGENのインストール 1. 標準の開発環境の構築 2. LibPGENのソースコード入手 $ git
clone http://github.com/slankdev/libpgen.git 3. LibPGENのコンパイル、インストール $ cd libpgen $ make && sudo make install 4. Hello Worldしよう $ cd sample/send_packet $ make $ ./a.out 6/18/16 osc2016do 44
45.
oここからは 大変なのでコードを見ましょう ohttp://blog.slankdev.net/2016/06/17/osc2016do クラス図 6/18/16 osc2016do 45 tmp pgen::header pgen::packet tmp_header is-a is-a has-a
46.
どうですか? o楽しくパケットが解析できたと思います o (きっと私だけではないはず….!!) 6/18/16 osc2016do
46
47.
今後の展望 o高速化 -> 最大の課題 o他のAPIに頼るところと頼らないところをしっかりとする ◦ 現在は何にも頼らず実装 ◦
でも現実を見ると高速IOのAPIがある 6/18/16 osc2016do 47
48.
まとめ oパケット解析のライブラリを実装しました oプログラミング言語からパケット解析を行う o新たなプロトコルに迅速に対応可能 oより楽しくパケット解析できます 6/18/16 osc2016do 48
49.
最後に… o このライブラリは現在CybozuLab株式会社様の「サイボウ ズ・ラボユース」というプロジェクトで開発を支援していただ いています。 o セキュリティ・キャンプ関係者の方々の意見なども参考に させていただいています。 o
この場を借りてありがとうございます。 6/18/16 osc2016do 49
50.
6/18/16 osc2016do 50 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 ありがとうございました
Télécharger maintenant