SlideShare a Scribd company logo
1 of 27
ret2dl_resolve
@fmrix0723
2021/5/12
Rits Security Team
1
はじめに
これまでに扱った問題では,libcのベースをリークし,その値にsystemの
オフセットを足すことで,system本体のアドレスを求めた
しかし,libcの詳細がわからない状態においては,systemのオフセットを
求めることができない
ret2dl_resolveと呼ばれる攻撃手法で解決する
ret2dl_resolve:遅延リンク時において名前解決対象シンボル名を特定す
る際の動作を利用することで,任意のライブラリ関数を呼び出す攻撃手法
2021/5/12
Rits Security Team
2
outline
1. ライブラリ関数が呼び出されるフロー
2. 名前解決時に使用される構造体について
3. 名前解決のフロー
4. ret2dl_resolvの概要
5. ret2dl_resolveの例
6. 演習
参考資料1 : ROP stager + Return-to-dl-resolveによるASLR+DEP回避 もも
いろテクノロジー
参考資料2 : Executable and Linkable Format 仕様書
2021/5/12
Rits Security Team
3
名前解決までの全体像 (再掲)
https://nuc13us.wordpress.com/2015/12/25/hack-using-global-offset-table/
2021/5/12
Rits Security Team
4
名前解決前 名前解決後
ライブラリ関数が呼び出されるフロー 1/2
2021/5/12
Rits Security Team
5
call func@plt
push *(0x8049ff8)
jmp *(0x8049ffc)
…
jmp *(0x804a00c)
push 0x18
jmp 0x8048300
• .got.pltを指す
• 初回は,次のアドレスを指す
• 名前解決された後は,func関数本体
のアドレスが入る
.pltの先頭を指す
.code
.plt
• reloc_offset(後述)
• _dl_runtime_resolve関数の第2引数
0x804a00c : 0x80483b0
.got.plt
push 0x18が
格納されてる
アドレス
ライブラリ関数が呼び出されるフロー 2/2
2021/5/12
Rits Security Team
6
call func@plt
push *(0x8049ff8)
jmp *(0x8049ffc)
…
jmp *(0x804a00c)
push 0x18
jmp 0x8048300
• _dl_runtime_resolve関数の第1引数
• 重要でない
• pltを使う全ての関数で共通
• _dl_runtime_resolve関数を指す
• _dl_runtime_resolveは名前解決を
行う関数である
.code
.plt
_dl_runtime_resolve(
0x18,
*(0x8049ff8)
)
libc
動的な名前解決に使用されるセクション
.rel.plt : 動的再配置に必要な構造体(Elf32_Rel)が含まれるリロケーション
テーブル
.dynsym : シンボル情報(Elf32_Sym)が含まれるシンボルテーブル
.dynstr : シンボル名が含まれるストリングステーブル
2021/5/12
Rits Security Team
7
.rel.plt
.dynsym
.dynstr
_dl_runtime_resolve()
引数などから対応す
るElf32_Relを特定
Elf32_Relから対応
するElf32_Symを
特定
Elf32_Symから
対応するシンボル
名を特定
Elf32_Rel
typedef struct {
Elf32_Addr r_offset; // その関数のGOTアドレスが格納される
Elf32_Word r_info; // シンボルテーブルにおけるインデックス
} Elf32_Rel;
2021/5/12
Rits Security Team
8
.rel.plt (リロケーションテーブル)に配列が存在する
各関数ごとに対応するElf32_Relが存在する
Elf32_Sym
typedef struct {
Elf32_Word st_name; // .dynstrにおける関数名へのオフセット
Elf32_Addr st_value; // 重要でない
Elf32_Word st_size; // 重要でない
unsigned char st_info; // シンボルの種類を示す
unsigned char st_other; // 重要でない
Elf32_Section st_shndx; // 重要でない
} Elf32_Sym;
2021/5/12
Rits Security Team
9
 .dynsym (シンボルテーブル)に配列が存在する
 各関数ごとに対応するElf32_Symが存在する
 .dynstr(ストリングステーブル)には,ここにエントリを持つ関数の関数名が格納されている
