Enviar búsqueda
Cargar
Hacking Ctrl-C
•
Descargar como PPTX, PDF
•
1 recomendación
•
1,904 vistas
uchan_nos
Seguir
僕らがCtrl-Cを入力すると、誰がINTシグナルを作るのだろうか。
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 10
Descargar ahora
Recomendados
1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPG
uchan_nos
Programming camp Codereading
Programming camp Codereading
Hiro Yoshioka
Effective Modern C++ Item 9 and 10
Effective Modern C++ Item 9 and 10
uchan_nos
Effective modern c++ 8
Effective modern c++ 8
uchan_nos
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
C++11とゲーム製作
C++11とゲーム製作
uchan_nos
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
はりぼて OS で ELF なアプリを起動してみた
はりぼて OS で ELF なアプリを起動してみた
uchan_nos
Recomendados
1を書いても0が読める!?隠れた重要命令INVLPG
1を書いても0が読める!?隠れた重要命令INVLPG
uchan_nos
Programming camp Codereading
Programming camp Codereading
Hiro Yoshioka
Effective Modern C++ Item 9 and 10
Effective Modern C++ Item 9 and 10
uchan_nos
Effective modern c++ 8
Effective modern c++ 8
uchan_nos
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
C++11とゲーム製作
C++11とゲーム製作
uchan_nos
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
はりぼて OS で ELF なアプリを起動してみた
はりぼて OS で ELF なアプリを起動してみた
uchan_nos
やってよかったOS作り
やってよかったOS作り
Hidemi Kawai
低レイヤー入門
低レイヤー入門
demuyan
Edomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみよう
Satoshi Mimura
Effective modern c++ 5
Effective modern c++ 5
uchan_nos
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
Yuma Ohgami
C++でできる!OS自作入門
C++でできる!OS自作入門
uchan_nos
ハッキング実演
ハッキング実演
Ken Ogura
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
kikuchan98
Osc10do linux nextstep
Osc10do linux nextstep
smokey monkey
Android デバッグ小ネタ
Android デバッグ小ネタ
l_b__
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
ksk sue
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
Yuya Rin
dofilewrite and vn_write
dofilewrite and vn_write
kusabanachi
Scripting Layer for Android + Perl
Scripting Layer for Android + Perl
Naoya Ito
Displaylink : Reloaded
Displaylink : Reloaded
Masataka Kondo
2013 06-22osc nagoya-netmf
2013 06-22osc nagoya-netmf
Atomu Hidaka
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
Yasutaka Hamada
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
Kazuyuki Sato
Gingerbread
Gingerbread
android sola
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
Más contenido relacionado
Destacado
やってよかったOS作り
やってよかったOS作り
Hidemi Kawai
低レイヤー入門
低レイヤー入門
demuyan
Edomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみよう
Satoshi Mimura
Effective modern c++ 5
Effective modern c++ 5
uchan_nos
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
Yuma Ohgami
C++でできる!OS自作入門
C++でできる!OS自作入門
uchan_nos
ハッキング実演
ハッキング実演
Ken Ogura
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
kikuchan98
Destacado
(9)
やってよかったOS作り
やってよかったOS作り
低レイヤー入門
低レイヤー入門
Edomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみよう
Effective modern c++ 5
Effective modern c++ 5
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
C++でできる!OS自作入門
C++でできる!OS自作入門
ハッキング実演
ハッキング実演
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
Similar a Hacking Ctrl-C
Osc10do linux nextstep
Osc10do linux nextstep
smokey monkey
Android デバッグ小ネタ
Android デバッグ小ネタ
l_b__
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
ksk sue
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
Yuya Rin
dofilewrite and vn_write
dofilewrite and vn_write
kusabanachi
Scripting Layer for Android + Perl
Scripting Layer for Android + Perl
Naoya Ito
Displaylink : Reloaded
Displaylink : Reloaded
Masataka Kondo
2013 06-22osc nagoya-netmf
2013 06-22osc nagoya-netmf
Atomu Hidaka
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
Yasutaka Hamada
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
Kazuyuki Sato
Gingerbread
Gingerbread
android sola
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
60年代ゲームハードPDP-7のご紹介
60年代ゲームハードPDP-7のご紹介
Yuma Ohgami
スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
Adk2012
Adk2012
magoroku Yamamoto
20110715 osc2011 kyoto
20110715 osc2011 kyoto
Yamauchi isamu
Androidロボットサミットin名古屋
Androidロボットサミットin名古屋
Kenichi Yoshida
Ansible2.0と実用例
Ansible2.0と実用例
OSSラボ株式会社
Docker調査20150704
Docker調査20150704
HommasSlide
Similar a Hacking Ctrl-C
(20)
Osc10do linux nextstep
Osc10do linux nextstep
Android デバッグ小ネタ
Android デバッグ小ネタ
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
dofilewrite and vn_write
dofilewrite and vn_write
Scripting Layer for Android + Perl
Scripting Layer for Android + Perl
Displaylink : Reloaded
Displaylink : Reloaded
2013 06-22osc nagoya-netmf
2013 06-22osc nagoya-netmf
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
Gingerbread
Gingerbread
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
60年代ゲームハードPDP-7のご紹介
60年代ゲームハードPDP-7のご紹介
スタート低レイヤー #0
スタート低レイヤー #0
Adk2012
Adk2012
20110715 osc2011 kyoto
20110715 osc2011 kyoto
Androidロボットサミットin名古屋
Androidロボットサミットin名古屋
Ansible2.0と実用例
Ansible2.0と実用例
Docker調査20150704
Docker調査20150704
Más de uchan_nos
MikanOSと自作CPUをUSBで接続する
MikanOSと自作CPUをUSBで接続する
uchan_nos
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
uchan_nos
小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器
uchan_nos
トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路
uchan_nos
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
uchan_nos
自作言語でお絵描き
自作言語でお絵描き
uchan_nos
OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会
uchan_nos
サイボウズ・ラボへ転籍して1年を振り返る
サイボウズ・ラボへ転籍して1年を振り返る
uchan_nos
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
uchan_nos
Security Nextcamp remote mob programming
Security Nextcamp remote mob programming
uchan_nos
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPS
uchan_nos
OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作
uchan_nos
自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装
uchan_nos
レガシーフリーOSに必要な要素技術 legacy free os
レガシーフリーOSに必要な要素技術 legacy free os
uchan_nos
Building libc++ for toy OS
Building libc++ for toy OS
uchan_nos
プランクトンサミットの歴史2019
プランクトンサミットの歴史2019
uchan_nos
Introduction of security camp 2019
Introduction of security camp 2019
uchan_nos
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
uchan_nos
Timers
Timers
uchan_nos
USB3 host driver program structure
USB3 host driver program structure
uchan_nos
Más de uchan_nos
(20)
MikanOSと自作CPUをUSBで接続する
MikanOSと自作CPUをUSBで接続する
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
小型安価なFPGAボードの紹介と任意波形発生器
小型安価なFPGAボードの紹介と任意波形発生器
トランジスタ回路:エミッタ接地増幅回路
トランジスタ回路:エミッタ接地増幅回路
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
自作言語でお絵描き
自作言語でお絵描き
OpeLa 進捗報告 at 第23回自作OSもくもく会
OpeLa 進捗報告 at 第23回自作OSもくもく会
サイボウズ・ラボへ転籍して1年を振り返る
サイボウズ・ラボへ転籍して1年を振り返る
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
Security Nextcamp remote mob programming
Security Nextcamp remote mob programming
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPS
OpeLa セルフホストなOSと言語処理系の自作
OpeLa セルフホストなOSと言語処理系の自作
自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装
レガシーフリーOSに必要な要素技術 legacy free os
レガシーフリーOSに必要な要素技術 legacy free os
Building libc++ for toy OS
Building libc++ for toy OS
プランクトンサミットの歴史2019
プランクトンサミットの歴史2019
Introduction of security camp 2019
Introduction of security camp 2019
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
Timers
Timers
USB3 host driver program structure
USB3 host driver program structure
Hacking Ctrl-C
1.
Hacking Ctrl-C @uchan_nos 2015/03/06
2.
Ctrl-C アプリを止めるのに使う SIGINT
を発生させる _人人人人人人人人人人人人_ > 誰がSIGINTを作るのか <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
3.
端末とプロセス 端末ドライバ プロセス bash/dev/tty /dev/pts/* uchida@usvr14:infra$ lsof
-p 29542(ログインシェルのPID) COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 29542 uchida 0u CHR 136,7 0t0 10 /dev/pts/7 bash 29542 uchida 1u CHR 136,7 0t0 10 /dev/pts/7 bash 29542 uchida 2u CHR 136,7 0t0 10 /dev/pts/7 bash 29542 uchida 255u CHR 136,7 0t0 10 /dev/pts/7
4.
端末ラインディシプリン 端末装置ドライバ 端末ラインディシプリン read/write関数 ユーザプロセス(bashなど) Ctrl-C (0x03) 文字が来たら INT
シグナルを生成 Ctrl-Z (0x1A) 文字が来たら TSTP シグナルを生成 その他カノニカル処理 CR->LF変換、行バッファなど
5.
ssh user@host sleep
100 端末ドライバ ssh 端末ラインディシプリン read/write TCP/IP, ソケット etc sleep 100
6.
ssh user@host sleep
100 端末ドライバ ssh sleep 100 端末ラインディシプリン read/write TCP/IP, ソケット etc Ctrl-Cを入力すると、sshプロセスに SIGINT が送信され、sshプロセスが 終了する。 →sleep 100は生き残る Ctrl-C ^C SIGINT closed
7.
ssh –t user@host
sleep 100 端末ドライバ ssh sleep 100 端末ラインディシプリン read/write TCP/IP, ソケット etc 疑似端末マスタ 端末ラインディシプリン read/write 疑似端末スレーブ
8.
ssh –t user@host
sleep 100 端末ドライバ ssh 端末ラインディシプリン read/write TCP/IP, ソケット etc 疑似端末マスタ 端末ラインディシプリン read/write 疑似端末スレーブ Ctrl-C ^C ^C ^C SIGINT ^C文字がリモートまで 伝わり、リモートで SIGINTが発生 →sleep 100は終了する sleep 100
9.
ssh –t user@host
sleep 100 端末ドライバ ssh 端末ラインディシプリン read/write TCP/IP, ソケット etc 疑似端末マスタ 端末ラインディシプリン read/write 疑似端末スレーブ Ctrl-C ^C ^C ^C SIGINT ^C文字がリモートまで 伝わり、リモートで SIGINTが発生 →sleep 100は終了する sleep 100 OpenSSH の sshtty.c : 84 tio.c_lflag &= ~(ISIG | ICANON...); 端末を raw モードに変更し、 ^C を受信してもシグナルを 生成しないようにしている。
10.
まとめ ssh user@host
sleep 100 host 上で端末を持たない sleep プロセスが起動 Ctrl-C でローカルの端末ドライバが SIGINT 生成 ssh –t user@host sleep 100 host 上で疑似端末を持つ sleep プロセスが起動 Ctrl-C で host の疑似端末ドライバが SIGINT を生成 ssh user@host コマンド無指定時はデフォルトで –t ssh –T user@host でログイン後 Ctrl-C してみよう! 詳しくはこちらにまとめてあります http://wiki.dev.cybozu.co.jp/display/~kota-uchida/Linux+signals
Descargar ahora