Giter Club home page Giter Club logo

kwprocessor's Introduction

hashcat

hashcat is the world's fastest and most advanced password recovery utility, supporting five unique modes of attack for over 300 highly-optimized hashing algorithms. hashcat currently supports CPUs, GPUs, and other hardware accelerators on Linux, Windows, and macOS, and has facilities to help enable distributed password cracking.

License

hashcat is licensed under the MIT license. Refer to docs/license.txt for more information.

Installation

Download the latest release and unpack it in the desired location. Please remember to use 7z x when unpacking the archive from the command line to ensure full file paths remain intact.

Usage/Help

Please refer to the Hashcat Wiki and the output of --help for usage information and general help. A list of frequently asked questions may also be found here. The Hashcat Forum also contains a plethora of information. If you still think you need help by a real human come to Discord.

Building

Refer to BUILD.md for instructions on how to build hashcat from source.

Tests:

Travis Coverity GitHub Actions
Hashcat Travis Build status Coverity Scan Build Status Hashcat GitHub Actions Build status

Contributing

Contributions are welcome and encouraged, provided your code is of sufficient quality. Before submitting a pull request, please ensure your code adheres to the following requirements:

  1. Licensed under MIT license, or dedicated to the public domain (BSD, GPL, etc. code is incompatible)
  2. Adheres to gnu99 standard
  3. Compiles cleanly with no warnings when compiled with -W -Wall -std=gnu99
  4. Uses Allman-style code blocks & indentation
  5. Uses 2-spaces as the indentation or a tab if it's required (for example: Makefiles)
  6. Uses lower-case function and variable names
  7. Avoids the use of ! and uses positive conditionals wherever possible (e.g., if (foo == 0) instead of if (!foo), and if (foo) instead of if (foo != 0))
  8. Use code like array[index + 0] if you also need to do array[index + 1], to keep it aligned

You can use GNU Indent to help assist you with the style requirements:

indent -st -bad -bap -sc -bl -bli0 -ncdw -nce -cli0 -cbi0 -pcs -cs -npsl -bs -nbc -bls -blf -lp -i2 -ts2 -nut -l1024 -nbbo -fca -lc1024 -fc1

Your pull request should fully describe the functionality you are adding/removing or the problem you are solving. Regardless of whether your patch modifies one line or one thousand lines, you must describe what has prompted and/or motivated the change.

Solve only one problem in each pull request. If you're fixing a bug and adding a new feature, you need to make two separate pull requests. If you're fixing three bugs, you need to make three separate pull requests. If you're adding four new features, you need to make four separate pull requests. So on, and so forth.

If your patch fixes a bug, please be sure there is an issue open for the bug before submitting a pull request. If your patch aims to improve performance or optimize an algorithm, be sure to quantify your optimizations and document the trade-offs, and back up your claims with benchmarks and metrics.

In order to maintain the quality and integrity of the hashcat source tree, all pull requests must be reviewed and signed off by at least two board members before being merged. The project lead has the ultimate authority in deciding whether to accept or reject a pull request. Do not be discouraged if your pull request is rejected!

Happy Cracking!

kwprocessor's People

Contributors

alexeypetrenko avatar alexhilgertbra avatar b8vr avatar blacknon avatar druckdev avatar esquinas avatar fpesce avatar gsocgsoc avatar hydraze avatar jsteube avatar kukuxumushi avatar philsmd avatar pyllyukko avatar smarteam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kwprocessor's Issues

Jumping to begin of next row on keyboard

Hello.
I can't generate character combination like qweasd:
temp
It is very popular keywalk, which presume jumping back to bottom row on keyboard
It means 3 directions (route 212) and some distance between keys more than 1, but nothing:

./kwp -0 -x 6 basechars/tiny.base keymaps/en-us.keymap routes/2-to-10-max-3-direction-changes.route|grep qweasd

SouthWest and NorthEast walks not shown

After running this with numerous configurations, I have been unable to generate a password containing a directional move to the southwest or northeast from any character. All other appropriate and legal directions are shown.

*Running on Void 4.16 rc1, Ubuntu 16.04, Kali 2018.1, Debian 9.4, RHEL 7.3 (all x64)

-s doesn't work

Toggled between using -s and not,
Using -s gives a subset of not using -s and none of the characters are the shifted versions of the lowercase

Keyboard columns or rows

The most popular keyboard walk out there is some form of 1qaz2wsx3edc4rfv. As written, it doesn't look like kwp can produce keymaps where you look at the columns or rows, e.g. you jump from the end of one column to the beginning of the next.