名前解決のフロー
1. .rel.pltのreloc_offset(=0x18)をオフセットとした位置にある
Elf32_Rel(relocとする)を見る
2. .dynsymにあるElf32_Symの配列において,((reloc->r_info)>>8)番
目の要素(symとする)を見る
3. .dynstr内の,sym->st_nameをオフセットとした場所にある文字列を
見る
4. その文字列を関数名として名前解決を行う (結局,black box)
5. 得られたアドレスを,reloc->r_offsetが差すGOTアドレスに格納する
6. 得られたアドレスにジャンプする
2021/5/12
Rits Security Team
10
名前解決のフロー
1. .rel.pltのreloc_offset(=0x18)をオフセットとした位置にある
Elf32_Rel(relocとする)を見る
2021/5/12
Rits Security Team
11
_dl_runtime_resolve(
link_map,
reloc_offset
)
.rel.plt
Elf32_Rel(relocとする)
reloc_offset
(=0x18) byte
名前解決のフロー
2. .dynsymにあるElf32_Symの配列において,((reloc->r_info)>>8)番
目の要素(symとする)を見る
2021/5/12
Rits Security Team
12
_dl_runtime_resolve(
link_map,
reloc_offset
)
.dynsym
Elf32_Sym[0]
reloc
reloc_offset
byte
.rel.plt
…
Elf32_Sym[(reloc->r_info)>>8]
(symとする)
…
名前解決のフロー
3. .dynstr内の,sym->st_nameをオフセットとした場所にある文字列を
見る
2021/5/12
Rits Security Team
13
_dl_runtime_resolve(
link_map,
reloc_offset
)
reloc
reloc_offset
byte
.rel.plt .dynsym
sym
(reloc->
r_info)>>8
.dynstr
“func”
sym->st_name
byte
名前解決のフロー
4. その文字列を関数名として名前解決を行う
2021/5/12
Rits Security Team
14
_dl_runtime_resolve(
link_map,
reloc_offset
)
reloc
reloc_offset
byte
.rel.plt .dynsym
sym
(reloc->
r_info)>>8
.dynstr
“func”
sym->st_name
byte
名前解決
名前解決のフロー
5. 得られたアドレスを,reloc->r_offsetが差すGOTアドレスに格納する
2021/5/12
Rits Security Team
15
_dl_runtime_resolve(
link_map,
reloc_offset
)
reloc
reloc_offset
byte
.rel.plt .dynsym
sym
(reloc->
r_info)>>8
.dynstr
“func”
sym->st_name
byte
名前解決
reloc->
r_offset:
.got
名前解決のフロー
6. 得られたアドレスにジャンプする
2021/5/12
Rits Security Team
16
_dl_runtime_resolve(
link_map,
reloc_offset
)
reloc
reloc_offset
byte
.rel.plt .dynsym
sym
(reloc->
r_info)>>8
libc
func:
名前解決
reloc->
r_offset:
.got
任意の関数の名前解決をさせる
reloc’やsym’などを自前で用意し,以下の変数を適当な値に設定すれば,
任意の関数の名前解決を実行させることができると考えられる
reloc_offset
reloc’ -> r_info >> 8
 sym’ -> st_name
2021/5/12
Rits Security Team
17
reloc‘
reloc_offset
byte
.rel.plt .dynsym
sym’
.dynstr
“system”
sym->st_name
byte
(reloc->
r_info)>>8
サニティチェック
_dl_runtime_resolve関数は,次の値をチェックし,場合によってはエラーとなる
sym -> st_info が 0x12 であること (シンボルがグローバル関数であるこ
とを示す)
→新たに用意するElf32_Symのst_infoを0x12に設定する
reloc -> r_info & 0xf が 7 であること (遅延リンクによるものであること
を示す)
→新たに用意するElf32_Relのr_infoの下位4ビットを,0111にする必要が
ある
→r_infoは右に8ビットシフトしてから使われるため,新たに用意する
Elf32_Symの位置はこれに関係しない
2021/5/12
Rits Security Team
18
題材
vuln
pivotのvulnと同じ問題
ただし,libcのバージョンはわからないものとする
2021/5/12
Rits Security Team
19
void vuln(void) {
char buff[16];
gets(buff);
puts(buff);
}
int main(void) {
vuln();
return 0;
}
ASLR : enable
canary : disable
NX bit : enable
PIE : disable
RELRO : partial
ret2dl_resolveの概要
1. vuln関数のリターンアドレスを書き換える
2. ret2pltによってgets関数を複数回呼び出し,次の情報を自前で用意する
 Elf32_Rel
 Elf32_Sym
 関数名
