Skip to content

Prevter/bromascan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bromascan

bromascan helps move Broma bindings to new Geometry Dash builds without redoing every offset search by hand. The repo bundles a shared core plus three small CLIs:

  • genpat – turn a known binary and its bindings into pattern files.
  • scanpat – run those patterns on another build to recover the updated addresses.
  • broutil – clean, format, and merge .bro files with scan results.

Project Layout

  • shared/ – common helpers (data types, serialization, threading).
  • genpat/ – pattern generator CLI (genpat/main.cpp).
  • scanpat/ – bulk pattern scanner (scanpat/main.cpp).
  • broutil/.bro helper CLI (broutil/main.cpp).

Requirements

  • CMake ≥ 3.21
  • A C++23 compiler (GCC/Clang/MSVC)
  • Git for CPM dependency fetching

Build

cmake -S . -B build
cmake --build build

Usage

Generate patterns:

genpat GeometryDash.22074.mac CodegenData-22074.json Patterns.imac.22074.json -p imac

-p imac is only needed for that platform; other binaries auto-detect the platform unless you override it with -p/--platform.

Scan another binary with those patterns:

scanpat GeometryDash.22074.exe Patterns.Win.22074.json Output.Win.22074.json

broutil helpers (pick one flag):

broutil --clear input.bro cleaned.bro
broutil --append base.bro Output.Win.22074.json merged.bro
broutil --format messy.bro pretty.bro

Add --verbose to genpat/scanpat when you want extra logging.

Data Prep

You need two matching resources for each game build:

Both files plus the target Geometry Dash binaries (one per platform you plan to scan) let you merge newer bindings back into a clean .bro with broutil.

License

MIT License. See LICENSE for details.

About

Function bindings signature generator/scanner

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published