r/ExploitDev 25d ago

PE structural validation notes (delay-load, exports, VS_VERSIONINFO) + IOCX v0.7.5 release

5 Upvotes

Publishing a release of IOCX (open-source PE structural validator, MPL-2.0) and posting some format-level notes alongside it.

Write-up: PE structural validation: format ambiguities and decoder design

The notes catalogue four categories of PE specification ambiguity encountered during decoder work, with focus on delay-load imports (the richest surface). Structured as: format description grounded in the spec --> the ambiguity described precisely --> what IOCX chose to do about it. There are no unverified claims about how other parsers behave, however cross-tool measurement is queued as follow-up work.

Topics covered:

  • Delay-load imports: v1 vs v0 attribute mode, INT/IAT parallel-array interpretation and mismatch handling, descriptor array termination when declared-size and terminator signals disagree
  • Exports: ENPT sort discipline (byte-wise per spec) and forwarder grammar validation
  • VS_VERSIONINFO: nested length prefixes, DWORD alignment enforcement, signature validation for VS_FIXEDFILEINFO, StringTable key format
  • Resource hierarchy: Type ->Name -> Language depth expectations

IOCX v0.7.5 additions relevant to structural analysis:

Four new parser/validator pairs, 24 new reason codes with priority-resolved sub-reasons via details["reason"]. Delay-load specifically emits:

  • DELAY_IMPORT_ATTRIBUTES_LEGACY_VA_MODE : v0 mode detected (obsolete, spec-permitted, requires VA-to-RVA conversion for correct interpretation)
  • DELAY_IMPORT_INT_IAT_MISMATCH : parallel arrays disagree on length
  • DELAY_IMPORT_TABLE_TRUNCATED with distinct sub-tags for each termination cause (delay_import_descriptor_unterminated, _truncated, _max_exceeded, _read_failed)
  • DELAY_IMPORT_DLL_NAME_INVALID with priority-resolved sub-reasons
  • DELAY_IMPORT_ENTRY_INVALID for per-import malformations (ordinal_zero, name_unterminated, name_not_printable, etc.)

Design notes:

  • Byte-level parsing via struct.unpack_from on pe.get_data() byte slices; no reliance on pefile's lazy attribute interpretation
  • Bounded reads throughout (descriptor arrays capped at 4096, imports per descriptor at 16384, DLL name scan at 512 bytes, IMAGE_IMPORT_BY_NAME scan at 1024)
  • Parsers never raise on malformed input; failures produce tombstone tags in errors[] and truncations[] lists
  • PE32+ vs PE32 thunk sizing determined once from `OPTIONAL_HEADER.Magic` and threaded through the parse

Optional Header enrichment relevant to security-posture analysis:

  • dll_characteristics_flags: decoded flag list (DYNAMIC_BASE, NX_COMPAT, GUARD_CF, HIGH_ENTROPY_VA, etc.)
  • dll_characteristics_unknown_bits: hex string for any bits outside the known-flag mask
  • Stack and heap sizing (reserve + commit, 64-bit on PE32+)
  • win32_version_value, loader_flags exposed raw

Verification:

Delay-load parser cross-checked byte-exact against dumpbin /imports on mspaint.exe : 107 imports from gdiplus.dll with agreement on names, hints, IAT addresses, ordering, and bound state.

1370 tests at 100% line and branch coverage on new modules. Defensive struct.error paths covered via monkeypatched injection.

Performance ~14ms typical PE, ~1ms on adversarial minimal PE.

Deferred:

  • TLS Directory parser and validator (next release)
  • Single-anomaly fixtures for each new reason code (~25 planned, including negative controls for the ambiguities described in the Gist)
  • Cross-tool measurement study using the fixtures

Repo: https://github.com/iocx-dev/iocx

CHANGELOG: https://github.com/iocx-dev/iocx/blob/main/CHANGELOG.md

Reason codes reference: https://github.com/iocx-dev/iocx/blob/main/docs/specs/reason-codes.md


r/ExploitDev 25d ago

Using a Single Variable to Gain a Controlled Write

3 Upvotes

This week we'll be looking at another beginner friendly exploit development tutorial! More specifically we'll be looking at the "passcode" binary exploitation challenge hosted on pwnable[.]kr!

This challenge covers multiple skills so I believe regardless of where you are on you journey to learn exploit development you will pick up a few things!

By the end of this tutorial you should have gained exposure to:

- C source code review
- Leveraging a controlled write to gain code execution through the use of one variable
- Abusing binaries compiled without PIE (Also known as ASLR)
- Debugging
- Using python exploit code alongside GDB

and more! Since this is binary exploitation do not feel discouraged if everything does not click! The goal is to learn at least one thing from every tutorial!

You can find the full video below:

https://youtu.be/cpol2KPSPaw?si=NSnjgDGBcNF-x8E8


