The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis
 
 
 
Go to file
n1474335 d8051ce9a2 Merge branch 'feature-hashurls' 2017-06-16 11:23:16 +00:00
.github Updated ISSUE_TEMPLATE.md 2017-02-07 20:30:44 +00:00
docs Add jsdoc-babel plugin 2017-04-21 18:05:30 -04:00
src The recipe and input are now stored in the hash part of the URL 2017-06-16 11:04:35 +00:00
test Merge branch 'master' of https://github.com/bwhitn/CyberChef into bwhitn-master 2017-06-13 14:12:20 +00:00
.babelrc Fixed 'Diff' imports and added test 2017-03-27 19:39:04 +01:00
.eslintignore ignore vendor 2017-04-28 16:50:12 +01:00
.eslintrc.json Merge conflicts 2017-05-06 13:47:26 +01:00
.gitignore Added Travis deployment for npm. 2017-04-27 10:23:01 +00:00
.npmignore Added more keywords and bug link to package.json 2017-04-27 10:43:11 +00:00
.travis.yml Add repo option to Travis 2017-05-20 23:56:58 -04:00
Gruntfile.js Travis CI now adds a compile message 2017-05-18 23:46:03 +01:00
LICENSE Initial commit 2016-11-28 10:42:58 +00:00
README.md Added badges for npm version and repo size to the README 2017-04-28 13:28:31 +01:00
package.json 5.10.2 2017-06-15 14:25:03 +00:00
postcss.config.js Added modern browser warning for theme support 2017-05-18 23:29:04 +01:00

README.md

CyberChef

Build Status npm

The Cyber Swiss Army Knife

CyberChef is a simple, intuitive web app for carrying out all manner of "cyber" operations within a web browser. These operations include creating hexdumps, simple encoding like XOR or Base64, more complex encryption like AES, DES and Blowfish, data compression and decompression, calculating hashes and checksums, IPv6 and X.509 parsing, and much more.

The tool is designed to enable both technical and non-technical analysts to manipulate data in complex ways without having to deal with complex tools or algorithms. It was conceived, designed, built and incrementally improved by an analyst in their 10% innovation time over several years. Every effort has been made to structure the code in a readable and extendable format, however it should be noted that the analyst is not a professional developer and the code has not been peer-reviewed for compliance with a formal specification.

Live demo

CyberChef is still under active development. As a result, it shouldn't be considered a finished product. There is still testing and bug fixing to do, new features to be added and additional documentation to write. Please contribute!

Cryptographic operations in CyberChef should not be relied upon to provide security in any situation. No guarantee is offered for their correctness.

A live demo can be found here - have fun!

How it works

There are four main areas in CyberChef:

  1. The input box in the top right, where you can paste, type or drag the data you want to operate on.
  2. The output box in the bottom right, where the outcome of the specified processing will be displayed.
  3. The operations list on the far left, where you can find all the operations that CyberChef is capable of in categorised lists, or by searching.
  4. The recipe area in the middle, where you drag the operations that you want to use and specify arguments and options.

You can use as many operations as you like in simple or complex ways. Some examples are as follows:

Features

  • Drag and drop
    • Operations can be dragged in and out of the recipe list, or reorganised.
    • Files can be dragged over the input box to load them directly.
  • Auto Bake
    • Whenever you modify the input or the recipe, CyberChef will automatically “bake” for you and produce the output immediately.
    • This can be turned off and operated manually if it is affecting performance (if the input is very large, for instance).
    • If any bake takes longer than 200 milliseconds, auto bake will be switched off automatically to prevent further performance issues.
  • Breakpoints
    • You can set breakpoints on any operation in your recipe to pause execution before running it.
    • You can also step through the recipe one operation at a time to see what the data looks like at each stage.
  • Save and load recipes
    • If you come up with an awesome recipe that you know youll want to use again, just click save and add it to your local storage. It'll be waiting for you next time you visit CyberChef.
    • You can also copy a URL which includes your recipe and input which can be shared with others.
  • Search
    • If you know the name of the operation you want or a word associated with it, start typing it into the search field and any matching operations will immediately be shown.
  • Highlighting
  • Save to file and load from file
    • You can save the output to a file at any time or load a file by dragging and dropping it into the input field (note that files larger than about 500kb may cause your browser to hang or even crash due to the way that browsers handle large amounts of textual data).
  • CyberChef is entirely client-side
    • It should be noted that none of your input or recipe configuration is ever sent to the CyberChef web server - all processing is carried out within your browser, on your own computer.
    • Due to this feature, CyberChef can be compiled into a single HTML file. You can download this file and drop it into a virtual machine, share it with other people, or use it independently on your desktop.

Browser support

CyberChef is built to support Google Chrome 40+, Mozilla Firefox 35+ and Microsoft Edge 14+.

Contributing

An installation walkthrough, how-to guides for adding new operations, descriptions of the repository structure, available data types and coding conventions can all be found in the project wiki pages.

Licencing

CyberChef is released under the Apache 2.0 Licence and is covered by Crown Copyright.