Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/disconnect3d/crackme
Small crackme game on Linux
https://github.com/disconnect3d/crackme
crackme game hack reverse-engineering
Last synced: about 1 month ago
JSON representation
Small crackme game on Linux
- Host: GitHub
- URL: https://github.com/disconnect3d/crackme
- Owner: disconnect3d
- Created: 2015-11-16T22:25:59.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2018-12-12T21:28:45.000Z (about 6 years ago)
- Last Synced: 2024-11-05T09:51:47.157Z (3 months ago)
- Topics: crackme, game, hack, reverse-engineering
- Language: C++
- Homepage:
- Size: 12.7 KB
- Stars: 27
- Watchers: 4
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cr4ckm3 game
Cr4ckm3 is a small cracking game in which you search for password by using "unusual" [debugging] tools.
The exercises are pretty easy, you need to use tools like `strings`, `strace`, `gdb`, `gprof` or `g++`/`clang++` sanitizers.
# Docker build instructions
To make sure you have all the right versions of all the required tools, there is a Docker build file. To build the Docker image:
```bash
bash ./docker/build.sh
```... and play the game, run the following:
```bash
bash ./docker/run.sh
# now you're in the container
cat README.md # to see instructions
cd crackme/
ls # you'll see all the challenges here
```# Rules
* do not look into makefile or src sources
* do not change chmods# How to play
Just clone the repository and fire `make` - it will build up a `crackme` directory. The first level is called `warmup`, so just fire `./crackme/warmup`. Hack it with `strace` or `strings`.
The password you will find is the next level file name (so if you find `password is something`, then the next file to hack is `./crackme/something`).
# Authors
The game was made by Dominik Czarnota & Dariusz Zielinski for university classes at AGH University of Science and Technology in Cracow.
# Hints/tools needed for particular level
Level 0 - warmup - `strace` / `strings`
Level 1 - `strace` / `grep`
Level 2 - `strace`, knowledge of file descriptors (and which file descriptors are usually opened for an executable?)
Level 3 - `strace` (did you know that you can read about syscall using `man`? e.g. `man 2 read`)
Level 4 - one of `g++` / `clang++` sanitizer (refer to `man g++` or read up documentation) should tell you what's wrong; you have to fix the program in here (so yeah, `cp` the source, change something and recompile)
Level 5 - `strace`
Level 6 - the binary is compiled with `-pg` flag; use `gprof`
Level 7 - `gdb`