3. 最後に,reloc_offsetとsystemの引数をプッシュした状態で.pltの先頭
にジャンプする
2021/5/12
Rits Security Team
20
ret2dl_resolveの例
1. vuln関数のリターンアドレスを書き換える
2. ret2pltによって,gets関数を複数回呼び出す
2021/5/12
21
“AAAA”
gets(base_stage)
gets(addr_reloc)
gets(addr_sym)
gets(addr_str)
gets(addr_arg)
pivot to base_stage
ret2dl_resolveの例
3. pivot先として偽pltを用意
2021/5/12
22
“AAAA”
gets(base_stage)
gets(addr_reloc)
gets(addr_sym)
gets(addr_str)
gets(addr_arg)
pivot to base_stage
“AAAA”
.pltの先頭
reloc_offset’
“AAAA”
addr_arg
base_stage
• reloc_offset’ = addr_rel -
.rel.plt
• reloc_offset : Elf32_Relのオフ
セット
• addr_rel : この後,偽の
Elf32_Relが格納されるアドレス
• .rel.plt : .rel.plt セクションの
先頭アドレス
ret2dl_resolveの例
4. 偽のElf32_Relを用意する
2021/5/12
23
“AAAA”
gets(base_stage)
gets(addr_reloc)
gets(addr_sym)
gets(addr_str)
gets(addr_arg)
pivot to base_stage
“AAAA”
.pltの先頭
reloc_offset’
“AAAA”
addr_arg
base_stage
.got for exit
r_info
addr_reloc
r_info=((addr_reloc - .dyn.sym)/0x10<<8) | 7
• r_info : Elf32_Symのインデックス
• addr_reloc : この後,偽のElf32_Symが格納され
るアドレス
• .dyn.sym : シンボルテーブルの先頭アドレス
• Elf32_Symのサイズは
0x10バイト
→インデックスのため0x10
で割る
• r_infoは,8ビット右シフト
してから使われる
→用意するときは,左に8ビッ
トシフトしておく
• r_infoの下位4ビットが
0111出ない場合_fix_up
でエラー
→7で論理和
ret2dl_resolveの例
5. 偽のElf32_Symを用意する
addr_symのオフセットは,0x10の倍数である必要がある(Elf32_Symのサイズが0x10)
2021/5/12
24
“AAAA”
gets(base_stage)
gets(addr_reloc)
gets(addr_sym)
gets(addr_str)
gets(addr_arg)
pivot to base_stage
“AAAA”
.pltの先頭
reloc_offset’
“AAAA”
addr_arg
base_stage
.got for exit
r_info
addr_reloc
st_name
0
0
0x12
addr_sym
• st_name = addr_str - .dyn.str
• st_name : ストリングステーブルにおける対象
の関数名へのオフセット
• addr_str : この次に文字列”system”が格納され
るアドレス
• .dyn.str : ストリングステーブルの先頭アドレス
• 0x12 : _fix_up関数のサニティーチェック回避
ret2dl_resolveの例
6. 関数名と引数を用意する
2021/5/12
25
“AAAA”
gets(base_stage)
gets(addr_reloc)
gets(addr_sym)
gets(addr_str)
gets(addr_arg)
pivot to base_stage
“AAAA”
.pltの先頭
reloc_offset’
“AAAA”
addr_arg
base_stage
.got for exit
r_info
addr_reloc
st_name
0
0
0x12
addr_sym
“system”
addr_str
“/bin/sh”
addr_arg
ret2dl_resolveの例
7. base_stageにstack pivot
2021/5/12
26
“AAAA”
.pltの先頭
reloc_offset’
“AAAA”
addr_arg
base_stage
.got for exit
r_info
addr_reloc
st_name
0
0
0x12
addr_sym
“system”
addr_str
“/bin/sh”
addr_arg
“AAAA”
gets(base_stage)
gets(addr_reloc)
gets(addr_sym)
gets(addr_str)
gets(addr_arg)
pivot to base_stage
演習
leakless
2021/5/12
Rits Security Team
27

