|
Message-ID: <BLU0-SMTP60137B7CE1512C0A3E8238FD270@phx.gbl> Date: Sat, 5 Jan 2013 11:48:38 +0100 From: Frank Dittrich <frank_dittrich@...mail.com> To: john-dev@...ts.openwall.com Subject: Trying to build john without *_fmt_plug.c I wanted to test whether building a binary without support for any unnecessary formats would result in better performance. So I first got the latest git changes (including 018ddb99). Then I uncommented HAVE_KRB5, HAVE_NSS and HAVE_GMP in Makefile. Then I did (unstable-jumbo)src $ make clean > /dev/null (unstable-jumbo)src $ mkdir plugins (unstable-jumbo)src $ mv *_fmt_plug.c plugins/ (unstable-jumbo)src $ make linux-x86-native > /dev/null make[1]: *** No rule to make target `*_fmt_plug.c', needed by `fmt_externs.h'. Stop. make: *** [linux-x86-native] Error 2 (I removed the irrelevant rawSHA1_ng_fmt.c warning about not using sse4.1 from the output.) So, I need to provide at least some *_fmt_plug.c. (unstable-jumbo)src $ touch empty_fmt_plug.c (unstable-jumbo)src $ make clean > /dev/null (unstable-jumbo)src $ make linux-x86-native > /dev/null [...] x86-sse.o: In function `nt_crypt_all_sse2': (.text+0xb758): undefined reference to `nt_buffer1x' x86-sse.o: In function `nt_crypt_all_sse2': (.text+0xb7a9): undefined reference to `nt_buffer4x' [...] x86-sse.o: In function `nt_crypt_all_sse2': (.text+0xbf82): undefined reference to `output4x' x86-sse.o: In function `nt_crypt_all_sse2': (.text+0xbf87): undefined reference to `output1x' [...] collect2: ld returned 1 exit status make[1]: *** [../run/john] Error 1 All these variables are defined in NT_fmt_plug.c Next attempt: (unstable-jumbo)src $ mv plugins/NT_fmt_plug.c . (unstable-jumbo)src $ make clean > /dev/null (unstable-jumbo)src $ make linux-x86-native > /dev/null cracker.o: In function `crk_process_guess': cracker.c:(.text+0x6db): undefined reference to `mediawiki_fix_salt' inc.o: In function `do_incremental_crack': inc.c:(.text+0x2c36): undefined reference to `fmt_NETLM' inc.c:(.text+0x2c41): undefined reference to `fmt_NETHALFLM' loader.o: In function `ldr_load_pot_line': loader.c:(.text+0x171f): undefined reference to `mediawiki_fix_salt' collect2: ld returned 1 exit status make[1]: *** [../run/john] Error 1 make: *** [linux-x86-native] Error 2 So, cracker.c and loader.c need mediawiki_fix_salt, and inc.c needs fmt_NETLM and fmt_NETHALFLM. (unstable-jumbo)src $ cd plugins/ (unstable-jumbo)plugins $ mv mediawiki_fmt_plug.c NETLM_fmt_plug.c NETSPLITLM_fmt_plug.c .. (unstable-jumbo)plugins $ cd .. (unstable-jumbo)src $ make clean > /dev/null (unstable-jumbo)src $ make linux-x86-native > /dev/null This finally worked. I managed to get rid of more than 100 plugin formats. But currently, 4 plugin formats are required to build john: (unstable-jumbo)src $ ls plugins/|wc -l 102 (unstable-jumbo)src $ cat fmt_registers.h john_register_one(&fmt_NETHALFLM); john_register_one(&fmt_NETLM); john_register_one(&fmt_NT); john_register_one(&fmt_mediawiki); It would be nice if you could build john without any plugin format. But I don't thin I'll find time for any fixes over the weekend. Frank
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.