John The Ripper cuda souce 编译错误 Makefile:294 & Makefile:185

John The Ripper cuda souce 编译错误 Makefile:294 & Makefile:185

我正在遵循本指南

http://openwall.info/wiki/john/GPU

但是我收到错误 Makefile:294 和 Makefile:185

Environment:
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=15.10
DISTRIB_CODENAME=wily
DISTRIB_DESCRIPTION="Ubuntu 15.10"
NAME="Ubuntu"
VERSION="15.10 (Wily Werewolf)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 15.10"
VERSION_ID="15.10"

英伟达

+------------------------------------------------------+                       
| NVIDIA-SMI 352.63     Driver Version: 352.63         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro K2100M       Off  | 0000:01:00.0     Off |                  N/A |
| N/A   49C    P0    N/A /  N/A |    298MiB /  2047MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0       976    G   /usr/bin/X                                     213MiB |
|    0      2570    G   compiz                                          63MiB |
|    0      8168    G   /usr/lib/firefox/plugin-container                9MiB |
+-----------------------------------------------------------------------------+

命令运行:

$ ./configure && make clean && make -sj4

checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking whether to compile using MPI... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking additional paths...  -L/usr/local/lib -I/usr/local/include
checking arg check macro for -m with gcc... yes
checking arg check macro for -Q with gcc... yes
checking if gcc supports -funroll-loops... yes
checking if gcc supports -Os... yes
checking if gcc supports -finline-functions... yes
checking if gcc supports -Wall... yes
checking if gcc supports -Wdeclaration-after-statement... yes
checking if gcc supports -fomit-frame-pointer... yes
checking if gcc supports --param allow-store-data-races=0... yes
checking if gcc supports -Wno-deprecated-declarations... yes
checking if gcc supports -Wno-format-extra-args... yes
checking if gcc supports -Qunused-arguments... no
checking whether ln -s works... yes
checking for grep that handles long lines and -e... /bin/grep
checking for a sed that does not truncate output... /bin/sed
checking for GNU make... make
checking whether make sets $(MAKE)... yes
checking how to run the C preprocessor... gcc -E
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for sort... /usr/bin/sort
checking for ar... /usr/bin/ar
checking for find... /usr/bin/find
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking if pkg-config will be used... yes
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking size of char... 1
checking size of unsigned char... 1
checking size of short... 2
checking size of unsigned short... 2
checking size of int... 4
checking size of unsigned... 4
checking size of unsigned int... 4
checking size of long... 8
checking size of long long... 8
checking size of double... 8
checking size of long double... 16
checking size of int *... 8
checking size of long long *... 8
checking size of void *... 8
configure: Testing build host's native CPU features
checking for MMX... yes
checking for SSE2... yes
checking for SSSE3... yes
checking for SSE4.1... yes
checking for AVX... yes
checking for AVX2... yes
checking for XOP... no
checking for arch.h alternative... x86-64.h
checking whether compiler understands -march=native... yes
checking for 32/64 bit... 64-bit
checking for extra ASFLAGS... None needed
checking for X32 ABI... no
checking for unaligned memory access allowed... yes
checking for byte ordering according to target triple... little
checking for OPENSSL... yes
checking for sqrt in -lm... yes
checking for deflate in -lz... yes
checking for library containing crypt... -lcrypt
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking gmp/gmp.h usability... no
checking gmp/gmp.h presence... no
checking for gmp/gmp.h... no
checking skey.h usability... no
checking skey.h presence... no
checking for skey.h... no
checking for S/Key... using our own code
checking bzlib.h usability... no
checking bzlib.h presence... no
checking for bzlib.h... no
checking for main in -lkernel32... no
checking for dlopen in -ldl... yes
checking librexgen/api/c/librexgen.h usability... no
checking librexgen/api/c/librexgen.h presence... no
checking for librexgen/api/c/librexgen.h... no
checking pcap.h usability... no
checking pcap.h presence... no
checking for pcap.h... no
checking pcap/pcap.h usability... no
checking pcap/pcap.h presence... no
checking for pcap/pcap.h... no
checking for pcap.h... (cached) no
checking for pcap/pcap.h... (cached) no
checking whether time.h and sys/time.h may both be included... yes
checking whether string.h and strings.h may both be included... yes
checking for EVP_aes_256_xts... yes
checking for SHA256... yes
checking for WHIRLPOOL... yes
checking for RIPEMD160... yes
checking for AES_encrypt... yes
checking for EVP_sha512... yes
checking for BIO_new... yes
checking for gcc option to support OpenMP... -fopenmp
checking additional paths for OpenCL... none
checking if compiler needs -Werror to reject unknown flags... no
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking whether we are using the Microsoft C compiler... no
checking CL/cl.h usability... yes
checking CL/cl.h presence... yes
checking for CL/cl.h... yes
checking OpenCL/cl.h usability... no
checking OpenCL/cl.h presence... no
checking for OpenCL/cl.h... no
checking windows.h usability... no
checking windows.h presence... no
checking for windows.h... no
checking for OpenCL library... -lOpenCL
checking additional paths for CUDA... none
checking for nvcc... /usr/bin/nvcc
checking for llvm-gcc-4.2... no
checking for gcc-4.6... no
checking for gcc-4.5... no
checking for gcc-4.4... no
checking for gcc-4.3... no
checking for gcc-4.2... no
checking cuda.h usability... yes
checking cuda.h presence... yes
checking for cuda.h... yes
checking for cudaGetDeviceCount in -lcudart... yes
checking OS.h usability... no
checking OS.h presence... no
checking for OS.h... no
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking crypt.h usability... yes
checking crypt.h presence... yes
checking for crypt.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking net/ethernet.h usability... yes
checking net/ethernet.h presence... yes
checking for net/ethernet.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking netinet/in_systm.h usability... yes
checking netinet/in_systm.h presence... yes
checking for netinet/in_systm.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/ethernet.h usability... no
checking sys/ethernet.h presence... no
checking for sys/ethernet.h... no
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking for sys/types.h... (cached) yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking unixlib/local.h usability... no
checking unixlib/local.h presence... no
checking for unixlib/local.h... no
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking for windows.h... (cached) no
checking for net/if.h... yes
checking for net/if_arp.h... yes
checking for netinet/if_ether.h... yes
checking for netinet/ip.h... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for inline... inline
checking for int32_t... yes
checking for int64_t... yes
checking for off_t... yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for ptrdiff_t... yes
checking for error_at_line... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking for pid_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for fseek64... no
checking for fseeko... yes
checking for fseeko64... yes
checking for _fseeki64... no
checking for lseek64... yes
checking for lseek... yes
checking for ftell64... no
checking for ftello... yes
checking for ftello64... yes
checking for _ftelli64... no
checking for fopen64... yes
checking for _fopen64... no
checking for memmem... yes
checking for sleep... yes
checking for atexit... yes
checking for endpwent... yes
checking for floor... no
checking for ftruncate... yes
checking for gethostbyname... yes
checking for gettimeofday... yes
checking for inet_ntoa... yes
checking for isascii... yes
checking for mkdir... yes
checking for rmdir... yes
checking for setenv... yes
checking for putenv... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking for stricmp... no
checking for strcmpi... no
checking for _stricmp... no
checking for _strcmpi... no
checking for strnicmp... no
checking for strncmpi... no
checking for _strnicmp... no
checking for _strncmpi... no
checking for strrchr... yes
checking for strcspn... yes
checking for strspn... yes
checking for strtol... yes
checking for strtoul... yes
checking for strlwr... no
checking for strupr... no
checking for bzero... yes
checking for atoll... yes
checking for _atoi64... no
checking for snprintf... yes
checking for sprintf_s... no
checking for yasm that supports "-g dwarf2 -f elf64"... 
checking for OS-specific feature macros needed...  -D_GNU_SOURCE
checking size of size_t... 8
checking size of off_t... 8
configure: creating ./john_build_rule.h
configure: creating ./config.status
config.status: creating Makefile
config.status: creating aes/Makefile
config.status: creating aes/aesni/Makefile
config.status: creating aes/openssl/Makefile
config.status: creating escrypt/Makefile
config.status: creating autoconfig.h
config.status: autoconfig.h is unchanged
config.status: linking x86-64.h to arch.h
config.status: executing default commands
configure: creating ./fmt_externs.h
configure: creating ./fmt_registers.h
checking for john.local.conf... exists

