GitXplorerGitXplorer
m

duprule

public
41 stars
9 forks
4 issues

Commits

List of commits on branch master.
Unverified
2b6b4cb4eea5a67308422d0592dc3e39754074d5

update README.md

mmhasbini committed 4 days ago
Unverified
aa82ce1f2cb2a62db73e8cc6a421eeb44cbc6663

select rule with least functions count

mmhasbini committed 4 days ago
Verified
87c39431332344a65a1cd840a54253e1e70dc971

Merge pull request #33 from narkopolo/master

mmhasbini committed 3 years ago
Unverified
90e4b67634058b405ece4d3beed2a2d2278cf2cf

Fix missing line breaks in output

committed 4 years ago
Unverified
dd6a8937972f5d9f280b7cad0e827bb278f22bec

Merge branch 'master' of https://github.com/0xbsec/duprule

mmhasbini committed 7 years ago
Unverified
05e73e913a3899931c2e46ca2ec65201ebadbfec

remove L, R, + & - rules; Rewrite in Rust

mmhasbini committed 7 years ago

README

The README file for this repository.

duprule

What

Remove duplicate Hashcat rules.

How does it works ?

TL;DR: Each rule change is mapped, and a unique id is generated for each rule with functions count.

The mechanism is like this:

  • A blank map is created with N ( from 1 to 36 ) slots.
  • Each rule change will be applied to the map. Example rule: 'u', will change all characters cases from '?' ( unknown ) to 'u' ( upper case ). 'sab', will add {'a' -> 'b'} to the map. And same logic apply for the other rules.
  • An id is generated from the map.
  • The ids are compared to detect duplicate rules.
  • The rule with the least functions count will be selected.

Which rules are supported ?

All rules on this page are supported except:

- Memory rules: X, 4, 6, M
- Reject plains rules
- L, R, +, -
- E, e

Usage

Remove duplicate Hashcat rules.

Usage:
    duprule [options] < input


Reads input from STDIN and prints to STDOUT.

Options:
    -o, --output      optional	 file to write duplicate rules to
    -v, --version     optional	 print version info
    -h, --help        optional	 print this help message
    -s, --supported   optional	 list all supported rules

Examples:

duprule < rockyou.rule > rockyou.rule.uniq
duprule -o duplicates.txt < rockyou.rule > rockyou.rule.uniq

Installation

duprule is written in Rust.

# run dev after clonning:
cargo run < input.rule
cargo run < input.rule -- -o duplicates.txt