More Related Content

What's hot

Sigreturn Oriented Programming
Sigreturn Oriented ProgrammingSigreturn Oriented Programming
Sigreturn Oriented ProgrammingAngel Boy
 
xv6のコンテキストスイッチを読む
xv6のコンテキストスイッチを読むxv6のコンテキストスイッチを読む
xv6のコンテキストスイッチを読むmfumi
 
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015CODE BLUE
 
Linux Binary Exploitation - Return-oritend Programing
Linux Binary Exploitation - Return-oritend ProgramingLinux Binary Exploitation - Return-oritend Programing
Linux Binary Exploitation - Return-oritend ProgramingAngel Boy
 
Rootlessコンテナ
RootlessコンテナRootlessコンテナ
RootlessコンテナAkihiro Suda
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかYuki Miyatake
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹CODE BLUE
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と MeltdownHirotaka Kawata
 
Windows 10 Nt Heap Exploitation (English version)
Windows 10 Nt Heap Exploitation (English version)Windows 10 Nt Heap Exploitation (English version)
Windows 10 Nt Heap Exploitation (English version)Angel Boy
 
twlkh-linux-vsyscall-and-vdso
twlkh-linux-vsyscall-and-vdsotwlkh-linux-vsyscall-and-vdso
twlkh-linux-vsyscall-and-vdsoViller Hsiao
 
Linux Binary Exploitation - Stack buffer overflow
Linux Binary Exploitation - Stack buffer overflowLinux Binary Exploitation - Stack buffer overflow
Linux Binary Exploitation - Stack buffer overflowAngel Boy
 
ELFの動的リンク
ELFの動的リンクELFの動的リンク
ELFの動的リンク7shi
 
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!Mr. Vengineer
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDPlcplcp1
 
技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution EngineAsuka Nakajima
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析Mr. Vengineer
 

What's hot (20)

Sigreturn Oriented Programming
Sigreturn Oriented ProgrammingSigreturn Oriented Programming
Sigreturn Oriented Programming
 
xv6のコンテキストスイッチを読む
xv6のコンテキストスイッチを読むxv6のコンテキストスイッチを読む
xv6のコンテキストスイッチを読む
 
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
 
Linux Binary Exploitation - Return-oritend Programing
Linux Binary Exploitation - Return-oritend ProgramingLinux Binary Exploitation - Return-oritend Programing
Linux Binary Exploitation - Return-oritend Programing
 
Ext4 filesystem(1)
Ext4 filesystem(1)Ext4 filesystem(1)
Ext4 filesystem(1)
 
Rootlessコンテナ
RootlessコンテナRootlessコンテナ
Rootlessコンテナ
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
 
Windows 10 Nt Heap Exploitation (English version)
Windows 10 Nt Heap Exploitation (English version)Windows 10 Nt Heap Exploitation (English version)
Windows 10 Nt Heap Exploitation (English version)
 
twlkh-linux-vsyscall-and-vdso
twlkh-linux-vsyscall-and-vdsotwlkh-linux-vsyscall-and-vdso
twlkh-linux-vsyscall-and-vdso
 
Linux Binary Exploitation - Stack buffer overflow
Linux Binary Exploitation - Stack buffer overflowLinux Binary Exploitation - Stack buffer overflow
Linux Binary Exploitation - Stack buffer overflow
 
ELFの動的リンク
ELFの動的リンクELFの動的リンク
ELFの動的リンク
 
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDP
 
