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
Ren Kimura
February 27, 2016
Technology
2.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SEGVなんてもういいですから
OSC Tokyo Spring'16 Linux LT
Ren Kimura
February 27, 2016
More Decks by Ren Kimura
See All by Ren Kimura
脅威解析概論
rkx1209
0
240
Ideas for defeating Anti-Deep-Fakes
rkx1209
0
120
セキュリティベンチャーのリスク管理
rkx1209
0
160
ファジング+トリアージ技術を用いた脆弱性解析自動化
rkx1209
0
140
Introduction to Fuzzing
rkx1209
6
4.4k
ARM TrustZone エクスプロイト入門
rkx1209
7
8.7k
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.7k
Other Decks in Technology
See All in Technology
背中から、背中へ /paying forward to community
naitosatoshi
0
180
事業会社は今こそSWEを高給で雇ってWebシステムを内製しよう
masaokb
0
110
そこにあるから地図ができる~位置を示す"モノ"を愉しむ~ - Interface 2026年6月号GPS特集オフ会 / interface_202606_GPS_offline
sakaik
1
140
どうして今サーバーサイドKotlinを選択したのか
nealle
0
140
初めてのDatabricks勉強会
taka_aki
2
210
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
460
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
290
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
250
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
240
NDIAS CTF 2026 問題解説会資料
bata_24
0
130
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
120
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
610
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
610
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
160
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
The SEO identity crisis: Don't let AI make you average
varn
0
500
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
240
New Earth Scene 8
popppiees
3
2.4k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Paper Plane
katiecoart
PRO
1
52k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
320
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
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