Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
猫付きpingコマンドを自作
Search
uyuki
August 11, 2026
Technology
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
猫付きpingコマンドを自作
焦ってしまい、本番ではつかみの部分を飛ばしてしまいましたが、いきなり「前回のあらすじ」から始めるのは某アニメの引用です
(2026/08/12更新)
uyuki
August 11, 2026
Transcript
27 slides
猫付きpingコマンドを自作 uyuki234 2026/08/11 セキュリティキャンプ 2026 LT大会
About me • uyuki / uyuki234 • 興味: セキュリティ /
ネットワーク / 低レイヤー • https://scrapbox.io/uyuki234/ • https://x.com/uyuki234 • 作ってワクワク🤩 ◦ 自作CPU、自作OS… 2
前回のあらすじ 3
/sbin/pingと同じ役割を自作 →自作ping 4
ping 8.8.8.8 コマンド実行の流れ シェルがPATHから /sbin/pingを探して起動 オレンジだけ作れば動く ターミナル (RTT計算・表示内容の整形 ) ターミナル上に表示
$ ping 8.8.8.8 ICMP Echo Request macOS カーネル /sbin/ping Reply IPパケット ルーター インターネット Request ICMP Echo Reply 8.8.8.8 ※sbin = system binaries 5
自作pingで8.8.8.8に疎通! 6
ping とは? • 相手の機器までIP通信が届くかを確認するコマンド ◦ • 疎通確認で使う 相手へICMP Echo Requestを送り、
返ってくるICMP Echo Replyを受信して、 応答時間(RTT)やパケット損失率を測る。 ◦ ◦ Internet Control Message Protocol:IP通信のエラーや状態を通知するためのプロトコル Round Trip Time:パケットを送ってから応答が返ってくるまでの往復時間 7
pingに猫を搭載してみよう 8
makeAAPing 9
ICMP Echo Requestには データ領域がある 10
こんな感じ RFC 792, pp.14 https://www.rfc-editor.org/rfc/rfc792.html 11
• • • ICMPはData部分の内容形式を規定していない Echo Replyは受信した Dataをそのまま返す AAも文字と改行からなるバイト列なので格納できる ※今回の実装では、 Dataの長さを
最大1400バイトに制限 (超過時は送信しない) ※追記( 2026/08/12) • 一般的な pingと異なる Dataの内容・サイズは、 NDRの製品や検知ルールによっては、不審な ICMP通信としてアラートになる場合がある ◦ NDR(Network Detection and Response): ネットワーク上の通信を監視し、不審な通信を検知・調査・対処する仕組み RFC 792, pp.14 https://www.rfc-editor.org/rfc/rfc792.html 12
ここに猫の AAを入れたら そのまま帰ってくる? 😼 13
実演 14
自作pingで8.8.8.8に疎通! 15
自作pingで8.8.8.8に疎通! 見やすさのため、 ICMP Echo Replyのデータ部分を ターミナルに表示させている 16
Echo RequestとEcho ReplyのDataは同じ値 Echo RequestとEcho ReplyのAAは同じ ※ localhost(127.0.0.1)宛ての通信を事前にキャプチャしました 1行目: Echo
Request(Type 8)/2行目: Echo Reply(Type 0) 17
makeAAPing.cざっくり解説 18
packetの先頭に8バイトの ICMPヘッダを置き、 その直後に.txtから 読み込んだAAをコピー 最後に、AAを含むICMP メッセージ全体から checksumを計算。 19
packetの先頭に8バイトの ICMPヘッダを置き、 その直後に.txtから 読み込んだAAをコピー 最後に、AAを含むICMP メッセージ全体から checksumを計算。 20
packetの先頭に8バイトの ICMPヘッダを置き、 その直後に.txtから 読み込んだAAをコピー 最後に、AAを含むICMP メッセージ全体から checksumを計算。 21
おまけ 22
アイコンの AAでも疎通! 23
まとめと展望 24
まとめと展望 • まとめ ICMPのDataには、サイズ上限内で任意のバイト列を格納できる 自作プログラムは ICMPメッセージを組み立てまで担当。 IPv4ヘッダの付与や経路選択は macOSカーネルに任せた 送信した猫と返ってきた猫が同じバイト列であることを PCAPで確認
◦ ◦ ◦ • 展望 ◦ 次は『コンピュータシステムの理論と実装』で、 論理ゲートから高級言語まで自作する 25
猫付きpingコマンドを自作 uyuki234 2026/08/11 セキュリティキャンプ 2026 LT大会
Appendix • pingが破損したらAAはどうなるの? ◦ ◦ パケット自体が破棄されて応答が返らない ICMPチェックサムは 8バイトのヘッダだけでなく、 AAを含むICMPメッセージ全体を対象に計算される 27
More Decks by uyuki
See All by uyuki
パスワード再設定メールのURLについて知っておこう
uyuki234
0
230
Verilogで学ぶCPU自作入門
uyuki234
8
4.4k
pingコマンド無しping
uyuki234
0
330
自作OSでスライド発表する
uyuki234
2
5k
トラコン未経験者によるゼロからのICTSC準備ロードマップ
uyuki234
0
140
令和の時代にDE0と格闘する
uyuki234
0
150
Vibe codingでおすすめの言語と開発手法
uyuki234
0
450
Google Calendar APIでいい感じに一年を振り返りたかった
uyuki234
0
170
Other Decks in Technology
See All in Technology
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
4
1.8k
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
3
670
evcc & Home Assistant
naltatis
0
680
Datadog の権限統制 〜Org 統合に向けて調べた注意点 / JDDUG-Meetup_24
visional_engineering_and_design
1
110
自治体AIコンタクトセンター、何をどこに任せる?~Amazon Connect Customer +Amazon Bedrockの実践知~ / 20261107 Satoshi Torano
shift_evolve
PRO
1
140
アラートを見直していたら営業組織への理解にちょっとだけ繋がった話
z63d
1
190
「AIチャットからもできないの?」と言われたら ~業務アプリをMCP対応するときの認証・認可の勘所
oidfj
0
320
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
6
1.7k
狙われているAPIの脆弱性!今こそ手をつけるべき根本的な対策とは?
nagix
0
130
Context != Context: One window, many lifecycles (AI Native DevCon, Nov 2026)
birgitta410
0
120
DBTS2026 盛り上がってますか!?Databricksが実現するAI時代のデータ基盤
akuwano
1
200
【Oracle AI SPOTLIGHT ウェビナー】【特別開催:日本語で解説!】Oracle AI World 2026 最新情報フィードバック
oracle4engineer
PRO
1
200
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.3k
We Have a Design System, Now What?
morganepeng
55
8.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
690
Marketing to machines
jonoalderson
1
6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
400
The Limits of Empathy - UXLibs8
cassininazir
2
780
How Software Deployment tools have changed in the past 20 years
geshan
3
35k
4 Signs Your Business is Dying
shpigford
187
23k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
1
310