Segfault with 8bits keymaps

While working on the french 8 bits keymap, I noticed a segfault during my tests. After thinking that I messed up my keymap file (again), I noticed a similar issue with the de.keymap (even on a clean repository).

On the de.keymap I get the following matrix:

route / base tiny.base full.base
3x3.route OK Segfault
2-to-10.route OK Segfault
2-to-16.route Segfault Segfault

(I get a different matrix on my reworked 8bits french keymap so I still might have messed up.)

According to gdb, the segfault is occuring on line 519:
const int c = cs->map[m];

"routes" have a 4095 bytes limit under Linux

The builtin routes "2-to-16-max-4-direction-changes.route" and "2-to-32-max-5-direction-changes.route" are to big, and cause a freeze under Linux.

A workaround is to split the routes into smaller pieces. (< 4096 bytes)

split routes/2-to-16-max-4-direction-changes.route -l 810
This creates four files of 3223, 4050, 4050 and 395 bytes.

I've also tested a file with 4095 bytes, which will work.
As soon as a file reaches 4096 bytes, kwp will get stuck.

average time to generate walk for 2-to-16-max-4-direction-changes?

I was just wondering what the average gen time is for a wordlist based off of 2-to-16-max-4-direction-changes.route with either tiny or full base chars and a English keymap? I had it running for about a week and still no output. I had no issue generating word lists with either base char set for routes up to 2-to-16. How long is it supposed to take to generate a wordlist off of that route?

kwprocessor on Windows - Truncated/Missing Results

It seems like the results for kwprocessor on Windows are either truncated or missing completely (truncated to 0). The exact same commands being run on the same system via Bash for Windows (Linux subsystem) show the expected results.

The following screenshot might give a better idea. Exactly the same commands, but the one on top is using Bash on Windows to run kwp, the bottom is using kwp32.exe (same results encountered with kwp64.exe). The first command (2-to-10-max-3) returned ~40,000 rows when running under "linux", but only 511 rows on Windows. The second command (4-to-4-exhaustive) returns 1,780 rows on linux, 0 on Windows.

https://i.imgur.com/emzaexD.png

This occurred both on the 1.0 release (24 Oct, kwprocessor v1.0 - https://github.com/hashcat/kwprocessor/releases), as well as the beta version (kwprocessor-1.00+6.7z 09-Sep-2016 15:33) which was tested per atom's suggestion in the forums (https://hashcat.net/forum/thread-6956-post-37110.html#pid37110)

System: Windows 10 version 1607 and WSL version Ubuntu 14.04.5 LTS

Generating empty output file

Posting my command, options and such

./kwp -s -8 -3 -6 -9 -2 -x 2 -o 2.txt base.txt keymaps/en-us.keymap routes/custom_routes.txt

base.txt
q

custom_routes.txt
111111
11111111
1111111111
111111111111

This worked previously with using -0 instead of "-8 -3 -6 -9 -2"

Fantastic tool, thanks for posting!

Unable to generate shift-only keywalks

It doesn't seem to be possible to generate all-caps keywalks.

Here is an example:

caps.base:

QAZ

6.route:

6

en.keymap is original file


 $ kwp caps.base en.keymap 6.route

Output is empty, as expected.


$ kwp caps.base en.keymap 6.route  -s1
Qwertyu
Asdfghj
Zxcvbnm
QWERTYU
ASDFGHJ
ZXCVBNM

$ kwp caps.base en.keymap 6.route  -s1 -b0

Output is empty again. It would be nice to see following output here

QWERTYU
ASDFGHJ
ZXCVBNM

I'm using precompiled kwp release 1.00

opencl acceleration?

I know it might be a bit much, but would it be possible to accelerate the creation of keyboard walks with OpenCL? doing it in CPU space takes a long time for large routes.

new keywalk option mode

It is clear from documentation that diagonals are not used by default, but I guess an option to turn "ALL" is a little bit excessive and smth. in-between needed also.

Looking at a standard 104-key keyboard (https://en.wikipedia.org/wiki/Keyboard_layout#/media/File:ANSI_Keyboard_Layout_Diagram_with_Form_Factor.svg) it can be noticed that, if starting for example from letter "s" there is an direct "connection" with diagonal letters "e" and "z" and letters "q" and "c" are a little bit distanced which could lead for direction to less likely be chosen for "walks".

image

Can we have an option (like -"c" for "connected/continuous") to turn on --keywalk-south-west and --keywalk-north-east but without other two remaining diagonals? Yes it can be achieved with current options set, but I'm here speaking about usability side :)

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.