Skip to content

A presentation introducing the subject, example MacOS CrackMe (Swift+C) and keygens

Notifications You must be signed in to change notification settings

giuliano108/reverse-engineering-intro

Repository files navigation

Binary Reverse Engineering

https://giuliano108.github.io/reverse-engineering-intro/

A presentation introducing the subject, example MacOS CrackMe (Swift+C) and keygens.

The slides are available here. Alternatively, run make serve and go to http://localhost:8000 to see them. Most of the code boxes can/are meant to be scrolled around.

file/dir description
./CrackMe CrackMe app Swift source code, also contains validate.c (the "validate" function)
./CrackMe.app compiled app binary bundle
./slides the presentation
./0x100001f00.asm validate, disassembled using Hopper
./0x100001f00.c validate, decompiled to C still by Hopper
./0x100001f00.pdf validate, Control Flow Graph
./validate.py validate, reversed and translated to python
./cli_crackme.c CLI, pure C, version of the CrackMe. Uses validate.c.
./keygen-z3.py Z3 KeyGen
./keygen-angr.py angr KeyGen

To run the keygens:

$ make venv
$ . ./venv/bin/activate
(venv)$ pip install -U pip
(venv)$ pip install -r requirements.txt
(venv)$ python keygen-z3.py
email: [email protected]
code : 389444254963840534810840

email: [email protected]
code : 257079862763840534810902

email: [email protected]
code : 226010129163840534817001

(venv)$ python keygen-angr.py
WARNING | 2017-05-06 11:57:18,191 | cle.bindings.macho | The Mach-O backend is not well-supported. Good luck!
ERROR   | 2017-05-06 11:57:18,236 | simuvex.plugins.unicorn | You are attempting to use unicorn engine support even though it or the simuvex compatibility layer isn't installed
email: [email protected]
code : 389444254990075435188938

(venv)$

To compile the CLI version of the CrackMe:

$ make cli_crackme

Acknowledgments

About

A presentation introducing the subject, example MacOS CrackMe (Swift+C) and keygens

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published