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
[workshop] Exploring the Portable Executable fo...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ange Albertini
September 13, 2013
Technology
520
0
Share
[workshop] Exploring the Portable Executable format
44Con 2013
London, England
Ange Albertini
September 13, 2013
More Decks by Ange Albertini
See All by Ange Albertini
Fearsome File Formats
ange
0
1k
Overview of file type identifiers
ange
0
1.4k
A question of time
ange
0
1.2k
SBuD: InfoVis in InfoSec
ange
1
950
Generating Weird Files
ange
0
470
Technical challenges with file formats
ange
1
2.3k
Inside out - abusing archive file formats
ange
3
2k
Relations between archive formats
ange
0
2.4k
Beyond your studies v2
ange
2
1.1k
Other Decks in Technology
See All in Technology
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
280
Bref でサービスを運用している話
sgash708
0
220
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
400
AI時代のIssue駆動開発のススメ
moongift
PRO
0
320
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
120
AWS DevOps Agent or Kiro の使いどころを考える_20260402
masakiokuda
0
120
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
130
契約書からの情報抽出を行うLLMのスループットを、バッチ処理を用いて最大40%改善した話
sansantech
PRO
3
330
AgentCoreとLINEを使った飲食店おすすめアプリを作ってみた
yakumo
2
270
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
250
ハーネスエンジニアリング×AI適応開発
aictokamiya
2
960
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
3
2k
Featured
See All Featured
Chasing Engaging Ingredients in Design
codingconduct
0
150
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
870
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
440
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
200
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
190
Optimizing for Happiness
mojombo
378
71k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Building AI with AI
inesmontani
PRO
1
840
Into the Great Unknown - MozCon
thekraken
40
2.3k
Designing for humans not robots
tammielis
254
26k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Transcript
Exploring the Portable Executable format London, England Ange Albertini 2013/09/13
Workshop package (PoCs+docs) http://www.xchg.info/corkami/workshop.zip Recommended PE viewer: http://icerbero.com/peinsider
None
None
None
None
None
None
None
None
None
None
None
None
None
a handmade PE simple.exe a first real example working minimal
None
None
None
detailed walkthrough
None
DOS header unused in PE mode
None
PE header PE signature
None
Optional Header NOT optional in executables
None
DataDirectories end of OptionalHeader 16 (max) * [RVA, Size] each
entry interpreted differently
None
Sections memory mapping
None
None
Imports standard loader mechanism NOT required load DLL, locate APIs
None
compiled PE compiled.exe closer to reality extra non-critical structure
None
None
None
DLL exports relocations
None
None
driver subsystem, checksum low alignments mapping different imports
None
resources structure version, manifest/icon, APIs
None
None
Thread Local Storage callback list before EntryPoint & after ExitProcess
None
.Net different and integrated binary 2nd loader
None
what about 64b? very few changes • 2 magic constants
• a few elements become QWord ◦ ImageBase, Imports thunks, callbacks • Exceptions have their own DataDirectory ◦ no need for LoadConfig (SafeSEH)
and ARM • a different magic constant • still 16b
DOS Stub ! • nothing special, PE wise ◦ the beauty of ‘Portability’
trivial
None
None
None
None
None