openwall / openwall/john

Update hashcat mode with new rules

Open
#5,905 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C
Stars
13.6k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

Originally posted by @magnumripper in #5553
Originally posted by @fukc-gihtub in #5553

A number of other rules have been added to hashcat in the meantime: h, H, S, B, v.

BNX and vNX.

Here's what they do:

Hashcat Description Comment JtR (clash or not)
h convert the entire password to lowercase hex I assume it means hello -> 68656c6c6f free
H convert the entire password to uppercase hex  free
S shift the case of each char, JtR-like Like it says, we have this.
B add byte value of X at pos N, bytewise. ex: hello0 -> hello` BNX, and B50 for the example free
v insert char X every N chars vNX vVNM: "update l (length), then subtract M from N and assign to variable V"

For BNX and "print0 -> hello`" my first guess was that B6N would add 0x30 (with some N) to the 6th char '0' (0x30) resulting in the backtick (0x60). But we can't represent a byte value of 0x30 (48) with our 0-9A-Z (0-36) so we'd need to prepare a variable n first. So I presume this is not quite it, or maybe the example shouldn't be "print0 -> hello`" but some other character in the end of the result string (it's not a very good example). They haven't updated the Hashcat wiki and the file in docs is a header with no examples so I can't tell.

Like us they support \xNN syntax though, so maybe it's simply B6\x30 ?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue lists five hashcat rules and references issue #5553, but names no John source file, entry point, or test. Read the existing rule support alongside that discussion and verify each rule's semantics against the linked Hashcat documentation. Done means the requested rules are supported with behavior matching the descriptions and verified coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.