Skip to content

Commit

Permalink
dynamic: had to add set length_32 with clearing back into the command…
Browse files Browse the repository at this point in the history
… list, crashes on SSE 64 bit (but not on my AVX2 64 bit??)
  • Loading branch information
jfoug committed Jul 15, 2015
1 parent 52bf4c5 commit fddac34
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 4 deletions.
2 changes: 1 addition & 1 deletion run/dynamic.conf
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ SaltLenX86=-64
MaxInputLen=55
MaxInputLenX86=110
# here is the optimized 'script' to perform vBulletin hash
Func=DynamicFunc__set_input_len_32
Func=DynamicFunc__set_input_len_32_cleartop
Func=DynamicFunc__append_salt
Func=DynamicFunc__crypt_md5
Test=$dynamic_1007$daa61d77e218e42060c2fa198ac1feaf$SXB:test1
Expand Down
2 changes: 1 addition & 1 deletion src/PHPS2_fmt_plug.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ static char *dyna_script =
"SaltLen=3\n"
"MaxInputLenX86=110\n"
"MaxInputLen=55\n"
"Func=DynamicFunc__set_input_len_32\n"
"Func=DynamicFunc__set_input_len_32_cleartop\n"
"Func=DynamicFunc__append_salt\n"
"Func=DynamicFunc__crypt_md5\n"
"Test=$PHPS$433925$5d756853cd63acee76e6dcd6d3728447:welcome\n"
Expand Down
1 change: 1 addition & 0 deletions src/dynamic.h
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,7 @@ extern void DynamicFunc__append_salt(DYNA_OMP_PARAMS);
extern void DynamicFunc__set_input_len_16(DYNA_OMP_PARAMS);
extern void DynamicFunc__set_input_len_20(DYNA_OMP_PARAMS);
extern void DynamicFunc__set_input_len_32(DYNA_OMP_PARAMS);
extern void DynamicFunc__set_input_len_32_cleartop(DYNA_OMP_PARAMS);
extern void DynamicFunc__set_input_len_40(DYNA_OMP_PARAMS);
extern void DynamicFunc__set_input_len_64(DYNA_OMP_PARAMS);
extern void DynamicFunc__set_input_len_100(DYNA_OMP_PARAMS);
Expand Down
43 changes: 43 additions & 0 deletions src/dynamic_fmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -4023,6 +4023,49 @@ void DynamicFunc__set_input_len_32(DYNA_OMP_PARAMS)
total_len_X86[j] = 32;
}

void DynamicFunc__set_input_len_32_cleartop(DYNA_OMP_PARAMS)
{
unsigned int j, til;
#ifdef _OPENMP
til = last;
j = first;
#else
j = 0;
til = m_count;
#endif
#ifdef SIMD_COEF_32
if (dynamic_use_sse==1) {
j /= SIMD_COEF_32;
til = (til+SIMD_COEF_32-1)/SIMD_COEF_32;
for (; j < til; ++j)
{
unsigned int k;
for (k = 0; k < SIMD_COEF_32; ++k) {
input_buf[j].c[GETPOS(32, k&(SIMD_COEF_32-1))] = 0x80;
total_len[j][k] = 32;
}
}
return;
}
#endif
for (; j < til; ++j) {
total_len_X86[j] = 32;
#if !ARCH_LITTLE_ENDIAN
#if MD5_X2
if (j&1) {
//MD5_swap(input_buf_X86[j>>MD5_X2].x2.w2, input_buf2_X86[j>>MD5_X2].x2.w2, 8);
memset(&(input_buf_X86[j>>MD5_X2].x2.B2[32]), 0, 24);
}
else
#endif
{
//MD5_swap(input_buf_X86[j>>MD5_X2].x1.w, input_buf2_X86[j>>MD5_X2].x1.w, 8);
memset(&(input_buf_X86[j>>MD5_X2].x1.B[32]), 0, 24);
}
#endif
}
}

void DynamicFunc__set_input2_len_32(DYNA_OMP_PARAMS)
{
unsigned int j, til;
Expand Down
1 change: 1 addition & 0 deletions src/dynamic_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ static Dynamic_Predicate_t Dynamic_Predicate[] = {
{ "DynamicFunc__set_input_len_20", DynamicFunc__set_input_len_20},
{ "DynamicFunc__set_input2_len_20", DynamicFunc__set_input2_len_20},
{ "DynamicFunc__set_input_len_32", DynamicFunc__set_input_len_32 },
{ "DynamicFunc__set_input_len_32_cleartop", DynamicFunc__set_input_len_32_cleartop },
{ "DynamicFunc__set_input2_len_32", DynamicFunc__set_input2_len_32 },
{ "DynamicFunc__set_input_len_24", DynamicFunc__set_input_len_24 },
{ "DynamicFunc__set_input2_len_24", DynamicFunc__set_input2_len_24 },
Expand Down
4 changes: 2 additions & 2 deletions src/dynamic_preloads.c
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ static DYNAMIC_primitive_funcp _Funcs_6[] =
{
//MGF_KEYS_BASE16_IN1
#if ARCH_LITTLE_ENDIAN
DynamicFunc__set_input_len_32,
DynamicFunc__set_input_len_32_cleartop,
DynamicFunc__append_salt,
DynamicFunc__crypt_md5,
#else
Expand Down Expand Up @@ -381,7 +381,7 @@ static DYNAMIC_primitive_funcp _Funcs_7[] =
{
//MGF_KEYS_BASE16_IN1
#if ARCH_LITTLE_ENDIAN
DynamicFunc__set_input_len_32,
DynamicFunc__set_input_len_32_cleartop,
DynamicFunc__append_salt,
DynamicFunc__crypt_md5,
NULL
Expand Down

0 comments on commit fddac34

Please sign in to comment.