Original crackme from the BetterMint community.
The live race is over, but you can still try to break it for fun.
This repo contains:
- The original challenge binary used in the first BetterMint RE event
- The source code for people who want to study how the protections were implemented (after solving, ideally)
The live competition in the BetterMint Discord is over, but this crackme stays here as a practice target for anyone who wants to:
- Learn reverse engineering
- Play with basic anti-analysis / obfuscation
- Try patching a real-world-style challenge binary
Grab the original binary from the release:
➡️ Release:
https://github.com/BetterMint/BetterMint-RE-1/releases/tag/Challenge
File provided:
BetterMint_RE.exe– the crackme binary
The core idea is simple:
Find the flag. Make the binary accept it.
More specifically:
- Recover the flag in the format:
BETTERMINT{...} - Patch or manipulate the binary so that it accepts your flag and reports success
- Bonus style points if you:
- Keep the patch minimal
- Bypass protections cleanly
- Can explain what the protections were doing
Originally rated:
Difficulty: “not that hard tbh.”
So it’s meant to be accessible but not completely braindead.
The binary includes multiple layers of defense to make analysis a bit annoying, such as:
- Basic anti-analysis / anti-debug behavior
- Obfuscation around important logic and strings
- Control-flow that doesn’t immediately look obvious
- A few things that are “not what they seem”
Nothing here is meant to be insane, but it’s closer to a practical beginner–intermediate RE challenge than a toy example.
- Download
BetterMint_RE.exefrom the Challenge release. - Run it in a VM / safe environment (standard RE hygiene).
- Poke it:
- Try random input
- See how it behaves
- Note any weird behavior, crashes, or messages
- Load into a disassembler / debugger:
- Look for input handling and flag verification logic
- Rename functions, reconstruct what’s happening
- Recover the flag in the format
BETTERMINT{...}. - Patch it so the binary accepts your flag:
- Modify conditional jumps
- NOP out checks
- Or do something more creative
- Only then peek at the source in this repo to:
- Confirm your understanding
- See how the protections were written
- Learn how you might improve / break them further
If you want to build the challenge from source, follow:
📄 Build Instructions:
https://github.com/BetterMint/BetterMint-RE-1/blob/main/BUILD_INSTRUCTIONS.md
This covers the exact steps and environment needed to reproduce the binary.
If you’re using this as a learning resource, try to answer:
- Where does user input go?
- What does the flag check actually depend on?
- What protections actually slowed you down vs. what was just noise?
- How would you design a tougher version of this challenge?
Forks and writeups are welcome — just mark spoilers clearly if you publish them.
This was the first BetterMint RE challenge. Future ones (harder, probably more cursed) will be hosted in the Discord.
If you want:
- Early access to new crackmes
- Reverse engineering races
- Refactor-of-the-day style coding challenges
- Game dev / scripting / security / tooling chaos
join the community here:
👉 BetterMint Discord
https://discord.gg/basic
Watch for the @Reverse Engineer This ping for future events.
- Educational use only.
- Don’t run unknown binaries outside of a controlled environment.
- If you struggle… skill issue (but also, fr, it’s fine — ask questions, learn, come back stronger).
Enjoy breaking it. 🧩🧨
.gif?raw=true)