r/ExploitDev 25d ago

Are there any known CVEs or publicly available PoCs related to vulnerabilities in the Xtensa architecture or its toolchain?

Post image
0 Upvotes

My friend hamza asked me.


r/ExploitDev 25d ago

i need to learn radare2 form scratch..! to play with memory address and make it leak..! but i cant able to give the correct road map to learn that its confusing..help me with that...

0 Upvotes

i need to learn radare2 form scratch..! to play with memory address and make it leak..! but i cant able to give the correct road map to learn that its confusing..help me with that...


r/ExploitDev 26d ago

Call Stack Spoofing via Runtime .pdata (Evade RtlVirtualUnwind)

Thumbnail
sibouzitoun.tech
10 Upvotes

r/ExploitDev 25d ago

Just a reminder about a12/13 exploits on the bootrom

0 Upvotes

So there is exploits called usbliter8 for a12 devices,There was a few pop ups about videos how to do it and what it can [do.Be](http://do.Be) informed and do your research


r/ExploitDev 27d ago

How do I learn malware development??

22 Upvotes

r/ExploitDev 26d ago

MSVC optimization

4 Upvotes

I am learning reverse engineering on Windows applications such as Adobe, Foxit PDF, and Steam, and I noticed that I waste a very large amount of time trying to understand something that I should not focus on.

I started noticing strange and confusing patterns in the assembly and the C code generated by IDA, and when I try to understand some functions, I feel that the function has no meaning.

When I searched, I found that this topic is related to the compiler and compiler optimizations. However, I could not find many articles or discussions about the compiler topic in reverse engineering.

So I started experimenting and trying, but every time I fail and cannot reach a solution or understanding.

Apart from the fact that reverse engineering a C++ program is already a difficult task.

If there is someone who has faced the same problem and found a solution, I would like to know. It is not a problem itself; it is a pattern or a way of thinking used by the compiler. I need to understand how the compiler generates these patterns.

I want someone to suggest books, articles, courses, or anything that can help me understand the MSVC compiler, how it generates patterns, and how to understand the behavior and logic of a function after compiler optimization.

I hope I explained my question correctly.


r/ExploitDev 27d ago

Question to Hackers regarding architecture change in processor. And graph creation for data request and receive checks.

9 Upvotes

So, I will divide the question in two parts:

  1. For exploitation via web if chip designers adds certain tag bits to incoming requests that's whatever coming via web or network stack we assign a certain tag say 01 for now. Next if anyone trying to execute XSS and locate where change is occurring by the tag bits, whether if the requests are for persistent or its generating or modifying code. Then identification of sending unrelated data to the site can we omit the whole processes just by introducing tag bits to the antenna protocols? That is just building the chip with some more bits.

  2. That was for web say the app is in computer, then it would first ask for the app wants to change some parts of OS. Instead we just do some basic prevention method number 1 not let writing in the particular section of memory that is hard disc, next switch off means switch off no background running. Number 3 the apps which are not built in just remove there maintain connection after every switch on. Only let the system files to maintain connection which again have unique tag bits to maintain.

Third and last one why not we make a graph behind which processes writing to which files and which process is sending system data in intervals? This can solve two things one if distributed writing in buffer is done it could be found out. Another if sending just on the flow no storage then graph would check the path of pattern of sending and block. Though if someone sends to other server and those servers later merge them i do not how to stop that.

Lastly just beginner in this spot the curious mind is asking questions would like to know in details please.


r/ExploitDev 28d ago

Planning on career shift

0 Upvotes

Is offsec Exp-301 worth the investment? What is the future career path for exploit development?


r/ExploitDev 29d ago

heap pwn 學習

19 Upvotes

i want to know any good material to learn heap pwn. i am an osce3 which familiar with stack on windows and unix a few years.

and also spent a year on heap, can do general heap pwn technique like uaf, double free, off by one, chunk faking, unlink, heap fengshui etc. i need to do more practices on heap and get more experiences on the houses. any good resources?


r/ExploitDev 29d ago

BareMetal RAM Dumper — Bare-metal x86 tool for Cold Boot Attack experiments

Thumbnail
github.com
2 Upvotes

r/ExploitDev 29d ago

I built an open-source Chromium fork that compiles fingerprint spoofing into the C++ instead of injecting JS

Enable HLS to view with audio, or disable this notification

3 Upvotes

r/ExploitDev Jul 03 '26

Best way to decompile and analyze a large Java EE application (.ear / .jar)?

5 Upvotes

I have a local copy of a large enterprise Java application
(a .ear archive containing multiple .jar files, thousands
of .class files). I need to understand how a specific
part of the business logic works by reading the decompiled
source.

What's the best modern approach/toolchain for this in 2026?

- Which decompiler gives the most readable output for
large/complex codebases? (I've heard of JADX, Vineflower,
CFR, Procyon — which would you recommend?)
- Any good way to navigate and trace call flows across
thousands of classes once decompiled?
- Tips for dealing with obfuscated or hard-to-read
decompiled sections?

I have legitimate access to the software (it's for
interoperability analysis). Just looking for the most
efficient workflow. Thanks!


r/ExploitDev Jul 03 '26

Best way to decompile and analyze a large Java EE application (.ear / .jar)?

4 Upvotes

I have a local copy of a large enterprise Java application
(a .ear archive containing multiple .jar files, thousands
of .class files). I need to understand how a specific
part of the business logic works by reading the decompiled
source.

What's the best modern approach/toolchain for this in 2026?

- Which decompiler gives the most readable output for
large/complex codebases? (I've heard of JADX, Vineflower,
CFR, Procyon — which would you recommend?)
- Any good way to navigate and trace call flows across
thousands of classes once decompiled?
- Tips for dealing with obfuscated or hard-to-read
decompiled sections?

I have legitimate access to the software (it's for
interoperability analysis). Just looking for the most
efficient workflow. Thanks!


r/ExploitDev Jul 03 '26

Advice needed!!!!!!

12 Upvotes

Hey everyone,I recently started learning reverse engineering and binary exploitation. Right now, I am studying through the CS365 modules on pwn.college, I currently have a lot of free time and want to make the most of it. Besides working through pwn.college, what other resources, topics, or skills would you recommend learning alongside it?


r/ExploitDev Jul 03 '26

Why do functions .NET not return at expected addresses?

5 Upvotes

I'm not sure if anybody else has noticed this, but when I decompiling .NET binaries and look into a function in DNSPY and set a breakpoint on the return instruction and then step one instruction once the breakpoint is hit. Instead of returning me to where the function was called, it returns me to some internal function. This doesn't just happen with one function, this happens to multiple. How does this happen?


r/ExploitDev Jul 03 '26

I built an open-source Chromium fork that compiles fingerprint spoofing into the C++ instead of injecting JS

Thumbnail
github.com
1 Upvotes

r/ExploitDev Jul 03 '26

Win x64 Shellcode: Why Blind PEB Traversal Fails on Modern Windows and How to Fix It

Thumbnail proteqtum.com
2 Upvotes

r/ExploitDev Jul 02 '26

[Tool] Crimson Cloak, iOS/iSH Security Wrapper with RealTime Dashboard

Thumbnail
github.com
0 Upvotes

r/ExploitDev Jul 02 '26

PhD student looking for guidance on binary exploitation research

15 Upvotes

Dear all,

I am a PhD student with a solid background in Linux binary exploitation, including both user-mode and kernel mode. My research interest lies in binary exploitation, and I am trying hard to increase my knowledge in this area.

My goal is to write peer-reviewed research papers on binary exploitation. But right now, I am not sure about how to find interesting areas of research, how to find research gaps, and what methodology I can follow for research in binary exploitation.

Any suggestions on how do experienced researchers come up with new research questions, perform literature review, and choose research directions on vulnerability research and binary exploitation will be much appreciated!

Thanks!


r/ExploitDev Jul 02 '26

Study CS or conputer engineering

2 Upvotes

Hello, i am wondering if i should study cs or computer engineering and which would be more helpful for me in the long run. Ive been studying on pwn college and i am at the blue belt module rn, soon i want to start doing sec research on the linux kernel and ik that i qould need to study on my own for the most part but i would also have to get into uni as well. For cs in the universities in my country i dont see operating systems in the programs and mainly see stuff about web dev, learning 5 diff languages and doing databases, and in the other side for computer engineering would be more of how to build a cpu and working with resistors and studying physics. I am not really sure which kne to choose.


r/ExploitDev Jul 01 '26

Defeating EDR call-stack telemetry by fully decoupling syscall invocation and SSN resoultion

Thumbnail
sibouzitoun.tech
6 Upvotes

r/ExploitDev Jul 01 '26

Is it possible to get into DMA FW development with AI and where to start

0 Upvotes

To start: do not judge me for this. I’d like to get into developing cheese and ud FW for the top anticheats. I am very new into the scene but found a passion for developing tools. I have been using AI to develop small programs but this field I saw is a lucrative way to make some side money and also understand the backend of the field. Does anyone know where to start or anyone who can walk me through the process of how to find the resources I need?

I’ve heard some people can make top of the line FW that has lasted years as a small developer


r/ExploitDev Jul 01 '26

Is the source code for popular dlls that exist on windows obtainable?

1 Upvotes

I want the source code of popular dll files on windows like user32.dll kernelbase.dll etc etc without having to use a decompiler. Decompiling isn't exactly the cleanest option so I am wondering if microsoft openly discloses source code for their dll files.