Jump to content
4 posts in this topic

Recommended Posts

Hi all — sharing a free macOS app I built: Kernel Inspector. It opens a .kext bundle or any Mach-O binary and lets you dig through it (think a lightweight Hopper), plus it bundles the Hackintosh chores I got tired of doing by hand.

Download: https://github.com/luminadevapps/KernelInspector/releases
Source:   https://github.com/luminadevapps/KernelInspector

WHAT IT DOES

Analyze
- Info.plist — kext identifier, version, UUID, linked libs, full searchable Info.plist
- Hex Editor — byte view with hex find & replace and patch-to-file
- Symbols — full nlist_64 table with global/local/undefined/debug filters
- Disassembly — ARM64 / x86-64 of __text, colour-coded by branch/call/return
- Control Flow — per-function basic-block graph
- Pseudocode — heuristic pseudo-C (readability aid, not a decompiler)

System (Hackintosh)
- Install Kexts — readiness dashboard (SIP / macOS build / target / cache tool),
  install a .kext to /Library/Extensions or into your OpenCore EFI (auto-adds
  Kernel->Add + plugins to config.plist, backs it up first), rebuild caches, uninstall
- Maintenance — ESP-mounter style EFI partition mount/unmount, Kernel Debug Kit
  manager, config.plist viewer, APFS snapshot cleanup

All privileged steps use the standard macOS admin prompt — the app never sees your password.

INSTALL
1. Download the .dmg from the Releases page
2. Drag Kernel Inspector into Applications
3. First launch only: right-click -> Open -> Open (it's ad-hoc signed, not notarized)

Needs macOS 13+ and the Xcode Command Line Tools (xcode-select --install) — the
disassembler shells out to otool/llvm-objdump.

NOTES
Pseudocode/CFG are heuristic. Parser targets 64-bit Mach-O. It's a study/RE aid for
binaries you own or are allowed to analyse. Feedback and bug reports welcome — cheers!
disassembly.thumb.png.83733558059c7c5f85b971af790044cb.png

 

info-plist.thumb.png.73684efcab868045172ac9d391ac911d.png

 

install-kexts.thumb.png.c5a3a0e688c477274df3718349023a8f.png

 

maintenance.thumb.png.bc5c0f249d0a3d76327cec58339ed4eb.png

 

  • Like 2

Great work!

Will be nice to have a column with a hex value of the instruction before disassemble.

address |  hex         | instruction

0x1234     0x0bfe     BR .-2

It was in HopperD version 3 but escaped in new versions.

  • Like 1

Hi all 👋

Started as a simple kext / Mach-O analyzer (Info.plist, hex, symbols, disassembly, control flow, pseudocode) and grew into a full toolbox:

  • Mount EFI + install kexts and auto-register them in config.plist
  • SSDT generator (compiles to .aml with iasl)
  • XHCI port-limit patch — reads your live kernel and spits out the exact Find/Replace + config.plist entry for yourbuild. Optional masked mode so it survives macOS updates.
  • USB port viewer + map exporter
  • XCPM / CPU patch verifier — one click tells you if your CPU patches still match after an update

Screenshot2026-07-23at08_33_54.thumb.png.440cdde07fc82efe2ef0a282bd10d53f.png

 

Screenshot2026-07-23at08_35_49.thumb.png.bfd797fcb2bbda7ba2ae654c526f2f52.png

 

Screenshot2026-07-23at08_36_01.thumb.png.16c0e76a3f39438cd1ca140246b24587.png

 

 

Screenshot 2026-07-23 at 08.35.27.png

 

The whole idea: stop hunting for byte patterns that break on every macOS update — derive them from your own kernel and verify them in seconds.

Running great here on Z790 + i9-13900K, macOS 26.5. Still improving it — what would you want added?

Edited by Luminadevapps
On 7/21/2026 at 2:29 AM, Slice said:

Great work!

Will be nice to have a column with a hex value of the instruction before disassemble.

address |  hex         | instruction

0x1234     0x0bfe     BR .-2

It was in HopperD version 3 but escaped in new versions.

Thanks! 🙏 Great suggestion — just added it. New Hex column in the Disassembly view (Address | Hex | Instruction), Hopper-v3 style. You can even filter by the hex bytes now to jump straight to an instruction. Screenshot below 👇

Screenshot2026-07-23at09_13_45.thumb.png.ce6df71b0db1feaf86d4b953faf090d6.png

 

Screenshot2026-07-23at09_14_05.thumb.png.1a82351779067b3b6097f0e35bf74664.png

 

 

×
×
  • Create New...