技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
 

Similar to ret2dl resolve

Kai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / ErlangKai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / ErlangTakeru INOUE
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)inaz2
 
ROS Tutorial 02 - CIT
ROS Tutorial 02 - CITROS Tutorial 02 - CIT
ROS Tutorial 02 - CITDaiki Maekawa
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目龍一 田中
 
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517akirahiguchi
 
Statically detecting vulnerability under memory pressure using exhaustive search
Statically detecting vulnerability under memory pressure usingexhaustive searchStatically detecting vulnerability under memory pressure usingexhaustive search
Statically detecting vulnerability under memory pressure using exhaustive searchRuo Ando
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)Masanori Machii
 
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。Kazuki Onishi
 
Nodejuku01 ohtsu
Nodejuku01 ohtsuNodejuku01 ohtsu
Nodejuku01 ohtsuNanha Park
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906akirahiguchi
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLakirahiguchi
 
20110820 metaprogramming
20110820 metaprogramming20110820 metaprogramming
20110820 metaprogrammingMasanori Kado
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努Insight Technology, Inc.
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 

Similar to ret2dl resolve (20)

Kai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / ErlangKai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / Erlang
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
 
ROS Tutorial 02 - CIT
ROS Tutorial 02 - CITROS Tutorial 02 - CIT
ROS Tutorial 02 - CIT
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
 
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517
 
dm-thin-internal-ja
dm-thin-internal-jadm-thin-internal-ja
dm-thin-internal-ja
 
DeclarativeSql
DeclarativeSqlDeclarativeSql
DeclarativeSql
 
Statically detecting vulnerability under memory pressure using exhaustive search
Statically detecting vulnerability under memory pressure usingexhaustive searchStatically detecting vulnerability under memory pressure usingexhaustive search
Statically detecting vulnerability under memory pressure using exhaustive search
 
SystemV IPC
SystemV IPCSystemV IPC
SystemV IPC
 
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)
 
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。
 
Nodejuku01 ohtsu
Nodejuku01 ohtsuNodejuku01 ohtsu
Nodejuku01 ohtsu
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
 
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQLHandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
 
Amazon ElastiCacheのはじめ方
Amazon ElastiCacheのはじめ方Amazon ElastiCacheのはじめ方
Amazon ElastiCacheのはじめ方
 
20110820 metaprogramming
20110820 metaprogramming20110820 metaprogramming
20110820 metaprogramming
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
R新機能抄出
R新機能抄出R新機能抄出
R新機能抄出
 

More from sounakano

Return Oriented Programming
Return Oriented ProgrammingReturn Oriented Programming
Return Oriented Programmingsounakano
 
Linux Security
Linux SecurityLinux Security
Linux Securitysounakano
 
Stack Buffer OverFlow
Stack Buffer OverFlowStack Buffer OverFlow
Stack Buffer OverFlowsounakano
 
ARMアーキテクチャにおけるセキュリティ機構の紹介
ARMアーキテクチャにおけるセキュリティ機構の紹介ARMアーキテクチャにおけるセキュリティ機構の紹介
ARMアーキテクチャにおけるセキュリティ機構の紹介sounakano
 

More from sounakano (7)

Stager
StagerStager
Stager
 
ret2plt
ret2pltret2plt
ret2plt
 
ret2libc
ret2libcret2libc
ret2libc
 
Return Oriented Programming
Return Oriented ProgrammingReturn Oriented Programming
Return Oriented Programming
 
Linux Security
Linux SecurityLinux Security
Linux Security
 
Stack Buffer OverFlow
Stack Buffer OverFlowStack Buffer OverFlow
Stack Buffer OverFlow
 
ARMアーキテクチャにおけるセキュリティ機構の紹介
ARMアーキテクチャにおけるセキュリティ機構の紹介ARMアーキテクチャにおけるセキュリティ機構の紹介
ARMアーキテクチャにおけるセキュリティ機構の紹介
 

Recently uploaded

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 

Recently uploaded (8)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 

ret2dl resolve