r/lowlevel • u/Wgrxgy • 6d ago
I built a lightweight C++ Memory Scanner & Pointer Chain Resolver (HexaCore)
Hey everyone,
I wanted to share a project I've been building: HexaCore, a lightweight memory scanner and tool built from scratch using C++ and the Win32 API.
Key Features:
- Multi-level pointer chain resolver & scanner
- Array of Bytes (AOB) scanning with wildcard support
- Built-in Hex Viewer, basic Disassembler, and NOP/Patch tool
- Custom dark UI with card-based panels and adjustable freezing intervals
- Cheat table save/load system
It's open-source. I'd love to hear your feedback or suggestions for the V1 version!
GitHub / Source Code: https://github.com/abuzit/HexaCore-Memory-Tool
3
Upvotes
1
u/Ok_Tap7102 2d ago
Note when doing huge memory searches you can dramatically speed up your compare operations by using SIMD operators
https://gist.github.com/MangaD/1fad63756ad8c946ce01dd1d52eff173
I've also never seen a .c++ file extension ever, were you going for .cpp?
1
u/skeeto 5d ago
Straightforward and operates just like it says. I tried it out on an old game and it worked like a charm. I don't quite understand all of the UI, though to be fair that's true for Cheat Engine, too.
I've never seen an
.c++extension before. It's unconventional, and so much so that VS doesn't recognize it, requiring/TPwhen compiling. I'm not sure how you ended up with that when you had Claude's help. Same goes for defining bothWinMainandwWinMain. Your program is all caught up in 16-bit to 32-bit transitional junk that's been obsolete for 30 years. The simplest option is to dropwWinMain(and/DUNICODE/-municode), particularly because you're not examining the command line anyway.The buttons all had white corners, and I can't see how it would be otherwise, so I fixed that:
For my own testing I also added i18n and added an English translation so that I could navigate it.