9
9
#include "misc.h" // error()
10
10
#include "john.h"
11
11
#include "loader.h"
12
+ #if AC_BUILT
13
+ #include "autoconfig.h"
14
+ #else
15
+ #define HAVE_UNRAR 1
16
+ #endif
12
17
13
18
#define BINARY_SIZE sizeof(fmt_data)
14
19
#define BINARY_ALIGN sizeof(size_t)
@@ -39,18 +44,22 @@ static struct fmt_tests cpu_tests[] = {
39
44
{"$RAR3$*0*56ce6de6ddee17fb*4c957e533e00b0e18dfad6accc490ad9" , "john" },
40
45
/* -p mode tests, -m0 and -m3 (in that order) */
41
46
{"$RAR3$*1*c47c5bef0bbd1e98*965f1453*48*47*1*c5e987f81d316d9dcfdb6a1b27105ce63fca2c594da5aa2f6fdf2f65f50f0d66314f8a09da875ae19d6c15636b65c815*30" , "test" },
47
+ #if HAVE_UNRAR
42
48
{"$RAR3$*1*b4eee1a48dc95d12*965f1453*64*47*1*0fe529478798c0960dd88a38a05451f9559e15f0cf20b4cac58260b0e5b56699d5871bdcc35bee099cc131eb35b9a116adaedf5ecc26b1c09cadf5185b3092e6*33" , "test" },
43
49
/* issue #2899 unrar bug */
44
50
{"$RAR3$*1*00d7bc908cd4ad64*cc4b574e*16*7*1*58b582307dd07e0082a742d3f5d91ad3*33" , "abc" },
45
51
//{"$RAR3$*1*fa0d20d2d9868510*cc4b574e*16*7*1*48a4b1de0795cd2adb2fab5f89b4d916*33", "1я1"}, /* UTF-8 needed */
52
+ #endif /* HAVE_UNRAR */
46
53
#ifdef DEBUG
54
+ #if HAVE_UNRAR
47
55
/* Various lengths, these should be in self-test but not benchmark */
48
56
/* from CMIYC 2012 */
49
57
{"$RAR3$*1*0f263dd52eead558*834015cd*384*693*1*e28e9648f51b59e32f573b302f0e94aadf1050678b90c38dd4e750c7dd281d439ab4cccec5f1bd1ac40b6a1ead60c75625666307171e0fe2639d2397d5f68b97a2a1f733289eac0038b52ec6c3593ff07298fce09118c255b2747a02c2fa3175ab81166ebff2f1f104b9f6284a66f598764bd01f093562b5eeb9471d977bf3d33901acfd9643afe460e1d10b90e0e9bc8b77dc9ac40d40c2d211df9b0ecbcaea72c9d8f15859d59b3c85149b5bb5f56f0218cbbd9f28790777c39e3e499bc207289727afb2b2e02541b726e9ac028f4f05a4d7930efbff97d1ffd786c4a195bbed74997469802159f3b0ae05b703238da264087b6c2729d9023f67c42c5cbe40b6c67eebbfc4658dfb99bfcb523f62133113735e862c1430adf59c837305446e8e34fac00620b99f574fabeb2cd34dc72752014cbf4bd64d35f17cef6d40747c81b12d8c0cd4472089889a53f4d810b212fb314bf58c3dd36796de0feeefaf26be20c6a2fd00517152c58d0b1a95775ef6a1374c608f55f416b78b8c81761f1d*33:1::to-submit-challenges.txt" , "wachtwoord" },
50
58
{"$RAR3$*1*9759543e04fe3a22*834015cd*384*693*1*cdd2e2478e5153a581c47a201490f5d9b69e01584ae488a2a40203da9ba8c5271ed8edc8f91a7bd262bb5e5de07ecbe9e2003d054a314d16caf2ea1de9f54303abdee1ed044396f7e29c40c38e638f626442efd9f511b4743758cd4a6025c5af81d1252475964937d80bfd50d10c171e7e4041a66c02a74b2b451ae83b6807990fb0652a8cdab530c5a0c497575a6e6cbe2db2035217fe849d2e0b8693b70f3f97b757229b4e89c8273197602c23cc04ff5f24abf3d3c7eb686fc3eddce1bfe710cc0b6e8bd012928127da38c38dd8f056095982afacb4578f6280d51c6739739e033674a9413ca88053f8264c5137d4ac018125c041a3489daaf175ef75e9282d245b92948c1bbcf1c5f25b7028f6d207d87fe9598c2c7ccd1553e842a91ab8ca9261a51b14601a756070388d08039466dfa36f0b4c7ea7dd9ff25c9d98687203c58f9ec8757cafe4d2ed785d5a9e6d5ea838e4cc246a9e6d3c30979dcce56b380b05f9103e6443b35357550b50229c47f845a93a48602790096828d9d6bef0*33:1::to-submit-challenges.txt" , "Sleepingbaby210" },
51
59
{"$RAR3$*1*79e17c26407a7d52*834015cd*384*693*1*6844a189e732e9390b5a958b623589d5423fa432d756fd00940ac31e245214983507a035d4e0ee09469491551759a66c12150fe6c5d05f334fb0d8302a96d48ef4da04954222e0705507aaa84f8b137f284dbec344eee9cea6b2c4f63540c64df3ee8be3013466d238c5999e9a98eb6375ec5462869bba43401ec95077d0c593352339902c24a3324178e08fe694d11bfec646c652ffeafbdda929052c370ffd89168c83194fedf7c50fc7d9a1fbe64332063d267a181eb07b5d70a5854067db9b66c12703fde62728d3680cf3fdb9933a0f02bfc94f3a682ad5e7c428d7ed44d5ff554a8a445dea28b81e3a2631870e17f3f3c0c0204136802c0701590cc3e4c0ccd9f15e8be245ce9caa6969fab9e8443ac9ad9e73e7446811aee971808350c38c16c0d3372c7f44174666d770e3dd321e8b08fb2dc5e8a6a5b2a1720bad66e54abc194faabc5f24225dd8fee137ba5d4c2ed48c6462618e6333300a5b8dfc75c65608925e786eb0988f7b3a5ab106a55168d1001adc47ce95bba77b38c35b*33:1::to-submit-challenges.txt" , "P-i-r-A-T-E" },
52
60
{"$RAR3$*1*e1df79fd9ee1dadf*771a163b*64*39*1*edc483d67b94ab22a0a9b8375a461e06fa1108fa72970e16d962092c311970d26eb92a033a42f53027bdc0bb47231a12ed968c8d530a9486a90cbbc00040569b*33" , "333" },
53
61
{"$RAR3$*1*c83c00534d4af2db*771a163b*64*39*1*05244526d6b32cb9c524a15c79d19bba685f7fc3007a9171c65fc826481f2dce70be6148f2c3497f0d549aa4e864f73d4e4f697fdb66ff528ed1503d9712a414*33" , "11eleven111" },
62
+ #endif /* HAVE_UNRAR */
54
63
{"$RAR3$*0*c203c4d80a8a09dc*49bbecccc08b5d893f308bce7ad36c0f" , "sator" },
55
64
{"$RAR3$*0*672fca155cb74ac3*8d534cd5f47a58f6493012cf76d2a68b" , "arepo" },
56
65
{"$RAR3$*0*c203c4d80a8a09dc*c3055efe7ca6587127fd541a5b88e0e4" , "tenet" },
@@ -71,7 +80,7 @@ static struct fmt_tests cpu_tests[] = {
71
80
{"$RAR3$*0*5fa43f823a60da63*af2630863e12046e42c4501c915636c9" , "eleven11111" },
72
81
{"$RAR3$*0*5fa43f823a60da63*88c0840d0bd98844173d35f867558ec2" , "twelve121212" },
73
82
{"$RAR3$*0*4768100a172fa2b6*48edcb5283ee2e4f0e8edb25d0d85eaa" , "subconsciousness" },
74
- #endif
83
+ #endif /* DEBUG */
75
84
{NULL }
76
85
};
77
86
@@ -84,16 +93,19 @@ static struct fmt_tests gpu_tests[] = {
84
93
{"$RAR3$*0*c203c4d80a8a09dc*1f406154556d4c895a8be207fd2b5d0c" , "rotas" },
85
94
/* -p mode tests, -m0 and -m3 (in that order) */
86
95
{"$RAR3$*1*c47c5bef0bbd1e98*965f1453*48*47*1*c5e987f81d316d9dcfdb6a1b27105ce63fca2c594da5aa2f6fdf2f65f50f0d66314f8a09da875ae19d6c15636b65c815*30" , "test" },
96
+ #if HAVE_UNRAR
87
97
{"$RAR3$*1*b4eee1a48dc95d12*965f1453*64*47*1*0fe529478798c0960dd88a38a05451f9559e15f0cf20b4cac58260b0e5b56699d5871bdcc35bee099cc131eb35b9a116adaedf5ecc26b1c09cadf5185b3092e6*33" , "test" },
88
98
/* issue #2899 unrar bug */
89
99
{"$RAR3$*1*00d7bc908cd4ad64*cc4b574e*16*7*1*58b582307dd07e0082a742d3f5d91ad3*33" , "abc" },
90
100
//{"$RAR3$*1*fa0d20d2d9868510*cc4b574e*16*7*1*48a4b1de0795cd2adb2fab5f89b4d916*33", "1я1"}, /* UTF-8 needed */
101
+ #endif /* HAVE_UNRAR */
91
102
#ifdef DEBUG
92
103
{"$RAR3$*0*af24c0c95e9cafc7*e7f207f30dec96a5ad6f917a69d0209e" , "magnum" },
93
104
{"$RAR3$*0*2653b9204daa2a8e*39b11a475f486206e2ec6070698d9bbc" , "123456" },
94
105
{"$RAR3$*0*63f1649f16c2b687*8a89f6453297bcdb66bd756fa10ddd98" , "abc123" },
95
106
/* -p mode tests, -m0 and -m3 (in that order) */
96
107
{"$RAR3$*1*575b083d78672e85*965f1453*48*47*1*cd3d8756438f43ab70e668792e28053f0ad7449af1c66863e3e55332bfa304b2c082b9f23b36cd4a8ebc0b743618c5b2*30" , "magnum" },
108
+ #if HAVE_UNRAR
97
109
{"$RAR3$*1*6f5954680c87535a*965f1453*64*47*1*c9bb398b9a5d54f035fd22be54bc6dc75822f55833f30eb4fb8cc0b8218e41e6d01824e3467475b90b994a5ddb7fe19366d293c9ee305316c2a60c3a7eb3ce5a*33" , "magnum" },
98
110
/* Various lengths, these should be in self-test but not benchmark */
99
111
/* from CMIYC 2012 */
@@ -102,6 +114,7 @@ static struct fmt_tests gpu_tests[] = {
102
114
{"$RAR3$*1*79e17c26407a7d52*834015cd*384*693*1*6844a189e732e9390b5a958b623589d5423fa432d756fd00940ac31e245214983507a035d4e0ee09469491551759a66c12150fe6c5d05f334fb0d8302a96d48ef4da04954222e0705507aaa84f8b137f284dbec344eee9cea6b2c4f63540c64df3ee8be3013466d238c5999e9a98eb6375ec5462869bba43401ec95077d0c593352339902c24a3324178e08fe694d11bfec646c652ffeafbdda929052c370ffd89168c83194fedf7c50fc7d9a1fbe64332063d267a181eb07b5d70a5854067db9b66c12703fde62728d3680cf3fdb9933a0f02bfc94f3a682ad5e7c428d7ed44d5ff554a8a445dea28b81e3a2631870e17f3f3c0c0204136802c0701590cc3e4c0ccd9f15e8be245ce9caa6969fab9e8443ac9ad9e73e7446811aee971808350c38c16c0d3372c7f44174666d770e3dd321e8b08fb2dc5e8a6a5b2a1720bad66e54abc194faabc5f24225dd8fee137ba5d4c2ed48c6462618e6333300a5b8dfc75c65608925e786eb0988f7b3a5ab106a55168d1001adc47ce95bba77b38c35b*33:1::to-submit-challenges.txt" , "P-i-r-A-T-E" },
103
115
{"$RAR3$*1*e1df79fd9ee1dadf*771a163b*64*39*1*edc483d67b94ab22a0a9b8375a461e06fa1108fa72970e16d962092c311970d26eb92a033a42f53027bdc0bb47231a12ed968c8d530a9486a90cbbc00040569b*33" , "333" },
104
116
{"$RAR3$*1*c83c00534d4af2db*771a163b*64*39*1*05244526d6b32cb9c524a15c79d19bba685f7fc3007a9171c65fc826481f2dce70be6148f2c3497f0d549aa4e864f73d4e4f697fdb66ff528ed1503d9712a414*33" , "11eleven111" },
117
+ #endif /* HAVE_UNRAR */
105
118
{"$RAR3$*0*345f5f573a077ad7*638e388817cc7851e313406fd77730b9" , "Boustrophedon" },
106
119
{"$RAR3$*0*c9dea41b149b53b4*fcbdb66122d8ebdb32532c22ca7ab9ec" , "password" },
107
120
{"$RAR3$*0*7ce241baa2bd521b*f2b26d76424efa351c728b321671d074" , "@" },
@@ -117,7 +130,7 @@ static struct fmt_tests gpu_tests[] = {
117
130
{"$RAR3$*0*5fa43f823a60da63*af2630863e12046e42c4501c915636c9" , "eleven11111" },
118
131
{"$RAR3$*0*5fa43f823a60da63*88c0840d0bd98844173d35f867558ec2" , "twelve121212" },
119
132
{"$RAR3$*0*4768100a172fa2b6*48edcb5283ee2e4f0e8edb25d0d85eaa" , "subconsciousness" },
120
- #endif
133
+ #endif /* DEBUG */
121
134
{NULL }
122
135
};
123
136
#endif
@@ -418,6 +431,15 @@ static int valid(char *ciphertext, struct fmt_main *self)
418
431
}
419
432
if (!(ptr = strtokm (NULL , "*" ))) /* method */
420
433
goto error ;
434
+ #if !HAVE_UNRAR
435
+ if (atoi (ptr ) != 30 ) {
436
+ static int warned ;
437
+
438
+ if (!warned ++ && john_main_process )
439
+ fprintf (stderr , "Warning: Packed RAR hash(es) seen but ignored, this build does not support them.\n" );
440
+ goto error ;
441
+ }
442
+ #endif
421
443
}
422
444
MEM_FREE (keeptr );
423
445
return 1 ;
@@ -590,7 +612,9 @@ inline static void check_rar(rar_file *cur_file, int index, unsigned char *key,
590
612
/* Compare computed CRC with stored CRC */
591
613
cracked [index ] = !memcmp (crc_out , & cur_file -> crc .c , 4 );
592
614
return ;
593
- } else {
615
+ }
616
+ #if HAVE_UNRAR
617
+ else {
594
618
const int solid = 0 ;
595
619
unpack_data_t * unpack_t ;
596
620
unsigned char pre_iv [16 ];
@@ -637,6 +661,7 @@ inline static void check_rar(rar_file *cur_file, int index, unsigned char *key,
637
661
else
638
662
cracked [index ] = 0 ;
639
663
}
664
+ #endif /* HAVE_UNRAR */
640
665
}
641
666
}
642
667
0 commit comments