Table of Contents

Johnny development roadmap

As of 26.03.2015 the latest version for Johnny is 1.1. The current document aims to roadmap the feature development and improvement from this version onwards. The actual tasks are split into milestone sprints. The release scheme and versioning may differ.

Goals for Johnny:

Notes:

Milestones

Sprint 1.2

  1. Upgrade to Qt 5 (keep Qt 4 compat. for now) [Shinnok]
  2. Add and use elided text QLabel where needed ( and possibly QPushButton ) [Shinnok]
  3. Code refactoring and enforcing of style and conventions [Shinnok]
  4. Fix any outstanding bugs or crashes [Shinnok]
    • Johnny consumes cpu even when it isn't doing anything. (10-15% of one core, OS X, app just launched and thus no operation was started)
    • Crash on exit while john is running (seems to have been fixed in 1.1?)
    • Pause not working (seems to have been fixed in 1.1?)
    • Johnny asks for confirmation to kill JtR twice if a session is running on quit

Sprint 1.3

  1. UI overhaul #1 (better sidebar navigation, proper layout constraints so that UI elements look nice, e.g. the button's in the Settings page are a mile long, update UI to modern desktops(current is reminiscent of the KDE 3 era), etc..) [Shinnok]
  2. Make due with the various usability issues #1 [Shinnok]
  3. Support for OS X and dmg distribution package [Mathieu]
  4. Support for Windows and setup installer via Qt Installer Framework [Mathieu]

Sprint 1.4

  1. Make sure all strings are translatable and add language switching support [Mathieu]
  2. Add the –fork and OpenMP support so that we can use multi core (an option should be available for selecting how many cores should be used) [Mathieu]
  3. Rename Output tab to Console log/journal and also print JtR cmds, as well as important debug info (allows the user to inspect commands Johnny issued to JtR as well as the resulting output) [Mathieu]
  4. Preliminary Windows support (JtR terminate issue) [Mathieu+Shinnok]
  5. Code TODOs and NOTEs cleanup [Mathieu]

Sprint 1.5

  1. Manual plain-text guessing via I'm feeling lucky button [Mathieu]
  2. Jumbo features #1: Hash type suggestion/guessing for individual hashes in the Passwords tab [Mathieu+Aleksey]
  3. Separate the CLI wrapper and compute handlers from the UI code and use proper threading. Any delays in processing or JtR crashes shouldn't affect or be mirrored by Johnny. [Shinnok+Mathieu]
  4. Multiple cracking session management(session history and proper session preferences storage) [Mathieu]

All of the previous development sprints have been merged into a single release, namely 2.0. What follows are the sprints from 2.0 onwards. Some tasks are still work in progress (see sprint 1.3 for e.g.) and have been dragged along to the next phase.

Sprint 2.1

  1. Ability to select/deselect individual hashes from being handled in a cracking session(maybe via a simple checkbox to each row?) [Mathieu]
  2. Search/Filter inside the Passwords tab table view [Mathieu]
  3. Settings refactoring (#9, #13) [Mathieu]
  4. UI overhaul #2 (better sidebar navigation, proper layout constraints so that UI elements look nice, e.g. the button's in the Settings page are a mile long, update UI to modern desktops(current is reminiscent of the KDE 3 era), etc..) [Shinnok + Mathieu]
  5. Make due with the various usability issues #2 [Shinnok]
  6. Handle all Github issues assigned to 2.1 milestone [Mathieu + Shinnok]

Sprint 2.2

  1. Export to CSV and colon separated password format
  2. Implement *2john conversion support via the Open file menu
  3. Jumbo features #2 (support for jumbo attack modes)
  4. Handle all Github issues assigned to 2.2 milestone [Mathieu + Shinnok]

Sprint 2.3

  1. Cleanup code base using clang-format [Shinnok]
  2. Jumbo features #3
  3. Console log improvements (see github issues)
  4. Figure out the John standard out/in buffering issues and how to make Johnny interact with John without waiting for process finish
  5. Dictionary editing and generation based on interactive rule sets (?)
  6. Handle all Github issues assigned to 2.3 milestone [Mathieu + Shinnok]

Sprint 2.4

  1. Jumbo features #4: Further jumbo integration
  2. Add tooltips to all UI actions that are not very self explanatory to a new comer
  3. Maybe change the icon pack [Shinnok]

Sprint 2.5

  1. Further jumbo integration
  2. Post-cracking statistics regarding the frequency of passwords, characters, lengths. Pre-cracking stats like freq. of hash types, NULL hashes, etc.. Provided in the statistics pane
  3. Fix any outstanding bugs left or introduced lately
  4. Polish up the UI and resolve edge cases
  5. Time to reconsider the platform installers and distribution channels. Any new considerations since the 2.0 decisions?

Sprint 2.6

  1. Further jumbo integration
  2. To the future and beyond

Brainstorming