Git Product home page Git Product logo

bkcrack's Introduction

bkcrack

CI badge release badge license badge GitHub Sponsors badge

Crack legacy zip encryption with Biham and Kocher's known plaintext attack.

Overview

A ZIP archive may contain many entries whose content can be compressed and/or encrypted. In particular, entries can be encrypted with a password-based symmetric encryption algorithm referred to as traditional PKWARE encryption, legacy encryption or ZipCrypto. This algorithm generates a pseudo-random stream of bytes (keystream) which is XORed to the entry's content (plaintext) to produce encrypted data (ciphertext). The generator's state, made of three 32-bits integers, is initialized using the password and then continuously updated with plaintext as encryption goes on. This encryption algorithm is vulnerable to known plaintext attacks as shown by Eli Biham and Paul C. Kocher in the research paper A known plaintext attack on the PKZIP stream cipher. Given ciphertext and 12 or more bytes of the corresponding plaintext, the internal state of the keystream generator can be recovered. This internal state is enough to decipher ciphertext entirely as well as other entries which were encrypted with the same password. It can also be used to bruteforce the password with a complexity of nl-6 where n is the size of the character set and l is the length of the password.

bkcrack is a command-line tool which implements this known plaintext attack. The main features are:

  • Recover internal state from ciphertext and plaintext.
  • Change a ZIP archive's password using the internal state.
  • Recover the original password from the internal state.

Install

Precompiled packages

You can get the latest official release on GitHub.

Precompiled packages for Ubuntu, MacOS and Windows are available for download. Extract the downloaded archive wherever you like.

On Windows, Microsoft runtime libraries are needed for bkcrack to run. If they are not already installed on your system, download and install the latest Microsoft Visual C++ Redistributable package.

Compile from source

Alternatively, you can compile the project with CMake.

First, download the source files or clone the git repository. Then, running the following commands in the source tree will create an installation in the install folder.

cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install
cmake --build build --config Release
cmake --build build --config Release --target install

Thrid-party packages

bkcrack is available in the package repositories listed below. Those packages are provided by external maintainers.

Packaging status

Usage

List entries

You can see a list of entry names and metadata in an archive named archive.zip like this:

bkcrack -L archive.zip

Entries using ZipCrypto encryption are vulnerable to a known-plaintext attack.

Recover internal keys

The attack requires at least 12 bytes of known plaintext. At least 8 of them must be contiguous. The larger the contiguous known plaintext, the faster the attack.

Load data from zip archives

Having a zip archive encrypted.zip with the entry cipher being the ciphertext and plain.zip with the entry plain as the known plaintext, bkcrack can be run like this:

bkcrack -C encrypted.zip -c cipher -P plain.zip -p plain

Load data from files

Having a file cipherfile with the ciphertext (starting with the 12 bytes corresponding to the encryption header) and plainfile with the known plaintext, bkcrack can be run like this:

bkcrack -c cipherfile -p plainfile

Offset

If the plaintext corresponds to a part other than the beginning of the ciphertext, you can specify an offset. It can be negative if the plaintext includes a part of the encryption header.

bkcrack -c cipherfile -p plainfile -o offset

Sparse plaintext

If you know little contiguous plaintext (between 8 and 11 bytes), but know some bytes at some other known offsets, you can provide this information to reach the requirement of a total of 12 known bytes. To do so, use the -x flag followed by an offset and bytes in hexadecimal.

bkcrack -c cipherfile -p plainfile -x 25 4b4f -x 30 21

Decipher

If the attack is successful, the deciphered data associated to the ciphertext used for the attack can be saved:

bkcrack -c cipherfile -p plainfile -d decipheredfile

If the keys are known from a previous attack, it is possible to use bkcrack to decipher data:

bkcrack -c cipherfile -k 12345678 23456789 34567890 -d decipheredfile

Decompress

The deciphered data might be compressed depending on whether compression was used or not when the zip file was created. If deflate compression was used, a Python 3 script provided in the tools folder may be used to decompress data.

python3 tools/inflate.py < decipheredfile > decompressedfile

Unlock encrypted archive

It is also possible to generate a new encrypted archive with the password of your choice:

bkcrack -C encrypted.zip -k 12345678 23456789 34567890 -U unlocked.zip password

The archive generated this way can be extracted using any zip file utility with the new password. It assumes that every entry was originally encrypted with the same password.

Recover password

Given the internal keys, bkcrack can try to find the original password. You can look for a password up to a given length using a given character set:

bkcrack -k 1ded830c 24454157 7213b8c5 -r 10 ?p

You can be more specific by specifying a minimal password length:

bkcrack -k 18f285c6 881f2169 b35d661d -r 11..13 ?p

Learn

A tutorial is provided in the example folder.

For more information, have a look at the documentation and read the source.

Contribute

Do not hesitate to suggest improvements or submit pull requests on GitHub.

If you would like to show your support to the project, you are welcome to make a donation or sponsor the project via Github Sponsors.

License

This project is provided under the terms of the zlib/png license.

bkcrack's People

Contributors

aloxaf avatar kimci86 avatar magnumripper 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

bkcrack's Issues

Support false positives

As I understand, when there's little known plaintext available the number of remaining values is large enough that false positives during the search are quite likely. In fact, pkcrack doesn't abort the search upon finding potential keys by default, having this non-default option to do so:

 -a     abort keys searching after first success

Perhaps bkcrack should do the same.

Add option to truncate known plaintext

When using a ZIP file with a similar file type but not the same file inside it'd be helpful to be able to limit the amount of known plaintext taken from there (typically to 12 or 11 bytes) because further bytes are less likely (and eventually are totally unlikely) to match the secret file's.

This feature would be especially important with deflate compression rather than with files stored uncompressed, because ZIP compression programs tend to refuse to compress plaintext files that are too small (e.g., if pre-truncated to just ~20 bytes or so to produce the needed 11+ bytes under compression).

For my own use, I hacked the sources like this:

diff --git a/src/Data.cpp b/src/Data.cpp
index 8f39550..328eee4 100644
--- a/src/Data.cpp
+++ b/src/Data.cpp
@@ -20,7 +20,7 @@ void Data::load(const std::string& cipherarchive, const std::string& cipherfile,
     if(plainarchive.empty())
         plaintext = loadFile(plainfile);
     else
-        plaintext = loadZipEntry(plainarchive, plainfile);
+        plaintext = loadZipEntry(plainarchive, plainfile, 12);
 
     // check that plaintext is big enough
     if(plaintext.size() < Attack::size)

Is it possible to attack MPEG4?

I have an old archive (zipcrypto store) with two video files in mpeg4 format.
I don't know any more technical information about these files. Is it possible to find 12 bytes that are guaranteed to occur in an mpeg file?

Loading ZIP entry by index

Specifying a ZIP entry to load can be tedious because of character encoding.
In addition, several entries could theoretically have the same name, or a name could not be valid text regardless of encoding.
A more robust way of specifying which entry to load from a ZIP archive is to give its index in the central directory.

A prerequisite is to be able to enumerate and display an archive's entries.

Related to #37, #57, #59.

how to get 0xA9 from hex

hi and thanks for make bkcrack

i have a problem in get 0xA9 and offset in your example tutorial:

i mean here


Free additional byte from CRC

In this example, we guessed the first 20 bytes of spiral.svg.

In addition, as explained in the ZIP file format specification, a 12-byte encryption header in prepended to the data in the archive.
The last byte of the encryption header is the most significant byte of the file's CRC.

We can get the CRC with unzip.

$ unzip -Z -v secrets.zip spiral.svg | grep CRC
  32-bit CRC value (hex):                         a99f1d0d

So we know the byte just before the plaintext (i.e. at offset -1) is 0xA9.


for example i have 1 file in zip
1.zip --> 1.txt crc32 is : 56C6A424
and i have a 13 byte of known plain text

what is this ? \xa9 ---> echo -n -e '\xa9<?xml version="1.0" ' > plain.txt

and how You determine the offset and this xa9

thanks a lot

Compile fails with clang 10.0.1 on FreeBSD 12.2: type mismatch in types.cpp

Downloaded current revision with git clone. Enter directory and run cmake . to create Makefile:

$ cmake .
-- The CXX compiler identification is Clang 10.0.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting build type to 'Release' as none was specified.
-- Found OpenMP_CXX: -fopenmp=libomp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/grkenn/src/bkcrack

Now run make. On my system, compilation fails with this error:

/home/grkenn/src/bkcrack/src/types.cpp:4:28: error: invalid operands to binary
      expression ('const std::string' (aka 'const basic_string<char,
      char_traits<char>, allocator<char> >') and 'const char [3]')
 : std::runtime_error(type + ": " + description + ".")
                      ~~~~ ^ ~~~~
/usr/include/c++/v1/iterator:874:1: note: candidate template ignored: could not
      match 'reverse_iterator<type-parameter-0-0>' against 'char const[3]'
operator+(typename reverse_iterator<_Iter>::difference_type __n, const r...
^
/usr/include/c++/v1/iterator:1310:1: note: candidate template ignored: could not
      match 'move_iterator<type-parameter-0-0>' against 'char const[3]'
operator+(typename move_iterator<_Iter>::difference_type __n, const move...
^
/usr/include/c++/v1/iterator:1726:1: note: candidate template ignored: could not
      match '__wrap_iter<type-parameter-0-0>' against 'const char *'
operator+(typename __wrap_iter<_Iter>::difference_type __n,
^
1 error generated.
*** Error code 1

One workaround is to transform the character string literals into std::string, like so:

#include "types.hpp"

#include <string>

BaseError::BaseError(const std::string& type, const std::string& description)
 : std::runtime_error(type + std::string(": ") + description + std::string("."))
{}

Loading a ZIP entry with Polish letters

Hi,
I have a large zip archive with my photos that I am trying to decrypt with bkcrack as I am not sure with the password.

7-zip sees the archive structure and most of the files inside (but not all).
I have one unencrypted jpeg that I was able to compress (with deflate) to the same size as the one in the archive (-12 bits for encryption).
But when I try to use bkcrack with command:
bkcrack.exe -C photos.zip -c Zdjęcia\folder\photo1.jpg -P photo1.zip -p photo1.jpg -t 64
it says:

Zip error: found no entry Zdjŕcia\folder\photo1.jpg in archive photos.zip.

I suspect it has something to do with zip corruption. Maybe this is also the reason why I cannot extract the archive with the password that I suspect might be the right one? Or is a matter of using Polish letters in zipped folder name?

The archive is quite large (11Gb). Is there a way to separate this one file to work on it instead of working on the whole archive?
I tried to use Zip2Fix but run out of memory.. So currently I have no clue how to proceed with this. Any help appreciated.

"-d" fails with "basic_filebuf::underflow error reading the file"

Using the provided example, I get this error:

[solar@super build]$ src/bkcrack -C ../example/secrets.zip -c spiral.svg -k c4038591 d5ff449d d3b0c696 -d spiral_deciphered.svg
[20:34:01] Keys
c4038591 d5ff449d d3b0c696
terminate called after throwing an instance of 'std::ios_base::failure'
  what():  basic_filebuf::underflow error reading the file
Aborted

strace shows:

open("../example/secrets.zip", O_RDONLY) = 3
lseek(3, -22, SEEK_END)                 = 56241
read(3, "PK\5\6\0\0\0\0\2\0\2\0\270\0\0\0\371\332\0\0\0\0", 8191) = 22
lseek(3, -22, SEEK_CUR)                 = 56241
lseek(3, 0, SEEK_CUR)                   = 56241
lseek(3, 16, SEEK_CUR)                  = 56257
read(3, "\371\332\0\0\0\0", 8191)       = 6
lseek(3, 56057, SEEK_SET)               = 56057
lseek(3, 0, SEEK_CUR)                   = 56057
lseek(3, 20, SEEK_CUR)                  = 56077
read(3, "\254\325\0\0\17\326\0\0\n\0$\0\0\0\0\0\0\0 \200\264\201\0\0\0\0advice"..., 8191) = 186
lseek(3, -178, SEEK_CUR)                = 56085
read(3, "\n\0$\0\0\0\0\0\0\0 \200\264\201\0\0\0\0advice.jpg\n\0 \0"..., 8191) = 178
lseek(3, -164, SEEK_CUR)                = 56099
read(3, "\0\0\0\0advice.jpg\n\0 \0\0\0\0\0\1\0\30\0\0\224\231\330#z"..., 8191) = 164
lseek(3, -114, SEEK_CUR)                = 56149
lseek(3, 0, SEEK_CUR)                   = 56149
lseek(3, 20, SEEK_CUR)                  = 56169
read(3, "\375\4\0\0\361\4\0\0\n\0$\0\0\0\0\0\0\0 \200\264\201\324\325\0\0spiral"..., 8191) = 94
lseek(3, -86, SEEK_CUR)                 = 56177
read(3, "\n\0$\0\0\0\0\0\0\0 \200\264\201\324\325\0\0spiral.svg\n\0 \0"..., 8191) = 86
lseek(3, -72, SEEK_CUR)                 = 56191
read(3, "\324\325\0\0spiral.svg\n\0 \0\0\0\0\0\1\0\30\0\0\213wB`\230"..., 8191) = 72
lseek(3, -22, SEEK_CUR)                 = 56241
lseek(3, 54768, SEEK_SET)               = 54768
read(3, "\0\0spiral.svg\325\32\320\311~P\353\370\336(-$Nd\377\20+\213\242\224"..., 8191) = 1495
lseek(3, -1483, SEEK_CUR)               = 54780
open("spiral_deciphered.svg", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
read(3, NULL, 8191)                     = -1 EFAULT (Bad address)
futex(0x7f4c63611b10, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(2, "terminate called after throwing "..., 48terminate called after throwing an instance of ') = 48

So it's trying to read(2) into a NULL pointer, and this happens right after it's opened the output file. This corresponds to somewhere in:

        // discard the encryption header
        std::istreambuf_iterator<char> cipher(cipherstream);
        std::size_t i;
        for(i = 0; i < Data::headerSize && cipher != std::istreambuf_iterator<char>(); i++, ++cipher)
            keys.update(*cipher ^ KeystreamTab::getByte(keys.getZ()));

        for(std::ostreambuf_iterator<char> plain(decipheredstream); i < ciphersize && cipher != std::istreambuf_iterator<char>(); i++, ++cipher, ++plain)
        {
            byte p = *cipher ^ KeystreamTab::getByte(keys.getZ());
            keys.update(p);
            *plain = p;
        }

The system is Scientific Linux 6.10 with cmake3 and several devtoolset's installed to provide newer development tools. I've tried rebuilding with devtoolsets 2 through 6, which provide gcc versions 4.8.2 to 6.3.1 (I originally started with the latest), which didn't make a difference.

If you need, I can provide remote access to this system, see https://openwall.info/wiki/HPC/Village

Compress included file before running or not?

Firstly thank you for this program I am desperate to get some files back from an old archive and I happen to have one of the files in the archive and its one of the largest files in it (Apparently that is great).

The archive is pkzip2 as verified in the zip2john utility.

But the archive is compressed and encrypted, but I have the file uncompressed. (Not great apparently)

So it seems in this case I would need to compress the file first.

Is there a practical way to do this with various settings? How many variations of compression are there in this case?

Also the files are in a folder in the Archive that is NOT compressed or encrypted if that helps anything.

`$ 7z l -slt L.zip

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7-8809G CPU @ 3.10GHz (906E9),ASM,AES-NI)

Scanning the drive for archives:
1 file, 375186269 bytes (358 MiB)

Listing archive: L.zip

--
Path = L.zip
Type = zip
Physical Size = 375186269


Path = L
Folder = +
Size = 0
Packed Size = 0
Modified = 2016-09-15 02:13:15
Created =
Accessed =
Attributes = D_ drwxrwxr-x
Encrypted = -
Comment =
CRC =
Method = Store
Host OS = Unix
Version = 10
Volume Index = 0

Path = L/VID_20140308_102828_041.mp4
Folder = -
Size = 79917262
Packed Size = 78376503
Modified = 2015-03-09 05:02:58
Created =
Accessed =
Attributes = _ -rw-rw-r--
Encrypted = +
Comment =
CRC = 65EF95F9
Method = ZipCrypto Deflate
Host OS = Unix
Version = 20
Volume Index = 0

Path = L/VID_20140308_102752_427.mp4
Folder = -
Size = 50907473
Packed Size = 49641968
Modified = 2015-03-09 05:02:34
Created =
Accessed =
Attributes = _ -rw-rw-r--
Encrypted = +
Comment =
CRC = 9158C78D
Method = ZipCrypto Deflate
Host OS = Unix
Version = 20
Volume Index = 0
######### ALSO a bunch of jpg's and stuff here
`

Building on macOS

I have yet to succeed building under macOS (with Homebrew tools, including a normal gcc). I can usually build stuff just as if I were using Linux but this one beats me.

The longest I've been able to make it is setting CXX as in:

CXX=gcc cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install

It seems to build but not link:

(...)
[ 88%] Building CXX object src/CMakeFiles/bkcrack.dir/types.cpp.o
[ 94%] Building CXX object src/CMakeFiles/bkcrack.dir/zip.cpp.o
[100%] Linking CXX executable bkcrack
Undefined symbols for architecture x86_64:
  "__ZNKSt13runtime_error4whatEv", referenced from:
      __ZTV9BaseError in Arguments.cpp.o
      __ZTVN9Arguments5ErrorE in Arguments.cpp.o
      __ZTV9BaseError in Data.cpp.o
      __ZTVN4Data5ErrorE in Data.cpp.o
      __ZTV9BaseError in file.cpp.o
      __ZTV9FileError in file.cpp.o
      __ZTV9BaseError in types.cpp.o
      ...
  "__ZNKSt5ctypeIcE13_M_widen_initEv", referenced from:
      __ZN6Attack9testXlistEv in Attack.cpp.o
      __ZN15ConsoleProgress15printerFunctionEv in ConsoleProgress.cpp.o
      __Z8setupLogRSo in log.cpp.o
      __ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St9_Put_timeIS3_E in log.cpp.o
      __ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_.isra.0 in main.cpp.o
      _main in main.cpp.o
      __Z15recoverPasswordRK4KeysmRKSt6vectorIhSaIhEERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER8Progress in password.cpp.o
      ...

(... hundreds of similar errors ...)

  "___gxx_personality_v0", referenced from:
      Dwarf Exception Unwind Info (__eh_frame) in Arguments.cpp.o
      Dwarf Exception Unwind Info (__eh_frame) in Attack.cpp.o
      Dwarf Exception Unwind Info (__eh_frame) in ConsoleProgress.cpp.o
      Dwarf Exception Unwind Info (__eh_frame) in Data.cpp.o
      Dwarf Exception Unwind Info (__eh_frame) in KeystreamTab.cpp.o
      Dwarf Exception Unwind Info (__eh_frame) in MultTab.cpp.o
      Dwarf Exception Unwind Info (__eh_frame) in Zreduction.cpp.o
      ...
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[2]: *** [src/bkcrack] Error 1
make[1]: *** [src/CMakeFiles/bkcrack.dir/all] Error 2
make: *** [all] Error 2

I have tried setting LD and/or LDFLAGS but I'm not sure they are even honored.

Any ideas? CMake was never my friend.

How to conduct an attack correctly?

Hello.

How to conduct an attack correctly? Plaintext: "TOP SECRET! ". There is a space at the end of the text.

Archive ZIP: UEsDBBQAAwAIAM8EZFM7VfjrKwAAAB0AAAAMAAAAcGxhaW4wMDEudHh04Tlvb+niDagMDzYfQkqGINYMQ4yRlVDUg7pRSncttBoiwDmBAbNambU1HlBLAQIUABQAAwAIAM8EZFM7VfjrKwAAAB0AAAAMAAAAAAAAAAEAIAAAAAAAAABwbGFpbjAwMS50eHRQSwUGAAAAAAEAAQA6AAAAVQAAAAAA

Thanks.

A bug, a key is missing the first character

Hi,

Found a bug I think.
Bkcrack's out put is below.
The keys outputted: dd6c17f1 402a80f 900cf09e
The keys should be: dd6c17f1 0402a80f 900cf09e
As one can see there is a place for that zero, but it's missing.
The deciphered text is written though...

bkcrack 1.0.1 - 2021-03-15
Generated 4194304 Z values.
[13:01:03] Z reduction using 192 bytes of known plaintext
100.0 % (192 / 192)
44384 values remaining.
[13:01:05] Attack on 44384 Z values at index 8
Keys: dd6c17f1  402a80f 900cf09e
62.5 % (27723 / 44384)
[13:01:56] Keys
dd6c17f1  402a80f 900cf09e
Wrote deciphered text.

Password cracking problem in ZIP file using BKCRACK

I would like to crack a password in a .zip file I created a few years ago and forgot my password. The compression algorithm is ZipCrypto Deflate.

There is only one file in MYFILE.zip - ABCD.pdf. I have an older copy of this PDF that is identical to the one that has a password of about 90%.

I tried to use BKCRACK. I opened the MYFILE.zip file in the HxD program and saw the header of the zip file in HEX format (50 4B 03 04) and the name ABCD.pdf in HEX format (41 42 43 44 2E 70 64 66) - offset 30. Thanks to this I have 12 bytes known text.

Then I used the command:

echo -n "ABCD.pdf" > plain.txt

time bkcrack -C MYFILE.zip -c ABCD.pdf -p plain.txt -o 30 -x 0 504B0304 > 1.log & tail -f 1.log

Unfortunately the result is:
[1] 5849
bkcrack: command not found
real 0m0.220s
user 0m0.078s
sys 0m0.041s

Please help, am I doing something wrong or is my file unblockable?

Make a library

To do: Put core functionalities into a library separate from the command-line interface.
This would ease the integration in other tools or making other user interfaces, for example ZoDream.ZipCrack by @zx648383079.

Exhaustive search is not exhaustive

In exhaustive search mode, for each Z value, the search ends if a solution is found.
In the (very unlikely) case where several keys with the same Z value would be acceptable, only the first one would be found.

Unable to find cipherfile with folder path

Sample scenario : i am at drive C: with plain
zip file structure is as below IN E: drive.
e.zip
---folder1
---------e.JPG

command executed -
bkcrack -C E:\e.zip -c \folder1\e.JPG -P plain.zip -p plain

error -
Zip error : found no entry \folder1\e.JPG in archive E:\e.zip

I even try to exclude folder path and just input e.JPG - same error.
used different combination of backward slah \ or slah /, adding . at the beginning of folder path - same error.

Unable to Compile

Hey folks, trying to compile this using Cmake
When I point Cmake at src on windows I get the following response:
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed. Compiler: cl Build flags: Id flags: The output was: The system cannot find the file specified

and on linux I get this:

`CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as
    project(ProjectName)
  near the top of the file, but after cmake_minimum_required().
  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.
-- The C compiler identification is GNU 9.2.1
-- The CXX compiler identification is GNU 9.2.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as
    cmake_minimum_required(VERSION 3.16)
  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.
-- Configuring done
CMake Error at CMakeLists.txt:12 (add_executable):
  No SOURCES given to target: Project
CMake Generate step failed.  Build files cannot be regenerated correctly.`

and if I try pointing at the root of the directory, I get this

`The system is: Linux - 5.4.0-kali3-amd64 - x86_64
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/c++ 
Build flags: 
Id flags:  

The output was:
0


Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"

The CXX compiler identification is GNU, found in "/opt/bkcrack/CMakeFiles/3.16.4/CompilerIdCXX/a.out"

Determining if the CXX compiler works passed with the following output:
Change Dir: /opt/bkcrack/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_14820/fast && /usr/bin/make -f CMakeFiles/cmTC_14820.dir/build.make CMakeFiles/cmTC_14820.dir/build
make[1]: Entering directory '/opt/bkcrack/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_14820.dir/testCXXCompiler.cxx.o
/usr/bin/c++     -o CMakeFiles/cmTC_14820.dir/testCXXCompiler.cxx.o -c /opt/bkcrack/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
Linking CXX executable cmTC_14820
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_14820.dir/link.txt --verbose=1
/usr/bin/c++       -rdynamic CMakeFiles/cmTC_14820.dir/testCXXCompiler.cxx.o  -o cmTC_14820 
make[1]: Leaving directory '/opt/bkcrack/CMakeFiles/CMakeTmp'



Detecting CXX compiler ABI info compiled with the following output:
Change Dir: /opt/bkcrack/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_b977b/fast && /usr/bin/make -f CMakeFiles/cmTC_b977b.dir/build.make CMakeFiles/cmTC_b977b.dir/build
make[1]: Entering directory '/opt/bkcrack/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++    -v -o CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 9.2.1-25' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
Thread model: posix
gcc version 9.2.1 20200123 (Debian 9.2.1-25) 
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -o /tmp/ccOI1i0z.s
GNU C++14 (Debian 9.2.1-25) version 9.2.1 20200123 (x86_64-linux-gnu)
	compiled by GNU C version 9.2.1 20200123, GMP version 6.1.2, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/9
 /usr/include/x86_64-linux-gnu/c++/9
 /usr/include/c++/9/backward
 /usr/lib/gcc/x86_64-linux-gnu/9/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/9/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
GNU C++14 (Debian 9.2.1-25) version 9.2.1 20200123 (x86_64-linux-gnu)
	compiled by GNU C version 9.2.1 20200123, GMP version 6.1.2, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 65e1927bd9f022288fa1e0bd282df264
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 as -v --64 -o CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccOI1i0z.s
GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.34
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
Linking CXX executable cmTC_b977b
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b977b.dir/link.txt --verbose=1
/usr/bin/c++      -v -rdynamic CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_b977b 
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 9.2.1-25' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
Thread model: posix
gcc version 9.2.1 20200123 (Debian 9.2.1-25) 
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_b977b' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccjQ6XlC.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_b977b /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_b977b' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
make[1]: Leaving directory '/opt/bkcrack/CMakeFiles/CMakeTmp'



Parsed CXX implicit include dir info from above output: rv=done
  found start of include info
  found start of implicit include info
    add: [/usr/include/c++/9]
    add: [/usr/include/x86_64-linux-gnu/c++/9]
    add: [/usr/include/c++/9/backward]
    add: [/usr/lib/gcc/x86_64-linux-gnu/9/include]
    add: [/usr/local/include]
    add: [/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed]
    add: [/usr/include/x86_64-linux-gnu]
    add: [/usr/include]
  end of search list found
  collapse include dir [/usr/include/c++/9] ==> [/usr/include/c++/9]
  collapse include dir [/usr/include/x86_64-linux-gnu/c++/9] ==> [/usr/include/x86_64-linux-gnu/c++/9]
  collapse include dir [/usr/include/c++/9/backward] ==> [/usr/include/c++/9/backward]
  collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include]
  collapse include dir [/usr/local/include] ==> [/usr/local/include]
  collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed]
  collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
  collapse include dir [/usr/include] ==> [/usr/include]
  implicit include dirs: [/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include]


Parsed CXX implicit link information from above output:
  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
  ignore line: [Change Dir: /opt/bkcrack/CMakeFiles/CMakeTmp]
  ignore line: []
  ignore line: [Run Build Command(s):/usr/bin/make cmTC_b977b/fast && /usr/bin/make -f CMakeFiles/cmTC_b977b.dir/build.make CMakeFiles/cmTC_b977b.dir/build]
  ignore line: [make[1]: Entering directory '/opt/bkcrack/CMakeFiles/CMakeTmp']
  ignore line: [Building CXX object CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o]
  ignore line: [/usr/bin/c++    -v -o CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/usr/bin/c++]
  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
  ignore line: [Target: x86_64-linux-gnu]
  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Debian 9.2.1-25' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex]
  ignore line: [Thread model: posix]
  ignore line: [gcc version 9.2.1 20200123 (Debian 9.2.1-25) ]
  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -o /tmp/ccOI1i0z.s]
  ignore line: [GNU C++14 (Debian 9.2.1-25) version 9.2.1 20200123 (x86_64-linux-gnu)]
  ignore line: [	compiled by GNU C version 9.2.1 20200123  GMP version 6.1.2  MPFR version 4.0.2  MPC version 1.1.0  isl version isl-0.22-GMP]
  ignore line: []
  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
  ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"]
  ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"]
  ignore line: [#include "..." search starts here:]
  ignore line: [#include <...> search starts here:]
  ignore line: [ /usr/include/c++/9]
  ignore line: [ /usr/include/x86_64-linux-gnu/c++/9]
  ignore line: [ /usr/include/c++/9/backward]
  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include]
  ignore line: [ /usr/local/include]
  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include-fixed]
  ignore line: [ /usr/include/x86_64-linux-gnu]
  ignore line: [ /usr/include]
  ignore line: [End of search list.]
  ignore line: [GNU C++14 (Debian 9.2.1-25) version 9.2.1 20200123 (x86_64-linux-gnu)]
  ignore line: [	compiled by GNU C version 9.2.1 20200123  GMP version 6.1.2  MPFR version 4.0.2  MPC version 1.1.0  isl version isl-0.22-GMP]
  ignore line: []
  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
  ignore line: [Compiler executable checksum: 65e1927bd9f022288fa1e0bd282df264]
  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
  ignore line: [ as -v --64 -o CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccOI1i0z.s]
  ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.34]
  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
  ignore line: [Linking CXX executable cmTC_b977b]
  ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b977b.dir/link.txt --verbose=1]
  ignore line: [/usr/bin/c++      -v -rdynamic CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_b977b ]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/usr/bin/c++]
  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper]
  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
  ignore line: [Target: x86_64-linux-gnu]
  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Debian 9.2.1-25' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex]
  ignore line: [Thread model: posix]
  ignore line: [gcc version 9.2.1 20200123 (Debian 9.2.1-25) ]
  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
  ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_b977b' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
  link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccjQ6XlC.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_b977b /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o]
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore
    arg [-plugin] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore
    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore
    arg [-plugin-opt=-fresolution=/tmp/ccjQ6XlC.res] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [-plugin-opt=-pass-through=-lc] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [--build-id] ==> ignore
    arg [--eh-frame-hdr] ==> ignore
    arg [-m] ==> ignore
    arg [elf_x86_64] ==> ignore
    arg [--hash-style=gnu] ==> ignore
    arg [--as-needed] ==> ignore
    arg [-export-dynamic] ==> ignore
    arg [-dynamic-linker] ==> ignore
    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
    arg [-pie] ==> ignore
    arg [-o] ==> ignore
    arg [cmTC_b977b] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> ignore
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9]
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu]
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib]
    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
    arg [-L/lib/../lib] ==> dir [/lib/../lib]
    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..]
    arg [CMakeFiles/cmTC_b977b.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
    arg [-lstdc++] ==> lib [stdc++]
    arg [-lm] ==> lib [m]
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [-lgcc] ==> lib [gcc]
    arg [-lc] ==> lib [c]
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [-lgcc] ==> lib [gcc]
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> ignore
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9]
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib]
  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
  collapse library dir [/lib/../lib] ==> [/lib]
  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib]
  implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
  implicit fwks: []


Detecting CXX OpenMP compiler ABI info compiled with the following output:
Change Dir: /opt/bkcrack/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_95a25/fast && /usr/bin/make -f CMakeFiles/cmTC_95a25.dir/build.make CMakeFiles/cmTC_95a25.dir/build
make[1]: Entering directory '/opt/bkcrack/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o
/usr/bin/c++    -fopenmp -v   -o CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o -c /opt/bkcrack/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 9.2.1-25' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
Thread model: posix
gcc version 9.2.1 20200123 (Debian 9.2.1-25) 
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread'
 /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /opt/bkcrack/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp -quiet -dumpbase OpenMPTryFlag.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o -version -fopenmp -fasynchronous-unwind-tables -o /tmp/ccmgnILO.s
GNU C++14 (Debian 9.2.1-25) version 9.2.1 20200123 (x86_64-linux-gnu)
	compiled by GNU C version 9.2.1 20200123, GMP version 6.1.2, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/9
 /usr/include/x86_64-linux-gnu/c++/9
 /usr/include/c++/9/backward
 /usr/lib/gcc/x86_64-linux-gnu/9/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/9/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
GNU C++14 (Debian 9.2.1-25) version 9.2.1 20200123 (x86_64-linux-gnu)
	compiled by GNU C version 9.2.1 20200123, GMP version 6.1.2, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 65e1927bd9f022288fa1e0bd282df264
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread'
 as -v --64 -o CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o /tmp/ccmgnILO.s
GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.34
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread'
Linking CXX executable cmTC_95a25
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_95a25.dir/link.txt --verbose=1
/usr/bin/c++   -fopenmp -v    -rdynamic CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o  -o cmTC_95a25  -v 
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 9.2.1-25' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
Thread model: posix
gcc version 9.2.1 20200123 (Debian 9.2.1-25) 
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
Reading specs from /usr/lib/gcc/x86_64-linux-gnu/9/libgomp.spec
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-rdynamic' '-o' 'cmTC_95a25' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread'
 /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccoBZswU.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_95a25 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/9/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/9/crtoffloadend.o
COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-rdynamic' '-o' 'cmTC_95a25' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread'
make[1]: Leaving directory '/opt/bkcrack/CMakeFiles/CMakeTmp'



Parsed CXX OpenMP implicit link information from above output:
  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
  ignore line: [Change Dir: /opt/bkcrack/CMakeFiles/CMakeTmp]
  ignore line: []
  ignore line: [Run Build Command(s):/usr/bin/make cmTC_95a25/fast && /usr/bin/make -f CMakeFiles/cmTC_95a25.dir/build.make CMakeFiles/cmTC_95a25.dir/build]
  ignore line: [make[1]: Entering directory '/opt/bkcrack/CMakeFiles/CMakeTmp']
  ignore line: [Building CXX object CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o]
  ignore line: [/usr/bin/c++    -fopenmp -v   -o CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o -c /opt/bkcrack/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/usr/bin/c++]
  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
  ignore line: [Target: x86_64-linux-gnu]
  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Debian 9.2.1-25' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex]
  ignore line: [Thread model: posix]
  ignore line: [gcc version 9.2.1 20200123 (Debian 9.2.1-25) ]
  ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread']
  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /opt/bkcrack/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp -quiet -dumpbase OpenMPTryFlag.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o -version -fopenmp -fasynchronous-unwind-tables -o /tmp/ccmgnILO.s]
  ignore line: [GNU C++14 (Debian 9.2.1-25) version 9.2.1 20200123 (x86_64-linux-gnu)]
  ignore line: [	compiled by GNU C version 9.2.1 20200123  GMP version 6.1.2  MPFR version 4.0.2  MPC version 1.1.0  isl version isl-0.22-GMP]
  ignore line: []
  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
  ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"]
  ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"]
  ignore line: [#include "..." search starts here:]
  ignore line: [#include <...> search starts here:]
  ignore line: [ /usr/include/c++/9]
  ignore line: [ /usr/include/x86_64-linux-gnu/c++/9]
  ignore line: [ /usr/include/c++/9/backward]
  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include]
  ignore line: [ /usr/local/include]
  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include-fixed]
  ignore line: [ /usr/include/x86_64-linux-gnu]
  ignore line: [ /usr/include]
  ignore line: [End of search list.]
  ignore line: [GNU C++14 (Debian 9.2.1-25) version 9.2.1 20200123 (x86_64-linux-gnu)]
  ignore line: [	compiled by GNU C version 9.2.1 20200123  GMP version 6.1.2  MPFR version 4.0.2  MPC version 1.1.0  isl version isl-0.22-GMP]
  ignore line: []
  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
  ignore line: [Compiler executable checksum: 65e1927bd9f022288fa1e0bd282df264]
  ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread']
  ignore line: [ as -v --64 -o CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o /tmp/ccmgnILO.s]
  ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.34]
  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
  ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread']
  ignore line: [Linking CXX executable cmTC_95a25]
  ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_95a25.dir/link.txt --verbose=1]
  ignore line: [/usr/bin/c++   -fopenmp -v    -rdynamic CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o  -o cmTC_95a25  -v ]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/usr/bin/c++]
  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper]
  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
  ignore line: [Target: x86_64-linux-gnu]
  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Debian 9.2.1-25' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex]
  ignore line: [Thread model: posix]
  ignore line: [gcc version 9.2.1 20200123 (Debian 9.2.1-25) ]
  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
  ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/9/libgomp.spec]
  ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-rdynamic' '-o' 'cmTC_95a25' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread']
  link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccoBZswU.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_95a25 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/9/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/9/crtoffloadend.o]
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore
    arg [-plugin] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore
    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore
    arg [-plugin-opt=-fresolution=/tmp/ccoBZswU.res] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [-plugin-opt=-pass-through=-lpthread] ==> ignore
    arg [-plugin-opt=-pass-through=-lc] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [--build-id] ==> ignore
    arg [--eh-frame-hdr] ==> ignore
    arg [-m] ==> ignore
    arg [elf_x86_64] ==> ignore
    arg [--hash-style=gnu] ==> ignore
    arg [--as-needed] ==> ignore
    arg [-export-dynamic] ==> ignore
    arg [-dynamic-linker] ==> ignore
    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
    arg [-pie] ==> ignore
    arg [-o] ==> ignore
    arg [cmTC_95a25] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtoffloadbegin.o] ==> ignore
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9]
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu]
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib]
    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
    arg [-L/lib/../lib] ==> dir [/lib/../lib]
    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..]
    arg [CMakeFiles/cmTC_95a25.dir/OpenMPTryFlag.cpp.o] ==> ignore
    arg [-lstdc++] ==> lib [stdc++]
    arg [-lm] ==> lib [m]
    arg [-lgomp] ==> lib [gomp]
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [-lgcc] ==> lib [gcc]
    arg [-lpthread] ==> lib [pthread]
    arg [-lc] ==> lib [c]
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [-lgcc] ==> lib [gcc]
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtoffloadend.o] ==> ignore
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9]
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib]
  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
  collapse library dir [/lib/../lib] ==> [/lib]
  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib]
  implicit libs: [stdc++;m;gomp;gcc_s;gcc;pthread;c;gcc_s;gcc]
  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
  implicit fwks: []`

Not sure how it is intended to compile this project

Question: How to determine compression options used for ZipCrypto Deflate

Hi,

I have the following scenario:

  • One archive
  • Two encrypted .xml files, with Deflate
  • One non-encrypted file, with Deflate

Means:

  • All files are compressed, but not all files are encrypted.
  • Known partial plaintext could be used on the encrypted xml files
box# zipinfo test.zip
Archive:  test.zip
Zip file size: xxxxxxxxx bytes, number of entries: 3
-rwxa--     2.0 ntf xxxxxxxx b- defN xx-xxx-xx 12:00 some_unencrypted_file
-rw-a--     2.0 ntf xxxxxxxx B- defN xx-xxx-xx 12:00 encrypted_1.xml
-rw-a--     2.0 ntf      xxx T- defN xx-xxx-xx 12:00 encrypted_2.xml

My question is: As I don't know the exact compression options that were used on the archive, Is it feasible to brute force the exact options from the non-encrypted file? Afterwards I could compress the (guessed) partial plain text with the same options and execute the known plain text attack.

I tried to brute force the parameters using 7zip and then comparing resulting compressed sizes for some_unencrypted_file, but somehow this did not yield any results.

7z a -tzip result_zip.zip unencrypted_file -mpass=$pass -mfb=$mfb

Does anyone maybe have some pointers on how to properly brute force the parameters?

Use of -p without -P

What is expected from file when using -p file without -P plain.zip?

The examples mention either -C encrypted.zip -c cipher -P plain.zip -p plain or -c cipherfile -p plainfile. I tried using a mix of them, as in -C encrypted.zip -c cipher -p plainfile - where (in my mind but perhaps not in bkcrack's) cipher was a file within encrypted.zip while plainfile was a plain file in my pwd simply containing the plaintext as-is - and that was accepted but it didn't work at all.

If that is supposed to work, it doesn't seem to, might be a bug.

If it's not supposed to work at all without -P, it should bail with some informative error. I got confusing errors such as Data error: plaintext offset is too large. or Data error: ciphertext is smaller than plaintext.. With some combination of options (I think adding -t to the mix) I got it to run but it could not find the keys (these were all test runs with staged data - it should have).

Perhaps it is supposed to work, but only if plainfile is extracted (eg. with dd) from an unencrypted archive? I did try to add my plainfile to a dummy, unencrypted zip file and then use -P dummy.zip -p plainfile and that did work just fine. If this is it, maybe just document it better.

Example of what not worked:

$ echo "Test data alpha bravo charlie echo delta fox golf hotel" > test.txt
$ rm -f test.zip && zip -e test.zip test.txt
Enter password:   (I entered 'magnum' here)
Verify password:
  adding: test.txt (deflated 2%)
$ ./bkcrack -C test.zip -c test.txt -p test.txt
bkcrack 1.3.0 - 2021-08-16
Data error: plaintext offset is too large.

Here's what worked fine:

$ echo "Test data alpha bravo charlie echo delta fox golf hotel india juliet" > test.txt
$ rm -f test.zip && zip -e test.zip test.txt
Enter password:
Verify password:
  adding: test.txt (deflated 10%)
$ rm -f plain.zip && zip plain.zip test.txt
  adding: test.txt (deflated 10%)
$ ./bkcrack -C test.zip -c test.txt -P plain.zip -p test.txt
bkcrack 1.3.0 - 2021-08-16
[19:49:10] Z reduction using 54 bytes of known plaintext
100.0 % (54 / 54)
[19:49:10] Attack on 150507 Z values at index 7
Keys: a5025690 1257b418 cee8bad2
4.7 % (7030 / 150507)
[19:49:17] Keys
a5025690 1257b418 cee8bad2

I could use those keys to crack the actual password eg. with hashcat.

Zip error: found no entry

I'm trying to recover a password protected zip file where the full path name of the files was incorporated into the zip file when it was created (e.g. "C:\Temp\temp.txt"). bkcrack seems not to be able to find file, instead giving this error:

Zip error: found no entry [filepath] in archive [zipfilename]

Not sure if this is a limitation of the tool or user error. Grateful for input.

JPEGs...

Hi, how would you go about finding the plaintext/cracking of a zip containing a jpeg?
I took a jpeg took from a camera, which embeds EXIF data into the file, then zipped it with a password.
When you open the jpeg you can see the EXIF data, this is the original file name, date taken, camera model etc
So used the original file name as the plaintext to be searched for with the relevant offset etc.

Did return some keys, used that to create a new zip file with another password, when extracting is says the password is incorrect, am using the password specified by the -U option
Tried the method with the decipherfile and used python to decompress, but got an error with python:
zlib.error: Error -3 while decompressing data: invalid block type

Any ideas on what I am doing wrong or how else I could approach this?

Suggestion: Recovery Key from Password

Hello community. I would like to know if is possible extract the keys from password.
A suggestion: when a zip file have only a single file, and have issues with the encoding (eg; created on macOS terminal, but running bkcrack on Windows), rebuild the head of file.zip to exclude path and rename the file to something simple. Example:
"T:\bkcrack> bkcrack -C Straße.zip -c Straßë\pâté.png -x 00 " would automatically converted to
"T:\bkcrack> bkcrack -C temp.zip -c temp.png -x 00 " This should solve encoded errors.
Anyway, thank you very much for your attention and for your time building this amazing software.

Find password from master keys

Something akin to pkcrack's "findkey" program, but using a faster process and supporting more varied password lengths would be great.

Is it possible to use wildcards in plaintext?

The readme specifies contiguous plaintext, but I was wondering/hoping if this attack could also be applied for a plaintext where 1-2 bytes are "skipped".

For example I have a cipher where the first 10 bytes are known, followed by 2 unknown, 2 more known and the rest of the data.

Would it be somehow possible to "stitch" these known bytes together to satisfy the conditions for a successful attack?

Question: Determining offset of file

Let's say I have a vulnerable zip file.

A procedure I follow:

  1. I opened the zip file in 7-Zip
  2. Search for files with compression-encryption combination ZipCrypto Store.
  3. Attack a file with said combination file with -c and -p arguments.

However, I stumbled upon a problem. Like in the attached Example.zip file, the zip file path contains non-English characters (in this case, Chinese characters). Specifying the file to attack failed, likely due to those characters.

Therefore, I would like to attack the zip file via an offset. By opening the file in 7-Zip, I noticed the offset for a file "tick.png" is 181 and passed the argument -o 181.
Is it the correct way to determine the offset? I tried the following arguments to no avail:

C:\bkcrack\bkcrack-1.3.4-win64>bkcrack.exe -c Example.zip -o 181 -p tick.png
...

C:\bkcrack\bkcrack-1.3.4-win64>bkcrack.exe -c Example.zip -o 0xb5 -p tick.png
bkcrack 1.3.4 - 2022-01-01
[01:35:14] Z reduction using 2143 bytes of known plaintext
100.0 % (2143 / 2143)
[01:35:15] Attack on 438 Z values at index 190
100.0 % (438 / 438)
[01:35:16] Could not find the keys.

(The Example.zip file Password is password, FYI).

Exhaustive password search

Hi,

I tried to recover a password from a key using the "-r 15 ?a" option, so I was expecting to only have a password with letters and numbers but the found password looks like to have strange characters:

as bytes: ****  b5 ab 10 d2  ******
as text: *****  ���   ****

Any idea what could be the problem?
Thanks!

I have found a false positive key

Sir,

I have found a false positive key. Is it possible?

inflate.py gives error 'zlib.error: Error -3 while decompressing data: invalid stored block lengths'

Thanks

Mask for password recovery from Keys

Hi you assisted me in recovering 3 encrypted zip files (thanks again by the way), however I am trying to recover my original password from the keys as that password was used in one other file that is not pkzip.

Your password recovery is extremely fast however I have a long password (22 characters I believe) but it uses very few characters (less than 9) and I know the first 10 or 11 characters.

Is there anyway to specify your own mask like hashcat or John?

Problem with recovered files

Sorry to bother you. Following the example I have recovered the keys, extracting the file is not returning what I expect.

Looking at my zipfile, the encrypted file within:


Path = Wallets/wallet.dat
Folder = -
Size = 106496
Packed Size = 61288
Modified = 2013-10-01 22:06:50
Created = 
Accessed = 
Attributes = _ -rwx------
Encrypted = +
Comment = 
CRC = AC7A0D2F
Method = ZipCrypto Deflate
Host OS = Unix
Version = 20
Volume Index = 0

When I extract:

./bkcrack -C Backups.zip -c 'Wallets/wallet.dat' -k KEY GOES HERE -d wallet.dat.deflate

I get a file of 61276, not 61288 as in the zip info above.
When I try to deflate I get

Traceback (most recent call last):
  File "tools/inflate.py", line 15, in <module>
    main()
  File "tools/inflate.py", line 12, in main
    sys.stdout.buffer.write(inflate(sys.stdin.buffer.read()))
  File "tools/inflate.py", line 8, in inflate
    return zlib.decompress(data, -zlib.MAX_WBITS)
zlib.error: Error -3 while decompressing data: invalid stored block lengths

Any help would be amazing.

Issue with decrypting archive containing only deflated files

Hi there, love the tool, but I’m having a bit of an issue with running it on my own zip archive.

The zip archive contains the following:

-A main folder

-One ReadMe.txt file (Encrypted) inside the folder

-One Executable file (Encrypted) inside the folder

Known facts about the archive:

-Ten character password (Unknown KeySpace)

-Identical decryption key for both encrypted files

-ZipCrypto, the same version used for the example zip file

-Both files are deflated

-Major sections of the ReadMe.txt file are known

The issue:

I took the same approach to cracking the key like the tutorial. I ran both the tutorial and my own file through Zip2John and found both are PKZIP2, which told me that it’s most likely vulnerable. I started with finding the CRC of the TXT file, which was 7E...., so I assumed that I could just plug-in 7E for the offset at the end of the command. Then I used the echo command to create a file of the characters I knew were inside of the TXT file. After that I ran the script, and it began trying to break the encryption, however it ended with no key found.

What I believe to be the issue:

Both files are deflated, meaning that there might be a chance the offset is invalid and thus the tool won’t work. I believe the compression method is just default zip compression, and ZipCrypto suggests zipping with either the default windows utility or 7Zip with specific settings.

Can you assist me with this? I think this is a really interesting cryptographic attack but it just doesn’t seem to want to work for me which is quite annoying.

Need help - Error message: "File error: The input file plain.zip could not be opened."

Hello,

I always get the following error with the test files:
File error: The input file plain.zip could not be opened.

Command:
F:\Downloads\Test\bkcrack -C encrypted.zip -c SomeXmlFile.xml -P plain.zip -p plain.txt
I open CMD via Administrator.

Source: https://blog.devolutions.net/2020/08/why-you-should-never-use-zipcrypto
Even if I create the file myself with 7-zip, I get the same error message.

What am I doing wrong?

Could not find the keys.

Hi,

Can you help, I'm following this:

https://blog.devolutions.net/2020/08/why-you-should-never-use-zipcrypto

But get "Could not find the keys." error.

This is the file I'm trying to get:

Path = vid03.mpg
Folder = -
Size = 3802041
Packed Size = 3739062
Modified = 2006-11-06 00:55:54
Created =
Accessed =
Attributes = -rwxrwxrwx
Encrypted = +
Comment =
CRC = 9894DFB7
Method = ZipCrypto Deflate
Characteristics = up : Encrypt
Host OS = Unix
Version = 20
Volume Index = 0
Offset = 1606936819

This is the command:

bkcrack -C encrypted.zip -c vid03.mpg -P plain.zip -p plain.txt

This is the plain.zip file

Path = plain.txt
Folder = -
Size = 38
Packed Size = 38
Modified = 2021-09-02 11:22:52
Created = 2021-09-02 11:22:12
Accessed = 2021-09-02 11:37:39
Attributes = A
Encrypted = -
Comment =
CRC = D509EE84
Method = Store
Characteristics = NTFS
Host OS = FAT
Version = 10
Volume Index = 0
Offset = 0

Can you help at all?

How to find the cipher in the zip file?

Hi, I would like to find a way to extract a password protected zip file without brute-forcing/without inputting a password, I found bkcrack, however it requires some bits of the cipher, so can you please tell me how to obtain some bits of the cipher in a zip file? thanks.

Clarify description of -x option

I had to look at the source to be sure that in -x offset data, the offset is written in decimal.

While at it, it would be nice if you could say -x 0x100 instead of -x 256, such as using %i with scanf().

Guess which entry to use

It would be handy to guess which zip entries contain ciphertext and plaintext based on filename and/or CRC.

How to recover jpegs

Hi, I tried applying the tutorial but failed.

First, I have a zip archive (pkzip, deflated) containing pictures that I would like to recover.
zipdetails yields:

00000000 LOCAL HEADER #1       04034B50
00000004 Extract Zip Spec      14 '2.0'
00000005 Extract OS            00 'MS-DOS'
00000006 General Purpose Flag  0001
         [Bit  0]              1 'Encryption'
         [Bits 1-2]            1 'Maximum Compression'
00000008 Compression Method    0008 'Deflated'

I was not able to recover with hashcat and John the Ripper so far, which is why I found this project.

To test the cracking procedure, I created a sample zip file (3.zip) containing two images (camera__image_00000019.jpg, camera__image_00000020.jpg) to test the procedure of the tutorial with compressed jpg files instead of svg files.
As I'm on Linux the zipdetails are a little different in the OS section, however the rest seems to match:

000000 LOCAL HEADER #1       04034B50
000004 Extract Zip Spec      14 '2.0'
000005 Extract OS            03 'Unix'
000006 General Purpose Flag  0001
       [Bit  0]              1 'Encryption'
       [Bits 1-2]            1 'Maximum Compression'
000008 Compression Method    0008 'Deflated'

When looking at the header, it seems the header is typically

00000000: ffd8 ffe0 0010 4a46 4946 0001 0100 0001  ......JFIF......
00000010: 0001 0000 ffdb 0043 0006 0405 0605 0406  .......C........
00000020: 0605 0607 0706 080a 100a 0a09 090a 140e  ................
00000030: 0f0c 1017 1418 1817 1416 161a 1d25 1f1a  .............%..

Using the unzip -Z -v 3.zip | grep CRC or 7z l -slt 3.zip | grep CRC I got the crc sums:

32-bit CRC value (hex):                         e36b1447
32-bit CRC value (hex):                         f07353a1

Then I created the plaintext files twice with
echo -n -e '\xe3\xff\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01' > 3.zip_plain.txt
and to use more bytes with
echo -n -e '\xe3\xff\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00\x43\x00\x06\x04\x05' > 3.zip_plain2.txt

While the second was obviously faster, both did not work to recover the keys with
./bkcrack -C 3.zip -c camera__image_00000019.jpg -p 3.zip_plain.txt -o -1
and
./bkcrack -C 3.zip -c camera__image_00000019.jpg -p 3.zip_plain2.txt -o -1

What did I miss? Any help is very appreciated.

No CRC data in zip archives

If you zip files with 7-zip (19.00) or Winzip (output format *.zip) there is no CRC-data inside the enrypted archive and bkcrack couldnt extract the keys.

What i´m done:
I encrypted the example file with the tutorial and put it in a new encrypted encrypted.zip archiv.

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.