Code Monkey home page Code Monkey logo

pegasus's Introduction

PegasusEar

Custom CPU architecture and binary file format, initially created for SunshineCTF 2020.

Useful Documentation

Project Structure

  • challenges: Source code for the various CTF challenges that have been built on top of the PEGASUS platform.
  • client: Command line program to upload a PEGASUS file to a server and print the result. Product: submitpeg
  • common: Defines macros and other common support functionality used by multiple subprojects.
  • docs: Contains Markdown-formatted documentation for the EAR architecture and PEGASUS file format.
  • earasm: EAR assembler and PEGASUS linker.
  • kjc_argparse: Command line argument parsing library.
  • mkexeloadable: Tool used to patch Linux executables to make them loadable using dlopen() on newer versions of Ubuntu.
  • pegasus_ear: Core EAR emulator, debugger, and PEGASUS loader. Product: libpegasus_ear.so
  • runear: Simplified command line program for running a raw binary file as EAR code. Product: runear
  • runpeg: Command line program for running a PEGASUS file with a variety of options. Product: runpeg
  • server: Library for receiving a PEGASUS file from a client, saving it, and running it. Product: libpegasus_server.so
  • tests: Contains a pytest suite for testing the assembler, and assorted assembly files for testing the loader/emulator.

Building & Deploying

Builds using PwnableHarness's pwnmake utility:

git clone --recursive https://github.com/kjcolley7/PEGASUS.git && cd PEGASUS
pwnmake <build-targets>
  • pwnmake: Compile all binaries
  • pwnmake docker-build: Build Docker images for all server-based challenges
  • pwnmake docker-start: Start Docker containers for all server-based challenges
  • pwnmake publish: Publish all build artifacts that should be distributed to players to the publish folder
  • pwnmake check: Run the test suite for assembler and emulator
  • pwnmake solve: Run solution scripts for all challenges, using localhost for server challenges
  • pwnmake solve SERVER=<address>: Run solution scripts for all challenges using the provided IP/hostname as the target server

pegasus's People

Contributors

kjcolley7 avatar

Stargazers

lilith avatar Tasos Meletlidis avatar ckrielle avatar  avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.