100+ Free OSED Practice Questions
Pass your OffSec Exploit Developer (OSED) exam on the first try — instant access, no signup required.
In the Microsoft x86 cdecl calling convention used on 32-bit Windows OSED targets, who is responsible for cleaning up the arguments pushed onto the stack after a function call?
Key Facts: OSED Exam
48 hrs
Exam Duration
OffSec (47h45m practical)
2 of 3
Challenges to Pass
OffSec
32-bit
Primary Architecture
OffSec EXP-301
$2,499
Learn One Price
OffSec annual
3 yrs
Validity
OffSec (since 2023)
Advanced
Difficulty
OffSec 300-level
The OSED exam is NOT multiple choice — it is a 47h45m hands-on lab with 3 independent exploit-development challenges plus a 24-hour reporting window. You must deliver fully working exploits for 2 of the 3 challenges to pass. Our 100 practice questions on this site build the underlying knowledge (x86 assembly, WinDbg, mona.py, ROP, SEH, shellcoding) — they do NOT replicate the exam. Certification is valid 3 years. No formal prerequisites, but strong C + x86 + Windows internals expected.
Sample OSED Practice Questions
Try these sample questions to test your OSED exam readiness. Each question includes a detailed explanation. Start the interactive quiz above for the full 100+ question experience with AI tutoring.
1In the Microsoft x86 cdecl calling convention used on 32-bit Windows OSED targets, who is responsible for cleaning up the arguments pushed onto the stack after a function call?
2Which mona.py command generates a list of ROP gadgets for building VirtualProtect / VirtualAlloc chains on 32-bit Windows modules?
3Which register's value must a SEH-based overflow exploit typically control to hijack the Structured Exception Handler chain on 32-bit Windows?
4Why is a pop-pop-ret gadget specifically used for SEH handler takeover?
5Which tool is commonly used alongside Immunity Debugger / WinDbg for generating/encoding shellcode on OSED labs?
6Which DEP-bypass technique uses a ROP chain that ends by calling VirtualProtect to mark the shellcode region executable?
7An OSED exploit requires shellcode with no null bytes, 0x0A, or 0x0D. Which mona.py command helps identify badchars via comparison?
8Which SEH hardening mitigates naive SEH overwrites by validating the handler address against a whitelist compiled into the module?
9Which technique finds a pop-pop-ret gadget inside a non-SafeSEH module for an SEH-overwrite exploit?
10Which OSED concept relies on searching process memory for a pair of signature bytes (e.g., w00tw00t) to locate a larger payload?
About the OSED Exam
The OffSec Exploit Developer (OSED) is OffSec's advanced Windows user-mode exploit-development certification tied to the EXP-301 course. Topics include reverse engineering in IDA Pro, stack overflows, SEH overwrites, egg hunters, format string bugs, heap overflows, DEP/ASLR bypass via ROP (mona.py), custom shellcode, and PE binary backdooring on 32-bit Windows.
Questions
3 scored questions
Time Limit
47 hours 45 minutes + 24 hours reporting
Passing Score
2 of 3 challenges (full working exploits)
Exam Fee
$2,499 (Learn One annual subscription) (OffSec (Offensive Security))
OSED Exam Content Outline
WinDbg, x86 Assembly & PE Format
Registers, calling conventions, stack frames, PE headers (IMAGE_NT_HEADERS, sections, IAT, EAT), WinDbg commands (!peb, bp, dd, u, g), IDA Pro navigation
Stack Overflows, SEH & Egg Hunters
Classic EIP overwrite, SEH chain corruption, SafeSEH/SEHOP bypass, pop-pop-ret, egghunters (w00tw00t, NtDisplayString), Unicode/badchar handling
ROP, DEP & ASLR Bypass
Building ROP chains with mona.py, VirtualAlloc/VirtualProtect/WriteProcessMemory gadgets, partial overwrite to defeat ASLR, return-to-libc techniques, stack pivoting
Shellcoding & PE Backdooring
Custom shellcode (PEB walking, GetProcAddress resolution), msfvenom encoders, format string exploitation, code cave injection into PE binaries, hijacking execution flow
How to Pass the OSED Exam
What You Need to Know
- Passing score: 2 of 3 challenges (full working exploits)
- Exam length: 3 questions
- Time limit: 47 hours 45 minutes + 24 hours reporting
- Exam fee: $2,499 (Learn One annual subscription)
Keys to Passing
- Complete 500+ practice questions
- Score 80%+ consistently before scheduling
- Focus on highest-weighted sections
- Use our AI tutor for tough concepts
OSED Study Tips from Top Performers
Frequently Asked Questions
Is the OSED exam multiple choice?
No. The OSED exam is fully practical — 3 independent exploit-development challenges over 47 hours 45 minutes, then 24 hours to submit the report. You must deliver working proof-of-concept exploits for 2 of the 3 to pass; partial exploitation does not earn points. Our 100 practice questions on this site are knowledge checks for the underlying skills (x86 asm, WinDbg, ROP, SEH, mona.py) — they do not replicate the exam.
What is the OSED passing score?
You must successfully complete 2 out of 3 exploit-development challenges. Each challenge requires a fully working exploit — partial progress awards zero points. This binary scoring is why OSED feels harder than the point percentage suggests.
Is OSED 32-bit or 64-bit?
OSED (EXP-301) focuses primarily on 32-bit Windows user-mode exploitation. While the concepts transfer to 64-bit, the lab targets and exam challenges are built on 32-bit binaries. For 64-bit kernel exploitation, you want OSEE (EXP-401).
What tools do I need to know for OSED?
IDA Pro (or Ghidra), WinDbg (primary debugger per updated course), Immunity Debugger (legacy), mona.py (ROP gadget hunting), msfvenom (shellcode generation), Python (exploit scripting), and Visual Studio / MASM for custom shellcode. Our practice questions reference each of these.
How long should I study for OSED?
Plan 3-6 months of dedicated study beyond the EXP-301 course materials. Build HackTheBox / try exploit.education / run vulnserver. Use our 100 practice questions to identify conceptual weak spots (SEH chains, ROP gadget selection, egghunter logic, PE format) before committing to the exam voucher.
How should I use these practice questions?
Treat them as knowledge validators for the EXP-301 modules. If you miss questions on mona.py usage, ROP chain construction, or WinDbg breakpoint commands, revisit those course sections and build the primitive by hand in a lab VM. The real exam tests execution speed — knowledge is a prerequisite, not the bottleneck.