Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Satoshi Mimura
3,981 views
Inside wsl
Introduce of the internal mechanism of Windows Subsystem for linux.
Technology
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Downloaded 11 times
1
/ 56
2
/ 56
3
/ 56
4
/ 56
5
/ 56
6
/ 56
7
/ 56
8
/ 56
9
/ 56
10
/ 56
11
/ 56
12
/ 56
13
/ 56
14
/ 56
15
/ 56
16
/ 56
17
/ 56
18
/ 56
19
/ 56
20
/ 56
21
/ 56
22
/ 56
23
/ 56
24
/ 56
25
/ 56
26
/ 56
27
/ 56
28
/ 56
29
/ 56
30
/ 56
31
/ 56
32
/ 56
33
/ 56
34
/ 56
35
/ 56
36
/ 56
37
/ 56
38
/ 56
39
/ 56
40
/ 56
41
/ 56
42
/ 56
43
/ 56
44
/ 56
45
/ 56
46
/ 56
47
/ 56
48
/ 56
49
/ 56
50
/ 56
51
/ 56
52
/ 56
53
/ 56
54
/ 56
55
/ 56
56
/ 56
More Related Content
PDF
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
PPTX
Inside wsl
by
Satoshi Mimura
PDF
10分で分かるLinuxブロックレイヤ
by
Takashi Hoshino
PDF
eStargzイメージとlazy pullingによる高速なコンテナ起動
by
Kohei Tokunaga
PDF
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
by
VirtualTech Japan Inc.
PDF
Windowsコンテナ入門
by
Kyohei Mizumoto
PDF
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
by
NTT DATA Technology & Innovation
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
Inside wsl
by
Satoshi Mimura
10分で分かるLinuxブロックレイヤ
by
Takashi Hoshino
eStargzイメージとlazy pullingによる高速なコンテナ起動
by
Kohei Tokunaga
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
by
VirtualTech Japan Inc.
Windowsコンテナ入門
by
Kyohei Mizumoto
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
by
NTT DATA Technology & Innovation
Linux女子部 systemd徹底入門
by
Etsuji Nakai
What's hot
PDF
http2 最速実装 v2
by
Yoshihiro Iwanaga
PDF
YoctoでLTSディストリを作るには
by
wata2ki
PDF
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
by
Brocade
PDF
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
by
Hironobu Isoda
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
by
NTT DATA Technology & Innovation
PDF
twMVC#44 讓我們用 k6 來進行壓測吧
by
twMVC
PDF
Kubernetesのワーカーノードを自動修復するために必要だったこと
by
h-otter
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
PDF
Docker道場オンライン#1 Docker基礎概念と用語の理解
by
Masahito Zembutsu
PPTX
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
by
Shinji Takao
PDF
GPU仮想化最前線 - KVMGTとvirtio-gpu -
by
zgock
PDF
Podman rootless containers
by
Giuseppe Scrivano
PDF
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf
by
Ververica
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
by
Preferred Networks
PDF
超実践 Cloud Spanner 設計講座
by
Samir Hammoudi
PDF
Google Cloud Dataflow を理解する - #bq_sushi
by
Google Cloud Platform - Japan
PDF
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
by
Toru Makabe
PPTX
VXLAN Integration with CloudStack Advanced Zone
by
Yoshikazu Nojima
PPTX
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
by
NTT DATA Technology & Innovation
PDF
TiDBのトランザクション
by
Akio Mitobe
http2 最速実装 v2
by
Yoshihiro Iwanaga
YoctoでLTSディストリを作るには
by
wata2ki
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
by
Brocade
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
by
Hironobu Isoda
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
by
NTT DATA Technology & Innovation
twMVC#44 讓我們用 k6 來進行壓測吧
by
twMVC
Kubernetesのワーカーノードを自動修復するために必要だったこと
by
h-otter
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
Docker道場オンライン#1 Docker基礎概念と用語の理解
by
Masahito Zembutsu
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
by
Shinji Takao
GPU仮想化最前線 - KVMGTとvirtio-gpu -
by
zgock
Podman rootless containers
by
Giuseppe Scrivano
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf
by
Ververica
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
by
Preferred Networks
超実践 Cloud Spanner 設計講座
by
Samir Hammoudi
Google Cloud Dataflow を理解する - #bq_sushi
by
Google Cloud Platform - Japan
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
by
Toru Makabe
VXLAN Integration with CloudStack Advanced Zone
by
Yoshikazu Nojima
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
by
NTT DATA Technology & Innovation
TiDBのトランザクション
by
Akio Mitobe
Similar to Inside wsl
PDF
Windows Subsystem for Linux 2
by
Tomokazu Kizawa
PPTX
こわくない!WSL
by
Miho Yamamoto
PPTX
今だから知りたい Bash on Windows
by
Miho Yamamoto
PPTX
Tips and tricks for WSL users: Two easy and reliable ways to get started with...
by
Atomu Hidaka
PDF
WSL2使ってみた / Preview for WSL2
by
株式会社MonotaRO Tech Team
PDF
Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-
by
Toyohiko Komatsu
PPTX
Windows Subsystem for Linux について
by
Miho Yamamoto
Windows Subsystem for Linux 2
by
Tomokazu Kizawa
こわくない!WSL
by
Miho Yamamoto
今だから知りたい Bash on Windows
by
Miho Yamamoto
Tips and tricks for WSL users: Two easy and reliable ways to get started with...
by
Atomu Hidaka
WSL2使ってみた / Preview for WSL2
by
株式会社MonotaRO Tech Team
Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-
by
Toyohiko Komatsu
Windows Subsystem for Linux について
by
Miho Yamamoto
More from Satoshi Mimura
PDF
おうちで簡単ハードウェアセキュリティ
by
Satoshi Mimura
PPTX
某Ctf にて writeup
by
Satoshi Mimura
PDF
Edomae 2015 - マルウェアを解析してみよう
by
Satoshi Mimura
PPTX
Visual Studio で TeX 編集
by
Satoshi Mimura
PDF
3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話
by
Satoshi Mimura
PPTX
WHAT_A_KERNEL_IRQL
by
Satoshi Mimura
PPTX
アプリ作者と Windows XP
by
Satoshi Mimura
PPTX
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
by
Satoshi Mimura
PPTX
マシン語によるコード実行
by
Satoshi Mimura
PPTX
Iron python と c sharp
by
Satoshi Mimura
PPTX
Unix と windows 世界の融合
by
Satoshi Mimura
PPTX
Windows Phone 7 と XNA の世界
by
Satoshi Mimura
おうちで簡単ハードウェアセキュリティ
by
Satoshi Mimura
某Ctf にて writeup
by
Satoshi Mimura
Edomae 2015 - マルウェアを解析してみよう
by
Satoshi Mimura
Visual Studio で TeX 編集
by
Satoshi Mimura
3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話
by
Satoshi Mimura
WHAT_A_KERNEL_IRQL
by
Satoshi Mimura
アプリ作者と Windows XP
by
Satoshi Mimura
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
by
Satoshi Mimura
マシン語によるコード実行
by
Satoshi Mimura
Iron python と c sharp
by
Satoshi Mimura
Unix と windows 世界の融合
by
Satoshi Mimura
Windows Phone 7 と XNA の世界
by
Satoshi Mimura
Inside wsl
1.
Inside WSL
2.
Who am I?
三村 聡志 a.k.a. 親方 Twitter : @mimura1133 Website : http://mimumimu.net/ 最近アプリ診断してる Windows + Visual Studio が いつものスタイル。
3.
Inside WSL WSL でできること WSL
の仕組み WSL 1 WSL 2 Hacking WSL
4.
WSL でできること
5.
WSL とは? Windows Subsystem
for Linux の略 Windows 10 Fall Creators Update (1709) 以降で 利用可能
6.
WSL で出来ること WSL1, WSL2 Linux
のユーザモード環境の提供 64bit ELF のネイティブ実行 WSL2 Linux のカーネルモード環境 Linux カーネルを利用した高度な処理 iftop, mount などなど.
7.
Linux の資産がつかえる!
8.
WSL で出来ること 他にもこういうことができます: WSL 内からの
Win32 プログラムの実行 WSL で稼働している Linux への ファイルアクセス WSL 内からの Windows への ファイルアクセス
9.
WSL を使ってみる
10.
WSL を使ってみる -
1 ストアからインストール
11.
WSL を使ってみる –
2 インストールが終わったら あとは楽しむ。
12.
WSL の仕組み –
WSL1
13.
WSL1 の仕組み Windows 10
の “Pico Process” という仕組みを利用して Windows 上で ELF を実行する Windows の1プロセスの扱いのため プロセスがタスクマネージャーから見える
14.
Pico Process? From MSDN
15.
Pico Process? Windows のプロセスには下記3タイプがある Minimal
Process プロセスID は付与されるが PEB,TEB, NTDLL のリンク等は行われない NT Process 通常の Windows プロセス Pico Process Pico Provider と関連付いた Minimal Process.
16.
WSL1 の仕組み
17.
WSL1 の仕組み ELF ファイルを
pico プロセスとして起動 Pico Provider は lxss.sys (%SYSTEMROOT%SYSTEM32DRIVERSLXSS.SYS) 起動されると Windows 側では LX Session Manager Service が起動する (%SYSTEMROOT%SYSTEM32LXSSLxssManager.dll) (%SYSTEMROOT%SYSTEM32LXSSwslhost.exe) (%SYSTEMROOT%SYSTEM32wsl.exe) 表示側は conhost.exe (コマンドプロンプト等と同じ)
18.
WSL1 の仕組み ELF ファイルを
pico プロセスとして起動 Pico Provider は lxss.sys (%SYSTEMROOT%SYSTEM32DRIVERSLXSS.SYS) Pico Provider が適宜システムコールを理解し Windows Kernel に指示を出す 実行権限は wsl.exe と同じ.
19.
WSL1 の仕組み なおファイルについては すべてそのまま保存されている
20.
WSL の仕組み –
WSL2
21.
WSL2 の仕組み From channel
9.
22.
WSL2 の仕組み カスタマイズされた Linux
Kernel を利用する ELF ファイルはその上で実行する Kernel Image: 通常は %SYSTEMROOT%System32lxsstools 以下のものを利用
23.
余談ですが Windows 10 では Windows
Hypervisor Platform が提供 Hyper-V の仕組みを利用して VM を実行できる API 群 管理者権限は不要 C#, C++ 向けの API 実装は存在する https://github.com/mimura1133/WHVPSharp
24.
WSL2 を利用するために 現時点で WSL2
用の ディストリビューションは出ていない 既存のものを変換して作る wsl --set-version ubuntu 2
25.
WSL2 の仕組み
26.
WSL2 の仕組み 起動時に Linux
VM (Optimized) を起動 Lightweight VM が立ち上がる WSL1 同様、起動されると Windows 側では LX Session Manager Service が起動する (%SYSTEMROOT%SYSTEM32LXSSLxssManager.dll) (%SYSTEMROOT%SYSTEM32LXSSwslhost.exe) (%SYSTEMROOT%SYSTEM32wsl.exe)
27.
WSL2 の仕組み WSL を起動すると 下記のように
“WSL” という名前の Docker が起動する WSL を閉じても走り続ける wsl --terminate で止められる.
28.
WSL2 の仕組み ファイルは VHDX
の下に保存される Hyper-V の仮想ディスクイメージ (ext4) Win – Linux は 9p Protocol. (Plan9)
29.
Hacking WSL – WSL
を使いやすくしよう
30.
コマンドを使いやすくする 利用したい Linux コマンドと同じ名前の バッチファイルを作成する 下記の内容を書く: @bash
-c "%~n0 %*"
31.
コマンドを使いやすくする
32.
コマンドを使いやすくする あとは PATH を通す Windows
と Linux のコラボができる
33.
ユーザディレクトリを合わせる Linux の userdir
を Windows の %userprofile% に リンクさせる /mnt/c/Users 以下に通常存在する “ln –s” でリンクを張れば OK.
34.
Hacking WSL – WSL
の深い挙動の違いを見る
35.
挙動の違いを見る WSL1 と WSL2
は VM か Pico Process かの違いがある それに合わせていくつかの挙動が異なる
36.
プロセスの見え方 WSL1 Pico Process のため 1つ1つがタスクマネージャから見える WSL2 VM
のため vmmem, vmwp.exe が 起動する
37.
Processes (WSL1) Windows 上からプロセスが見える WSL
が起動すると wslhost.exe がドライバと通信し 結果を conhost.exe が描画する
38.
Processes (WSL2) Windows 上からはこれしか見えない ただし
hcsdiag からは下記のように見える
39.
mount の挙動の違い WSL1 root は
wslfs (実体は NTFS 上にある) マウントできない WSL2 root は ext4 (実体は VHDX 上にある) マウントできる
40.
mount (WSL1)
41.
mount (WSL2)
42.
Tcpdump の挙動の違い WSL1 Pico Provider
(lxss.sys) に ローパケット処理が実装されていない WSL2 動作する 同じ理由で iptables, nmap 等も動作する
43.
tcpdump (WSL1)
44.
tcpdump (WSL2)
45.
ip addr の挙動の違い WSL
1 Windows とアドレス・ポートを共有 WSL 2 Windows 側で NAPT される
46.
ip addr (WSL1) Windows
とおなじアドレスが 付与されていることが分かる
47.
ip addr (WSL2) NAPT
されている
48.
GDB の挙動の違い WSL1 Pico Process
で Emulation しているため アドレスが Linux らしいものとは異なる WSL2 Linux 上のためアドレスがキッチリ
49.
gdb (WSL1)
50.
gdb (WSL2)
51.
WSL まとめ
52.
WSL まとめ Windows Subsystem
for Linux は Windows 上で Linux の資産を活かす技術 WSL1 は 直接 Windows で実行 WSL2 は Docker 上で実行 再現度は WSL2 が高く、気軽さは WSL1 が高い
53.
余談集
54.
フォレンジックしたい WSL1 NTFS 上にファイルが書かれる 基本的にはWindows のフォレンジックでよい WSL2 vhdx
ファイルを読む こういうツールを使って raw にすればあとは楽 http://euee.web.fc2.com/tool/nhc.html
55.
フォレンジックしたい プロセスのログとしては下記の起動ログを追う wslhost.exe
56.
検知システムを書きたい! (WSL1) PsSetCreateProcessNotifyRoutineEx2
PsSetCreateThreadNotifyRoutineEx この関数を使ってフックを掛ける typedef enum _SUBSYSTEM_INFORMATION_TYPE { SubsystemInformationTypeWin32, SubsystemInformationTypeWSL, MaxSubsystemInformationType }
Download