GithubHelp home page GithubHelp logo

jhillacre / highfleet-decoder Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 1.23 MB

Command line interface to decode HighFleet messages, captured via ocr, keep frequency of words in clear text and based of that suggest codes for cipher text.

License: BSD 3-Clause "New" or "Revised" License

Python 100.00%
highfleet decryption-toy

highfleet-decoder's Introduction

highfleet-decoder

A HighFleet clear text message.

A command line interface for dealing with HighFleet radio intercepts.

  • captures clear text or cipher text via OCR.
  • track the frequency of words in clear text.
  • generate cipher code differences by matching frequent word differences vs cipher words.
  • helps translate a code difference to a code.

Code style: black



Primer

What are these messages, and how do they work? Check out this guide on YouTube:

Radio Messages Guide (intel gathering and decryption) | Highfleet

Install

  1. download the source or clone the repo
  2. For Windows, install tesseract, https://tesseract-ocr.github.io/tessdoc/Installation.html and add C:\Program Files\Tesseract-OCR to your PATH in your environment variables.
  3. install python, the pipenv is set up for Python 3.11
  4. install pipenv, $ pip install pipenv
  5. use pipenv sync to create an environment and install dependencies.

Usage

$ pipenv run python highfleet-decoder.py

(What the program looks like.)

  • Follow onscreen prompts to
  • capture message
  • fix OCR
  • confirm if the message is clear or cipher text (it knows)
  • review code suggestions.

Tips

The project is a rough prototype.

  • Valid word characters are strings.ascii_uppercase + strings.digits + "=-". I haven't dealt with dashed locations yet, probably will be treated as multiple words.
  • HighFleet messages are in all caps. When correcting OCR text, your input will be transformed into uppercase.
  • When correcting senders or receivers, the equals sign must be in the right place to be detected. Receivers and senders are kept separate from body words.
  • Senders and receivers must be last and first. If there is OCR text after, you should blank it or swap positions with other text.
  • 1 and I look the same in HighFleet's font. The project tries to deal with this by determining if the rest of the word is primarily numbers or letters.
  • Are the suggestions actually solutions?
    • Depends on the frequency list being populated somewhat.
    • Assuming that unique words have unique difference patterns

Todo

  • Finding edge cases by running campaigns.
  • Ability to have different frequency sets for starting clean with a new campaign, if desired.
  • Add unit tests.
  • Add CI, preferably in CircleCI, since I've used it.
  • Refactor code into not one big file.
  • Screenshots.
  • Colour output.
  • Arguments and argument parsing?
  • pypi package?

License

BSD-3-Clause license

words_alpha.txt used under "Unlicense license", dwyl/english-words

highfleet-decoder's People

Contributors

jhillacre avatar

Stargazers

 avatar  avatar  avatar

Watchers

 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.