Configured for building John the Ripper 1.8.0-jumbo-1:

Target CPU .................................. x86_64 AVX2, 64-bit LE
AES-NI support .............................. depends on OpenSSL
Target OS ................................... linux-gnu
Cross compiling ............................. no
Legacy arch header .......................... x86-64.h
OpenMPI support (default disabled) .......... no
Fork support ................................ yes
OpenMP support .............................. yes
OpenCL support .............................. yes
CUDA support ................................ yes
Generic crypt(3) format ..................... yes

Optional libraries found:
Rexgen (extra cracking mode) ................ no
GMP (performance for SRP formats) ........... no
PCAP (vncpcap2john and SIPdump) ............. no
BZ2 (gpg2john extra decompression logic) .... yes

Development options (these may hurt performance when enabled):
Memdbg memory debugging settings ............ disabled
AddressSanitizer ("ASAN") ................... disabled

Install missing libraries to get any needed features that were omitted.

Configure finished.  Now 'make clean && make -s' to compile.
rm -f ../run/john ../run/unshadow ../run/unafs ../run/unique ../run/undrop ../run/ssh2john ../run/rar2john ../run/zip2john ../run/genmkvpwd ../run/mkvcalcproba ../run/calc_stat ../run/tgtsnarf ../run/racf2john ../run/hccap2john ../run/pwsafe2john ../run/raw2dyna ../run/keepass2john ../run/pfx2john ../run/keychain2john ../run/keyring2john ../run/kwallet2john ../run/dmg2john ../run/putty2john ../run/uaf2john ../run/truecrypt_volume2john ../run/keystore2john ../run/wpapcap2john ../run/gpg2john ../run/cprepair ../run/luks2john ../run/base64conv
rm -f john-macosx-* *.o escrypt/*.o *.bak core
rm -f ../run/kernels/*.cl ../run/kernels/*.h ../run/kernels/*.bin
rm -f detect bench para-bench generic.h tmp.s
rm -f cuda/*.o cuda/*~ *~
cp /dev/null Makefile.dep
make[1]: Entering directory '/opt/john-1.8.0-jumbo-1/src/aes'
/usr/bin/find . -name \*.a -exec rm {} \;
/usr/bin/find . -name \*.o -exec rm {} \;
make[1]: Leaving directory '/opt/john-1.8.0-jumbo-1/src/aes'
make[1]: Entering directory '/opt/john-1.8.0-jumbo-1/src/escrypt'
/bin/rm -f tests crypto_scrypt-best.o crypto_scrypt-common.o sha256.o tests.o crypto_scrypt-*.o
make[1]: Leaving directory '/opt/john-1.8.0-jumbo-1/src/escrypt'
gpg2john.c: In function ‘pkt_type’:
gpg2john.c:1194:7: warning: type of ‘tag’ defaults to ‘int’ [-Wimplicit-int]
 char *pkt_type(tag) {
       ^
/usr/bin/ar: creating aes.a
ptxas info    : 0 bytes gmem
ptxas info    : 0 bytes gmem, 12 bytes cmem[2]
ptxas info    : Compiling entry function '_Z13kernel_phpassPhP12phpass_crack' for 'sm_20'
ptxas info    : Function properties for _Z13kernel_phpassPhP12phpass_crack
    32 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 18 registers, 48 bytes cmem[0], 16 bytes cmem[16]
ptxas info    : 0 bytes gmem, 21 bytes cmem[2]
ptxas info    : Compiling entry function '_Z14kernel_crypt_rP18crypt_md5_passwordP15crypt_md5_crack' for 'sm_20'
ptxas info    : Function properties for _Z14kernel_crypt_rP18crypt_md5_passwordP15crypt_md5_crack
    64 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 28 registers, 5120 bytes smem, 48 bytes cmem[0], 16 bytes cmem[16]
ptxas info    : 0 bytes gmem, 288 bytes cmem[2]
ptxas info    : Compiling entry function '_Z13kernel_sha256P15sha256_passwordP11sha256_hash' for 'sm_20'
ptxas info    : Function properties for _Z13kernel_sha256P15sha256_passwordP11sha256_hash
    264 bytes stack frame, 4 bytes spill stores, 4 bytes spill loads
ptxas info    : Used 63 registers, 48 bytes cmem[0], 24 bytes cmem[16]
ptxas info    : 0 bytes gmem, 108 bytes cmem[2]
ptxas info    : Compiling entry function '_Z13pbkdf2_kernelP16mscash2_passwordP12mscash2_hash' for 'sm_20'
ptxas info    : Function properties for _Z13pbkdf2_kernelP16mscash2_passwordP12mscash2_hash
    136 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 50 registers, 48 bytes cmem[0], 4 bytes cmem[16]
ptxas info    : 0 bytes gmem, 288 bytes cmem[2]
ptxas info    : Compiling entry function '_Z13kernel_sha256P15sha256_passwordP11sha224_hash' for 'sm_20'
ptxas info    : Function properties for _Z13kernel_sha256P15sha256_passwordP11sha224_hash
    264 bytes stack frame, 8 bytes spill stores, 8 bytes spill loads
ptxas info    : Used 63 registers, 48 bytes cmem[0], 24 bytes cmem[16]
ptxas info    : 0 bytes gmem, 42 bytes cmem[2]
ptxas info    : Compiling entry function '_Z13mscash_kernelP15mscash_passwordP11mscash_hash' for 'sm_20'
ptxas info    : Function properties for _Z13mscash_kernelP15mscash_passwordP11mscash_hash
    112 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 26 registers, 48 bytes cmem[0], 4 bytes cmem[16]
ptxas info    : 0 bytes gmem, 280 bytes cmem[2]
ptxas info    : Compiling entry function '_Z14kernel_crypt_rP21crypt_sha256_passwordPj' for 'sm_20'
ptxas info    : Function properties for _Z14kernel_crypt_rP21crypt_sha256_passwordPj
    0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 52 registers, 7680 bytes smem, 48 bytes cmem[0], 28 bytes cmem[16]
ptxas info    : Function properties for _Z11sha256cryptPKchPjjj4
    400 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : 0 bytes gmem, 664 bytes cmem[2]
ptxas info    : Compiling entry function '_Z14kernel_xsha512iP11xsha512_keyP12xsha512_hashPA110_c' for 'sm_20'
ptxas info    : Function properties for _Z14kernel_xsha512iP11xsha512_keyP12xsha512_hashPA110_c
    200 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 60 registers, 64 bytes cmem[0], 20 bytes cmem[16]
ptxas info    : Compiling entry function '_Z14kernel_cmp_alliPyPh' for 'sm_20'
ptxas info    : Function properties for _Z14kernel_cmp_alliPyPh
    0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 8 registers, 56 bytes cmem[0]
ptxas info    : 0 bytes gmem, 648 bytes cmem[2]
ptxas info    : Compiling entry function '_Z13kernel_sha512P10sha512_keyPA1_y' for 'sm_20'
ptxas info    : Function properties for _Z13kernel_sha512P10sha512_keyPA1_y
    200 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 60 registers, 48 bytes cmem[0], 20 bytes cmem[16]
ptxas info    : Compiling entry function '_Z14kernel_cmp_alliPyPh' for 'sm_20'
ptxas info    : Function properties for _Z14kernel_cmp_alliPyPh
    0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 8 registers, 56 bytes cmem[0]
ptxas info    : 0 bytes gmem
ptxas info    : Compiling entry function '_Z13kernel_pwsafeP11pwsafe_passP11pwsafe_saltP11pwsafe_hash' for 'sm_20'
ptxas info    : Function properties for _Z13kernel_pwsafeP11pwsafe_passP11pwsafe_saltP11pwsafe_hash
    64 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 35 registers, 56 bytes cmem[0], 24 bytes cmem[16]
ptxas info    : 0 bytes gmem, 712 bytes cmem[2]
ptxas info    : Compiling entry function '_Z14kernel_crypt_rP21crypt_sha512_passwordP17crypt_sha512_hash' for 'sm_20'
ptxas info    : Function properties for _Z14kernel_crypt_rP21crypt_sha512_passwordP17crypt_sha512_hash
    8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 63 registers, 5120 bytes smem, 48 bytes cmem[0], 28 bytes cmem[16]
ptxas info    : Function properties for _Z11sha512cryptPKchPyjj1
    616 bytes stack frame, 88 bytes spill stores, 120 bytes spill loads
ptxas info    : 0 bytes gmem, 40 bytes cmem[2]
ptxas info    : Compiling entry function '_Z20wpapsk_pbkdf2_kernelP15wpapsk_passwordP11wpapsk_hash' for 'sm_20'
ptxas info    : Function properties for _Z20wpapsk_pbkdf2_kernelP15wpapsk_passwordP11wpapsk_hash
    216 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 60 registers, 48 bytes cmem[0], 4 bytes cmem[16]
dynamic_fmt.o: In function `DynamicFunc__crypt_md5_to_input_raw_Overwrite_NoLen':
/opt/john-1.8.0-jumbo-1/src/dynamic_fmt.c:4989: undefined reference to `MD5_body_for_thread'
dynamic_fmt.o: In function `DynamicFunc__crypt_md5':
/opt/john-1.8.0-jumbo-1/src/dynamic_fmt.c:4425: undefined reference to `MD5_body_for_thread'
dynamic_fmt.o: In function `DynamicFunc__crypt_md5_in1_to_out2':
/opt/john-1.8.0-jumbo-1/src/dynamic_fmt.c:4732: undefined reference to `MD5_body_for_thread'
dynamic_fmt.o: In function `DynamicFunc__crypt_md5_to_input_raw':
/opt/john-1.8.0-jumbo-1/src/dynamic_fmt.c:4903: undefined reference to `MD5_body_for_thread'
dynamic_fmt.o: In function `DynamicFunc__crypt_md5_to_input_raw_Overwrite_NoLen_but_setlen_in_SSE':
/opt/john-1.8.0-jumbo-1/src/dynamic_fmt.c:4946: undefined reference to `MD5_body_for_thread'
dynamic_fmt.o:/opt/john-1.8.0-jumbo-1/src/dynamic_fmt.c:4817: more undefined references to `MD5_body_for_thread' follow
collect2: error: ld returned 1 exit status
Makefile:294: recipe for target '../run/john' failed
make[1]: *** [../run/john] Error 1
Makefile:185: recipe for target 'default' failed
make: *** [default] Error 2

答案1

openwall.com 突出显示了错误

/opt/john-1.8.0-jumbo-1/src/dynamic_fmt.c:4989: undefined reference to > `MD5_body_for_thread' 

解决方案:安装此版本:https://github.com/magnumripper/JohnTheRipper

相关内容