Skip to content

moval0x1/PEHint

Repository files navigation

PEHint - PE Header Learning Tool

Version CI License Platform GitHub downloads GitHub stars GitHub forks

Overview

PEHint is a visual PE file analyzer for analysts, reverse engineers, and students who need quick insight into Windows executables. The Structure tab combines an interactive PE tree, JSON-driven field explanations, and a synchronized hex view. Additional tabs cover Imports, Exports, Dependencies, and Strings (filters, async extraction, export to file). Optional local clones of Microsoft documentation under third_party/ power richer Imports API summaries; without them, the app still lists modules and symbols normally.

Key Features

  • Complete header coverage: DOS header, NT headers, optional header, sections, and all 16 data directories
  • Contextual field explanations with in-place reading flow
  • Structured Imports / Exports tabs: module lists, thunk offsets, ordinals; ordinal-only imports often get a resolved name from the system copy of the exporting DLL when PEHint can read its export table
  • Dependencies tab: resolve imported DLLs against the PE directory, PATH, and system folders
  • Strings tab: ASCII / UTF-16LE strings with offset, type filter, min-length/section controls, async extraction, export, and double-click a row to jump to that string in the hex viewer (highlighted)
  • Hex viewer: virtualized, paint-based dump (no giant QTextDocument) so scrolling and large PEs stay fast; stays in sync with tree selections and field highlights
  • Find in hex: search hex byte patterns or, with “Hex only” off, plain text as UTF-8 bytes; case-sensitive option; next/previous through matches
  • Language packs (English and Portuguese) and configuration-driven explanations
  • Imports API summaries from local Microsoft Learn Markdown: optional—clone sdk-api (and optionally Console-Docs) into third_party/ (see third_party/README.txt); set PEHINT_SDK_API_CONTENT / PEHINT_WINDOWS_CONSOLE_DOCS if paths are non-standard

Screenshots

Main Interface

PEHint Main Interface

Field Explanations

DOS Header Field Explanation

Imports View

Imports Tab

Exports View

Exports Tab

Dependencies View

Dependencies Tab

Strings View

Strings Tab

Languages

  • English - Default language
  • Portuguese (Brazil) - Complete Brazilian Portuguese support

Import API hints (third_party)

The Imports tab can show curated API summaries (signature, parameters, links to Microsoft Learn) only when PEHint can read local Markdown from cloned Microsoft documentation repos. Nothing is bundled in the release binary—you must supply the content yourself.

Requirement (for full import hints): clone the repos under third_party/ and use the folder layout and optional environment variables described in third_party/README.txt:

  • MicrosoftDocs/sdk-api — Win32 API reference (nf-*.md under the repo content tree); override with PEHINT_SDK_API_CONTENT if needed.
  • MicrosoftDocs/Console-Docs (optional) — console APIs not covered by sdk-api; override with PEHINT_WINDOWS_CONSOLE_DOCS.

PEHint discovers third_party/sdk-api and third_party/console-docs next to the executable - same folder as PEHint.exe. Without these clones, the Imports panel still lists DLLs and symbols, but the API summary area shows a short “no summary” message instead of topic text.

References (PE format & Windows)

Optional deeper reading: "An In-Depth Look into the Win32 Portable Executable File Format" (MSJ articles, often mirrored).

Greetz

Huge thanks to everyone who kicked the tires on PEHint, reported rough edges, and suggested ideas—your testing and feedback shaped what shipped.

License

MIT License - see LICENSE for details.


PEHint v0.4.5 — Making PE header analysis accessible and educational with modern C++ and Qt 6.

About

A Portable Executable Hint that was created for study purposes. Feel free to use it and help improve. ;)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors