From fd5700a6075e3c8c8c2994cc95cde16eda1f0f30 Mon Sep 17 00:00:00 2001 From: Jens Steube Date: Wed, 24 Aug 2022 14:33:57 +0200 Subject: [PATCH] Add missing recursivefiles2sha256sum.pl for mode 29700 --- tools/recursivefiles2sha256sum.pl | 45 +++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tools/recursivefiles2sha256sum.pl diff --git a/tools/recursivefiles2sha256sum.pl b/tools/recursivefiles2sha256sum.pl new file mode 100644 index 000000000..a0fa2ec99 --- /dev/null +++ b/tools/recursivefiles2sha256sum.pl @@ -0,0 +1,45 @@ +#!/usr/bin/env perl + +## +## This script was created to be used in conjunction with Hashcat mode 29700 (Keepass in keyfile only mode). +## This can be useful if you have a partition and forgot which of the files was used as the keyfile. +## +## Example use (if your target drive is mounted to /mnt/sda1 and (optionally) another one to /mnt/sda2): +## +## $ perl recursivefiles2sha256sum /mnt/sda1 /mnt/sda2 > wordlist.dict +## $ ./hashcat kdbxdb.hash wordlist.dict +## +## Note that the redirection operator > also works on Windows cmd.exe. +## To run perl in Windows use strawberry perl + +use strict; +use warnings; +use File::Find; +use Digest::SHA; + +my $sha = Digest::SHA->new ("sha256"); + +my @folders = @ARGV; + +if (scalar @folders == 0) +{ + die ("use: $0 folder1 folder2...\n"); +} + +find (\&handlefile, @folders); + +sub handlefile +{ + my $file = $_; + + return unless -f $file; + return unless -r $file; + + my $sha_copy = $sha->clone; + + $sha_copy->addfile ($file); + + my $digest = $sha_copy->hexdigest; + + print "$digest\n"; +}