distributed (?) programmable brute force harness
Go to file
xenia 08703525d8 implement embedding config params in agent binary 2020-11-15 19:46:29 -05:00
agent-deployment implement embedding config params in agent binary 2020-11-15 19:46:29 -05:00
crossfire implement embedding config params in agent binary 2020-11-15 19:46:29 -05:00
.envrc update agent embedding system 2020-11-15 02:28:09 -05:00
.gitignore implement embedding config params in agent binary 2020-11-15 19:46:29 -05:00
COPYING change gpl to agpl 2020-10-25 02:54:51 -04:00
LICENSE add gpl 2020-10-25 02:53:08 -04:00
Makefile update agent embedding system 2020-11-15 02:28:09 -05:00
README.md add rpc protocol utilities 2020-11-12 23:22:20 -05:00
license.template get equipped with: obnoxious 2020-11-07 16:42:43 -05:00

README.md

crossfire

distributed brute force infrastructure

takes the difficulty out of creating custom brute force jobs

status

base

  • 🚧 input space manipulation functions
    • data types: interval, iset (interval set), pattern (vector of interval set)
    • pos->iset-pos, iset-count, pattern-count
    • 🚧 partitioning functions
  • 🚧 #lang for configuration/definitions
    • (input) mode
      • stdio: user program gets input by stdio, integers separated by space, one per line
      • callback: input generator compiled into user program, user main calls crossfire_main with callback function that returns true or false
      • other modes??
    • SMP: performed by crossfire or performed by the user code
      • "performed by user code" can also mean GPU, for example
  • 🚧 codegen for input generator (in C)
    • 🚧 stdio mode
    • 🚧 callback mode
    • success reporting mechanism
    • low priority: configurable "character" type -- currently a "character" is a uint64_t

server: distribute jobs to workers

  • base definitions of input classes and how to divide them
  • dynamic slicing and scheduling based on agents' reported work rate
  • low priority: randomized input space distribution
  • ability to compile input generator with different parameters and distribute to agents
    • low priority: support for multiple architectures
  • agent authentication
  • client authentication

agent: accept and run jobs

  • securely connect to server
  • retrieve assigned tasks
  • report number of cores available (configurable limit)
  • report work rate
  • report successes
  • low priority: defer to external brute force program (eg, hashcat on GPU)

client: submit jobs and view progress

  • securely connect to server
  • command line interface
    • crossfire new: create new crossfire project
    • crossfire test: test project locally, replicates configuration of server with single local agent to debug issues
    • crossfire submit: submit task to server
    • crossfire status: check status of task (or network as a whole)
  • low priority: gui interface