Milestone M1 — Static PE Inspection¶
Issue: #4 (https://github.com/joelvaneenwyk/py-launch-lab/issues/4)
Description¶
Implement static PE header inspection so the project can classify any Windows executable as GUI-subsystem or console-subsystem. This is the foundational analysis layer that all later milestones depend on.
How it Works¶
- Read the PE (Portable Executable) header from a given
.exefile - Extract the
IMAGE_SUBSYSTEMfield from the optional header - Classify the executable as
IMAGE_SUBSYSTEM_WINDOWS_GUIorIMAGE_SUBSYSTEM_WINDOWS_CUI - Store the result in a
pe_subsystemfield on the scenario result object
Tasks¶
- [ ] Implement
inspect_pe.py: read PE header from any Windows EXE - [ ] Classify
IMAGE_SUBSYSTEM_WINDOWS_GUIvsIMAGE_SUBSYSTEM_WINDOWS_CUI - [ ] Support inspection of Python, PythonW, uv, uvw executables
- [ ] Store
pe_subsystemfield in result objects - [ ] Unit tests for PE inspection against known executables
Next Steps¶
- [ ] Verify PE parsing against CPython
python.exeandpythonw.exe - [ ] Confirm
uvanduvwexecutables are correctly classified - [ ] Ensure graceful handling on non-Windows platforms