diff --git a/src/BFEgg_fmt.c b/src/BFEgg_fmt_plug.c similarity index 100% rename from src/BFEgg_fmt.c rename to src/BFEgg_fmt_plug.c diff --git a/src/DMD5_fmt.c b/src/DMD5_fmt_plug.c similarity index 100% rename from src/DMD5_fmt.c rename to src/DMD5_fmt_plug.c diff --git a/src/DOMINOSEC_fmt.c b/src/DOMINOSEC_fmt_plug.c similarity index 100% rename from src/DOMINOSEC_fmt.c rename to src/DOMINOSEC_fmt_plug.c diff --git a/src/EPI_fmt.c b/src/EPI_fmt_plug.c similarity index 100% rename from src/EPI_fmt.c rename to src/EPI_fmt_plug.c diff --git a/src/HDAA_fmt.c b/src/HDAA_fmt_plug.c similarity index 100% rename from src/HDAA_fmt.c rename to src/HDAA_fmt_plug.c diff --git a/src/IPB2_fmt.c b/src/IPB2_fmt_plug.c similarity index 100% rename from src/IPB2_fmt.c rename to src/IPB2_fmt_plug.c diff --git a/src/KRB4_fmt.c b/src/KRB4_fmt_plug.c similarity index 100% rename from src/KRB4_fmt.c rename to src/KRB4_fmt_plug.c diff --git a/src/KRB4_std.c b/src/KRB4_std_plug.c similarity index 100% rename from src/KRB4_std.c rename to src/KRB4_std_plug.c diff --git a/src/KRB5_fmt.c b/src/KRB5_fmt_plug.c similarity index 100% rename from src/KRB5_fmt.c rename to src/KRB5_fmt_plug.c diff --git a/src/KRB5_std.c b/src/KRB5_std_plug.c similarity index 100% rename from src/KRB5_std.c rename to src/KRB5_std_plug.c diff --git a/src/MSCHAPv2_fmt.c b/src/MSCHAPv2_fmt_plug.c similarity index 100% rename from src/MSCHAPv2_fmt.c rename to src/MSCHAPv2_fmt_plug.c diff --git a/src/MYSQL_fast_fmt.c b/src/MYSQL_fast_fmt_plug.c similarity index 100% rename from src/MYSQL_fast_fmt.c rename to src/MYSQL_fast_fmt_plug.c diff --git a/src/MYSQL_fmt.c b/src/MYSQL_fmt_plug.c similarity index 100% rename from src/MYSQL_fmt.c rename to src/MYSQL_fmt_plug.c diff --git a/src/Makefile b/src/Makefile index 3fa6057..212ae73 100644 --- a/src/Makefile +++ b/src/Makefile @@ -42,6 +42,11 @@ LDFLAGS_MKV = -s -lm OPT_NORMAL = -funroll-loops OPT_INLINE = -finline-functions +# Should work on Solaris and gmake +PLUGFORMATS_SRCS: sh =if [ -f *_plug.c ]; then ls *_plug.c; fi +PLUGFORMATS_SRCS += $(shell ls *_plug.c) +PLUGFORMATS_OBJS = $(PLUGFORMATS_SRCS:.c=.o) + JOHN_OBJS = \ $(MPIOBJ) \ DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o \ @@ -50,54 +55,14 @@ JOHN_OBJS = \ BF_fmt.o BF_std.o \ AFS_fmt.o \ LM_fmt.o \ - NT_fmt.o \ - XSHA_fmt.o \ - BFEgg_fmt.o \ - DOMINOSEC_fmt.o \ timer.o \ - lotus5_fmt.o \ - oracle_fmt.o \ - oracle11_fmt.o \ - MYSQL_fmt.o \ - mysqlSHA1_fmt.o \ - KRB4_fmt.o KRB4_std.o \ - KRB5_fmt.o KRB5_std.o \ - mskrb5_fmt.o \ md5_go.o \ - rawMD5go_fmt.o md5_eq.o \ - rawMD5unicode_fmt.o \ - PO_fmt.o \ + md5_eq.o \ md5.o \ hmacmd5.o \ - hmacMD5_fmt.o \ - IPB2_fmt.o \ - rawSHA1_fmt.o \ - sha1_gen_fmt.o \ - rawMD4_fmt.o \ - md4_gen_fmt.o \ - NSLDAP_fmt.o NSLDAPS_fmt.o OPENLDAPS_fmt.o salted_sha1_fmt.o base64.o \ + base64.o \ md4.o \ - mscash_fmt.o \ - mscash2_fmt.o \ - NETLM_fmt.o \ - NETNTLM_fmt.o \ - NETLMv2_fmt.o \ - NETNTLMv2_fmt.o \ - NETHALFLM_fmt.o \ - mediawiki_fmt.o \ - MSCHAPv2_fmt.o \ - mssql_fmt.o \ - mssql05_fmt.o \ - EPI_fmt.o \ - PHPS_fmt.o \ - MYSQL_fast_fmt.o \ - pixMD5_fmt.o \ - sapG_fmt.o sapB_fmt.o \ - NS_fmt.o \ - HDAA_fmt.o \ - phpassMD5_fmt.o \ md5_gen_fmt.o md5_gen_parser.o md5_gen_preloads.o md5_gen_utils.o \ - DMD5_fmt.o \ hmailserver_fmt.o \ SybaseASE_fmt.o \ SKEY_fmt.o \ @@ -105,6 +70,7 @@ JOHN_OBJS = \ pdf_fmt.o pdf2john.o pdfcrack_common.o pdfcrack_md5.o pdfparser.o pdfcrack.o pdfcrack_rc4.o \ rar_fmt.o rar2john.o \ zip_fmt.o zip2john.o gladman_hmac.o gladman_pwd2key.o \ + $(PLUGFORMATS_OBJS) \ dummy.o \ batch.o bench.o charset.o common.o compiler.o config.o cracker.o \ crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o \ @@ -1070,7 +1036,7 @@ john.com: john.asm # this comment should stay for a jumbo or 2, to make sure this does not break # other peoples cygwin builds. # $(LD) $(JOHN_OBJS) -lkernel32 -lcrypto -o ../run/john.exe - + ../run/john.exe: $(JOHN_OBJS) $(LD) $(JOHN_OBJS) $(LDFLAGS) -lkernel32 -o ../run/john.exe strip ../run/john.exe @@ -1151,6 +1117,11 @@ bench-t.o: bench.c .c.o: $(CC) $(CFLAGS) $(OPT_NORMAL) $*.c +john.o: john.c $(PLUGFORMATS_SRCS) + grep "struct fmt_main [^\*]" *_fmt_plug.c | grep -v extern | grep " =" | sed 's/.c:struct/.c/' | awk '{printf("/* %-22s */ extern struct %s %s;\n",$$1,$$2,$$3);}' > fmt_externs.h + grep "struct fmt_main [^\*]" *_fmt_plug.c | grep -v extern | grep " =" | sed 's/.c:struct/.c/' | awk '{printf("/* %-22s */ john_register_one(&%s);\n",$$1,$$3);}' > fmt_registers.h + $(CC) -c $(CFLAGS) $(OPT_NORMAL) john.c + .S.o: $(AS) $(ASFLAGS) $*.S @@ -1168,6 +1139,7 @@ clean: $(RM) $(PROJ) $(PROJ_DOS) $(PROJ_WIN32) $(PROJ_WIN32_MINGW) $(RM) ../run/john.exe john-macosx-* *.o *.bak core $(RM) detect bench generic.h arch.h tmp.s + $(RM) fmt_registers.h fmt_externs.h $(CP) $(NULL) Makefile.dep include Makefile.dep diff --git a/src/NETLM_fmt.c b/src/NETLM_fmt_plug.c similarity index 100% rename from src/NETLM_fmt.c rename to src/NETLM_fmt_plug.c diff --git a/src/NETLMv2_fmt.c b/src/NETLMv2_fmt_plug.c similarity index 100% rename from src/NETLMv2_fmt.c rename to src/NETLMv2_fmt_plug.c diff --git a/src/NETNTLM_fmt.c b/src/NETNTLM_fmt_plug.c similarity index 100% rename from src/NETNTLM_fmt.c rename to src/NETNTLM_fmt_plug.c diff --git a/src/NETNTLMv2_fmt.c b/src/NETNTLMv2_fmt_plug.c similarity index 100% rename from src/NETNTLMv2_fmt.c rename to src/NETNTLMv2_fmt_plug.c diff --git a/src/NETHALFLM_fmt.c b/src/NETSPLITLM_fmt_plug.c similarity index 100% rename from src/NETHALFLM_fmt.c rename to src/NETSPLITLM_fmt_plug.c diff --git a/src/NSLDAPS_fmt.c b/src/NSLDAPS_fmt_plug.c similarity index 100% rename from src/NSLDAPS_fmt.c rename to src/NSLDAPS_fmt_plug.c diff --git a/src/NSLDAP_fmt.c b/src/NSLDAP_fmt_plug.c similarity index 100% rename from src/NSLDAP_fmt.c rename to src/NSLDAP_fmt_plug.c diff --git a/src/NS_fmt.c b/src/NS_fmt_plug.c similarity index 100% rename from src/NS_fmt.c rename to src/NS_fmt_plug.c diff --git a/src/NT_fmt.c b/src/NT_fmt_plug.c similarity index 100% rename from src/NT_fmt.c rename to src/NT_fmt_plug.c diff --git a/src/OPENLDAPS_fmt.c b/src/OPENLDAPS_fmt_plug.c similarity index 100% rename from src/OPENLDAPS_fmt.c rename to src/OPENLDAPS_fmt_plug.c diff --git a/src/PHPS_fmt.c b/src/PHPS_fmt_plug.c similarity index 100% rename from src/PHPS_fmt.c rename to src/PHPS_fmt_plug.c diff --git a/src/PO_fmt.c b/src/PO_fmt_plug.c similarity index 100% rename from src/PO_fmt.c rename to src/PO_fmt_plug.c diff --git a/src/XSHA_fmt.c b/src/XSHA_fmt_plug.c similarity index 100% rename from src/XSHA_fmt.c rename to src/XSHA_fmt_plug.c diff --git a/src/fmt_registers.orig.h b/src/fmt_registers.orig.h new file mode 100644 index 0000000..51c62be --- /dev/null +++ b/src/fmt_registers.orig.h @@ -0,0 +1,45 @@ + john_register_one(&fmt_NT); +- john_register_one(&fmt_XSHA); +- john_register_one(&fmt_mscash); +- john_register_one(&fmt_mscash2); +- john_register_one(&fmt_hmacMD5); +- john_register_one(&fmt_PO); +- john_register_one(&fmt_rawMD5go); +- john_register_one(&fmt_rawMD5unicode); +- john_register_one(&fmt_phpassmd5); +- john_register_one(&fmt_DMD5); +- john_register_one(&fmt_IPB2); +- john_register_one(&fmt_rawSHA1); +- john_register_one(&fmt_sha1_gen); +- john_register_one(&fmt_rawMD4); +- john_register_one(&fmt_md4_gen); +- john_register_one(&fmt_KRB4); +- john_register_one(&fmt_KRB5); +- john_register_one(&fmt_mskrb5); +- john_register_one(&fmt_NSLDAP); +- john_register_one(&fmt_NSLDAPS); +- john_register_one(&fmt_OPENLDAPS); +- john_register_one(&fmt_BFEgg); +- john_register_one(&fmt_oracle); +- john_register_one(&fmt_oracle11); +- john_register_one(&fmt_MYSQL); +- john_register_one(&fmt_mysqlSHA1); +- john_register_one(&fmt_lotus5); +- john_register_one(&fmt_DOMINOSEC); + john_register_one(&fmt_NETLM); +- john_register_one(&fmt_NETNTLM); +- john_register_one(&fmt_NETLMv2); +- john_register_one(&fmt_NETNTLMv2); + john_register_one(&fmt_NETHALFLM); +- john_register_one(&fmt_MSCHAPv2); +- john_register_one(&fmt_mssql); +- john_register_one(&fmt_mssql05); +- john_register_one(&fmt_EPI); +- john_register_one(&fmt_PHPS); +- john_register_one(&fmt_MYSQL_fast); +- john_register_one(&fmt_pixMD5); +- john_register_one(&fmt_sapG); +- john_register_one(&fmt_sapB); +- john_register_one(&fmt_NS); +- john_register_one(&fmt_HDAA); +- john_register_one(&fmt_saltedsha); diff --git a/src/hmacMD5_fmt.c b/src/hmacMD5_fmt_plug.c similarity index 100% rename from src/hmacMD5_fmt.c rename to src/hmacMD5_fmt_plug.c diff --git a/src/john.c b/src/john.c index a29a4e4..eb61bd3 100644 --- a/src/john.c +++ b/src/john.c @@ -61,53 +61,7 @@ extern struct fmt_main fmt_crypt; #endif extern struct fmt_main fmt_dummy; -extern struct fmt_main fmt_NT, fmt_XSHA; -extern struct fmt_main fmt_PO; -extern struct fmt_main fmt_rawMD5go; -extern struct fmt_main fmt_rawMD5unicode; extern struct fmt_main fmt_MD5gen; -extern struct fmt_main fmt_hmacMD5; -extern struct fmt_main fmt_IPB2; -extern struct fmt_main fmt_phpassmd5; -extern struct fmt_main fmt_DMD5; -extern struct fmt_main fmt_BFEgg; -extern struct fmt_main fmt_KRB4; -extern struct fmt_main fmt_KRB5; -extern struct fmt_main fmt_mskrb5; -extern struct fmt_main fmt_oracle; -extern struct fmt_main fmt_oracle11; -extern struct fmt_main fmt_MYSQL; -extern struct fmt_main fmt_mysqlSHA1; -extern struct fmt_main fmt_NSLDAP; -extern struct fmt_main fmt_NSLDAPS; -extern struct fmt_main fmt_OPENLDAPS; -extern struct fmt_main fmt_saltedsha; -extern struct fmt_main fmt_mediawiki; -extern struct fmt_main fmt_mscash; -extern struct fmt_main fmt_mscash2; -extern struct fmt_main fmt_rawSHA1; -extern struct fmt_main fmt_XSHA; -extern struct fmt_main fmt_sha1_gen; -extern struct fmt_main fmt_rawMD4; -extern struct fmt_main fmt_md4_gen; -extern struct fmt_main fmt_lotus5; -extern struct fmt_main fmt_DOMINOSEC; -extern struct fmt_main fmt_NETLM; -extern struct fmt_main fmt_NETNTLM; -extern struct fmt_main fmt_NETLMv2; -extern struct fmt_main fmt_NETNTLMv2; -extern struct fmt_main fmt_NETHALFLM; -extern struct fmt_main fmt_MSCHAPv2; -extern struct fmt_main fmt_mssql; -extern struct fmt_main fmt_mssql05; -extern struct fmt_main fmt_EPI; -extern struct fmt_main fmt_PHPS; -extern struct fmt_main fmt_MYSQL_fast; -extern struct fmt_main fmt_pixMD5; -extern struct fmt_main fmt_sapG; -extern struct fmt_main fmt_sapB; -extern struct fmt_main fmt_NS; -extern struct fmt_main fmt_HDAA; #if OPENSSL_VERSION_NUMBER >= 0x00908000 extern struct fmt_main fmt_hmailserver; @@ -123,6 +77,8 @@ extern struct fmt_main fmt_pdf; extern struct fmt_main rar_fmt; extern struct fmt_main zip_fmt; +#include "fmt_externs.h" + extern int unique(int argc, char **argv); extern int unshadow(int argc, char **argv); extern int unafs(int argc, char **argv); @@ -164,53 +120,6 @@ static void john_register_all(void) john_register_one(&fmt_AFS); john_register_one(&fmt_LM); - john_register_one(&fmt_NT); - john_register_one(&fmt_XSHA); - john_register_one(&fmt_mscash); - john_register_one(&fmt_mscash2); - john_register_one(&fmt_hmacMD5); - john_register_one(&fmt_PO); - john_register_one(&fmt_rawMD5go); - john_register_one(&fmt_rawMD5unicode); - john_register_one(&fmt_phpassmd5); - john_register_one(&fmt_DMD5); - john_register_one(&fmt_IPB2); - john_register_one(&fmt_rawSHA1); - john_register_one(&fmt_sha1_gen); - john_register_one(&fmt_rawMD4); - john_register_one(&fmt_md4_gen); - john_register_one(&fmt_KRB4); - john_register_one(&fmt_KRB5); - john_register_one(&fmt_mskrb5); - john_register_one(&fmt_NSLDAP); - john_register_one(&fmt_NSLDAPS); - john_register_one(&fmt_OPENLDAPS); - john_register_one(&fmt_saltedsha); - john_register_one(&fmt_BFEgg); - john_register_one(&fmt_oracle); - john_register_one(&fmt_oracle11); - john_register_one(&fmt_MYSQL); - john_register_one(&fmt_mysqlSHA1); - john_register_one(&fmt_lotus5); - john_register_one(&fmt_DOMINOSEC); - john_register_one(&fmt_NETLM); - john_register_one(&fmt_NETNTLM); - john_register_one(&fmt_NETLMv2); - john_register_one(&fmt_NETNTLMv2); - john_register_one(&fmt_NETHALFLM); - john_register_one(&fmt_mediawiki); - john_register_one(&fmt_MSCHAPv2); - john_register_one(&fmt_mssql); - john_register_one(&fmt_mssql05); - john_register_one(&fmt_EPI); - john_register_one(&fmt_PHPS); - john_register_one(&fmt_MYSQL_fast); - john_register_one(&fmt_pixMD5); - john_register_one(&fmt_sapG); - john_register_one(&fmt_sapB); - john_register_one(&fmt_NS); - john_register_one(&fmt_HDAA); - #if OPENSSL_VERSION_NUMBER >= 0x00908000 john_register_one(&fmt_hmailserver); john_register_one(&fmt_SybaseASE); @@ -232,6 +141,8 @@ static void john_register_all(void) john_register_one(&rar_fmt); john_register_one(&zip_fmt); +#include "fmt_registers.h" + john_register_one(&fmt_dummy); if (!fmt_list) { diff --git a/src/lotus5_fmt.c b/src/lotus5_fmt_plug.c similarity index 100% rename from src/lotus5_fmt.c rename to src/lotus5_fmt_plug.c diff --git a/src/md4_gen_fmt.c b/src/md4_gen_fmt_plug.c similarity index 100% rename from src/md4_gen_fmt.c rename to src/md4_gen_fmt_plug.c diff --git a/src/mediawiki_fmt.c b/src/mediawiki_fmt_plug.c similarity index 100% rename from src/mediawiki_fmt.c rename to src/mediawiki_fmt_plug.c diff --git a/src/mscash_fmt.c b/src/mscash1_fmt_plug.c similarity index 100% rename from src/mscash_fmt.c rename to src/mscash1_fmt_plug.c diff --git a/src/mscash2_fmt.c b/src/mscash2_fmt_plug.c similarity index 100% rename from src/mscash2_fmt.c rename to src/mscash2_fmt_plug.c diff --git a/src/mskrb5_fmt.c b/src/mskrb5_fmt_plug.c similarity index 100% rename from src/mskrb5_fmt.c rename to src/mskrb5_fmt_plug.c diff --git a/src/mssql_fmt.c b/src/mssql-old_fmt_plug.c similarity index 100% rename from src/mssql_fmt.c rename to src/mssql-old_fmt_plug.c diff --git a/src/mssql05_fmt.c b/src/mssql05_fmt_plug.c similarity index 100% rename from src/mssql05_fmt.c rename to src/mssql05_fmt_plug.c diff --git a/src/mysqlSHA1_fmt.c b/src/mysqlSHA1_fmt_plug.c similarity index 100% rename from src/mysqlSHA1_fmt.c rename to src/mysqlSHA1_fmt_plug.c diff --git a/src/oracle11_fmt.c b/src/oracle11_fmt_plug.c similarity index 100% rename from src/oracle11_fmt.c rename to src/oracle11_fmt_plug.c diff --git a/src/oracle_fmt.c b/src/oracle_fmt_plug.c similarity index 100% rename from src/oracle_fmt.c rename to src/oracle_fmt_plug.c diff --git a/src/phpassMD5_fmt.c b/src/phpassMD5_fmt_plug.c similarity index 100% rename from src/phpassMD5_fmt.c rename to src/phpassMD5_fmt_plug.c diff --git a/src/pixMD5_fmt.c b/src/pixMD5_fmt_plug.c similarity index 100% rename from src/pixMD5_fmt.c rename to src/pixMD5_fmt_plug.c diff --git a/src/rawMD4_fmt.c b/src/rawMD4_fmt_plug.c similarity index 100% rename from src/rawMD4_fmt.c rename to src/rawMD4_fmt_plug.c diff --git a/src/rawMD5go_fmt.c b/src/rawMD5go_fmt_plug.c similarity index 100% rename from src/rawMD5go_fmt.c rename to src/rawMD5go_fmt_plug.c diff --git a/src/rawMD5unicode_fmt.c b/src/rawMD5unicode_fmt_plug.c similarity index 100% rename from src/rawMD5unicode_fmt.c rename to src/rawMD5unicode_fmt_plug.c diff --git a/src/rawSHA1_fmt.c b/src/rawSHA1_fmt_plug.c similarity index 100% rename from src/rawSHA1_fmt.c rename to src/rawSHA1_fmt_plug.c diff --git a/src/salted_sha1_fmt.c b/src/salted_sha1_fmt_plug.c similarity index 100% rename from src/salted_sha1_fmt.c rename to src/salted_sha1_fmt_plug.c diff --git a/src/sapB_fmt.c b/src/sapB_fmt_plug.c similarity index 100% rename from src/sapB_fmt.c rename to src/sapB_fmt_plug.c diff --git a/src/sapG_fmt.c b/src/sapG_fmt_plug.c similarity index 100% rename from src/sapG_fmt.c rename to src/sapG_fmt_plug.c diff --git a/src/sha1_gen_fmt.c b/src/sha1_gen_fmt_plug.c similarity index 100% rename from src/sha1_gen_fmt.c rename to src/sha1_gen_fmt_plug.c