Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ret2dl_resolve(x86_64)
Search
appBana
May 05, 2018
Programming
580
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ret2dl_resolve(x86_64)
in YOKARO-MON勉強会
appBana
May 05, 2018
Other Decks in Programming
See All in Programming
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
240
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
120
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.1k
Seven New Principles of Software Engineering
yegor256
0
400
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
200
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
220
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.1k
AI駆動開発4年目の現在地(『あなたはFDEになるべきか?』イベント資料)
kumaiu
0
110
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1.6k
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.3k
パスワード再設定メールのURLについて知っておこう
uyuki234
0
200
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
140
Featured
See All Featured
Marketing to machines
jonoalderson
1
6k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
420
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
550
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Product Roadmaps are Hard
iamctodd
55
13k
Transcript
None
None
None
None
Elf64_Rela r_offset (size=0x8) r_info (size=0x8) r_addend (size=0x8)
Elf64_Rela r_offset (size=0x8) r_info (size=0x8) r_addend (size=0x8) typedef struct {
Elf64_Addr r_offset; /* Address */ Elf64_Xword r_info; /* Relocation type and symbol index */ Elf64_Sxword r_addend; /* Addend */ } Elf64_Rela;
Elf64_Rela r_offset (size=0x8) r_info (size=0x8) r_addend (size=0x8) GOT Elf64_Symindex
None
Elf64_Sym st_name (size=0x4) st_info (size=0x1) st_other (size=0x1) st_shndx (size=0x2) st_value
(size=0x8) st_size (size=0x8)
Elf64_Sym st_name (size=0x4) st_info (size=0x1) st_other (size=0x1) st_shndx (size=0x2) st_value
(size=0x8) st_size (size=0x8) typedef struct { Elf64_Word st_name; /* Symbol name (string tbl index) */ unsigned char st_info; /* Symbol type and binding */ unsigned char st_other; /* Symbol visibility */ Elf64_Section st_shndx; /* Section index */ Elf64_Addr st_value; /* Symbol value */ Elf64_Xword st_size; /* Symbol size */ } Elf64_Sym;
Elf64_Sym st_name (size=0x4) st_info (size=0x1) st_other (size=0x1) st_shndx (size=0x2) st_value
(size=0x8) st_size (size=0x8) offset
None
None
None
“Hello, world!” %* '&”hello”'$'( puts() (+ “hello.c”#,! “hello”
"+$)
“Hello, world!” ).$+*”hello” +"(+,puts() ,/# “hello.c”'0% “hello” !&/(-
None
[email protected]
0x601018<
[email protected]
>0x400416
0x601018<
[email protected]
>0x400416<puts@plt+6>
1. Stack0(reloc_offset)push
1. Stack0(reloc_offset)push 2. 0x400400(.plt)
1. Stack 0(reloc_offset)push 2. 0x400400(.plt) 3. [0x601008]push [0x601010](_dl_runtime_resolve())
link_map
None
None
None
None
.rela.plt .dynstr .dynsym puts Elf64_Rela __libc_start_m ain Elf64_Rela
puts ELF64_Sym __libc_start_m ain ELF64_Sym libc.so.6¥x00 puts¥x00 __libc_start_main ¥x00 ...
.rela.plt .dynstr .dynsym puts Elf64_Rela __libc_start_m ain Elf64_Rela
puts ELF64_Sym __libc_start_m ain ELF64_Sym libc.so.6¥x00 puts¥x00 __libc_start_main ¥x00 ... .rela.plt reloc_offset Elf64_Rela
.rela.plt .dynstr .dynsym puts Elf64_Rela __libc_start_m ain Elf64_Rela puts ELF64_Sym
__libc_start_m ain ELF64_Sym libc.so.6¥x00 puts¥x00 __libc_start_main ¥x00 ... .dynsym r_info >> 32 Elf64_Sym
.rela.plt .dynstr .dynsym puts Elf64_Rela __libc_start_m ain Elf64_Rela puts ELF64_Sym
__libc_start_m ain ELF64_Sym libc.so.6¥x00 puts¥x00 __libc_start_main ¥x00 ... .dynstr st_name
None
puts()reloc_offset
puts()Elf64_Rela = rela.plt + puts()rela_offset * Elf64_Rela = 0x400398
+ 0x0 * 0x18 = 0x400398
puts()Elf64_Rela = rela.plt + puts()rela_offset * Elf64_Rela = 0x400398
+ 0x0 * 0x18 = 0x400398 r_info = puts()Elf64_Symindex << 32 | R_386_JMP_SLOT = 0x1 << 32 | 0x7 = 0x0000000100000007
puts()Elf64_Sym = .dynsym + puts()Elf64_Relar_info << 32* Elf64_Rela =
0x4002b8 + 0x1 * 0x18 = 0x4002d0
puts()Elf64_Sym = .dynsym + puts()Elf64_Relar_info << 32* Elf64_Sym =
0x4002b8 + 0x1 * 0x18 = 0x4002d0 st_name = 0xb st_info = 0x12
puts() = .dynstr + puts() Elf64_Sym st_name =
0x400318 + 0xb = 0x400323
None
None
None
None
.rela.plt .dynstr .dynsym puts Elf64_Rela __libc_start_m ain Elf64_Rela
puts ELF64_Sym __libc_start_m ain ELF64_Sym libc.so.6¥x00 puts¥x00 __libc_start_main ¥x00 ...
.bss Elf64_Relo Elf64_Sym “system¥x00” push reloc_offset _dl_runtime_resolve(“/bin/sh”)
.bss Elf64_Relo Elf64_Sym “system¥x00” push reloc_offset _dl_runtime_resolve(“/bin/sh”) reloc_offset = (A
- .rela.plt) / 0x18 A
.bss Elf64_Relo Elf64_Sym “system¥x00” push reloc_offset _dl_runtime_resolve(“/bin/sh”) r_info = ((B
- .dynsym) / 0x18) << 32 | 0x7 B
.bss Elf64_Relo Elf64_Sym “system¥x00” push reloc_offset _dl_runtime_resolve(“/bin/sh”) st_name = (C
- .dynstr) C
None
None
None
None
None
None
None
None
None
None
None
None
None