Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SEGVなんてもういいですから
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ren Kimura
February 27, 2016
Technology
1
2.2k
SEGVなんてもういいですから
OSC Tokyo Spring'16 Linux LT
Ren Kimura
February 27, 2016
Tweet
Share
More Decks by Ren Kimura
See All by Ren Kimura
脅威解析概論
rkx1209
0
170
Ideas for defeating Anti-Deep-Fakes
rkx1209
0
97
セキュリティベンチャーのリスク管理
rkx1209
0
150
ファジング+トリアージ技術を用いた脆弱性解析自動化
rkx1209
0
120
Introduction to Fuzzing
rkx1209
6
4.3k
ARM TrustZone エクスプロイト入門
rkx1209
7
8.5k
The Game is Over. Nintendo switch has been totally compromised
rkx1209
9
5.3k
インサイドNintendo Switch
rkx1209
18
13k
More efficient remote debugging with Thin Hypervisor
rkx1209
3
2.6k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure:2026年2月度サービス・アップデート
oracle4engineer
PRO
0
200
Exadata Fleet Update
oracle4engineer
PRO
0
1.3k
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
5
1k
LY Tableauでの Tableau x AIの実践 (at Tableau Now! - 2026-02-26)
yoshitakaarakawa
0
1.3k
EMからVPoEを経てCTOへ:マネジメントキャリアパスにおける葛藤と成長
kakehashi
PRO
6
670
パネルディスカッション資料 (at Tableau Now! - 2026-02-26)
yoshitakaarakawa
0
1.1k
バクラクのSREにおけるAgentic AIへの挑戦/Our Journey with Agentic AI
taddy_919
2
980
AIエンジニア Devin と歩む、自律型運用プロセスの構築
a2ito
0
650
Introduction to Bill One Development Engineer
sansan33
PRO
0
380
20260305_【白金鉱業】分析者が地理情報を武器にするための軽量なアドホック分析環境
yucho147
0
110
三菱UFJ銀行におけるエンタープライズAI駆動開発のリアル / Enterprise AI_Driven Development at MUFG Bank: The Real Story
muit
11
20k
トップマネジメントとコンピテンシーから考えるエンジニアリングマネジメント
zigorou
3
470
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
140
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
GraphQLとの向き合い方2022年版
quramy
50
14k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
99
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
380
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
120
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
150
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Code Review Best Practice
trishagee
74
20k
Accessibility Awareness
sabderemane
0
72
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
65
My Coaching Mixtape
mlcsv
0
63
Transcript
SEGVなんてもういいですから OSC2016 Tokyo/Spring Linuxライトニングトーク @RKX1209
自己紹介 • るくすと申します • twitter:@RKX1209 • 神戸大学 工学部 B3 •
普段はセキュリティ - マルウェア解析,sandbox... • OS, VMMなど低レイヤーなもの好き
突然ですがみなさんはこんなコードを書いた 事がありますか?
None
実行結果 Segmentation fault (コアダンプ) 当たり前だよなぁ
なんとか実行させたい... なんとか実行させたくない? → よし SEGVを殺そうぜ!
Linuxカーネル SEGVをなくすには? → Linuxカーネルを弄るしか無い → SEGVを許してくれる仕組みを作ろうぜ! → 優しいOSの完成 → 平和の訪れ
不正アドレスの処理 1. 不正なアドレスへのアクセスが発生するとCPUが トラップ実行 2. Linuxがトラップを受けdo_page_faultを実行する 3. SEGVが発生したアドレスから、正常なページフォ ルトなのか、不正なアクセスなのか判断 4.
正常ならhandle_mm_faultでページフォルトを処 理 5. 不正ならSEGV発生
SEGVを殺す方法 ✔ 不正なアドレスでも正常な処理に飛ぶようにする ✔ 正常だと思ったLinuxはそのままページフォルトと して処理 ✔ 不正なアドレスにmmapで物理アドレスを割り当て る ✔
ぶっちゃけ仮想アドレスがどんな値 でも物理アドレスを割り当れば 何とかなる → バディシステムに圧倒的感謝
None
SEGVを殺す時の注意 • mmapで物理アドレスを割り当てる時do_mmapを 使ってはいけない → do_page_fault実行時はプロセスのとあるスピ ンロックを既に使用している → do_mmapはこのスピンロックが解法されるまで 待つため、デッドロックが発生する
• なのでスピンロックを使用しない do_mmap_pgoffを使いましょう
None
実行結果 a やったね (スクショ撮り忘れましたorz)
ご清聴有難うございました 実際のパッチや詳細な説明は http://rkx1209.hatenablog.com/entry/2015/12/06/ 213912