InitialiseHashes proto DisplayCurrentParameters proto TransformParameterDisplay proto :dword ApplyNewParameters proto TransformParameterApply proto :dword SetPage1Visibility proto :dword SetPage2Visibility proto :dword .const IDC_MODIFY_X = 101 IDC_MODIFY_APPLY = 102 IDC_MODIFY_DEFAULT = 103 IDC_MODIFY_PAGE1 = 104 IDC_MODIFY_PAGE2 = 105 IDC_MODIFY_ADLER32_A = 196 IDC_MODIFY_CRC16_A = 197 IDC_MODIFY_CRC16CCITT_A = 198 IDC_MODIFY_CRC32_A = 199 IDC_MODIFY_CRC32b_A = 200 IDC_MODIFY_GOST_A = 201 IDC_MODIFY_GOST_B = 202 IDC_MODIFY_GOST_C = 203 IDC_MODIFY_GOST_D = 204 IDC_MODIFY_GOST_E = 205 IDC_MODIFY_GOST_F = 206 IDC_MODIFY_GOST_G = 207 IDC_MODIFY_GOST_H = 208 IDC_MODIFY_HAVAL_A = 209 IDC_MODIFY_HAVAL_B = 210 IDC_MODIFY_HAVAL_C = 211 IDC_MODIFY_HAVAL_D = 212 IDC_MODIFY_HAVAL_E = 213 IDC_MODIFY_HAVAL_F = 214 IDC_MODIFY_HAVAL_G = 215 IDC_MODIFY_HAVAL_H = 216 IDC_MODIFY_MD4_A = 217 IDC_MODIFY_MD4_B = 218 IDC_MODIFY_MD4_C = 219 IDC_MODIFY_MD4_D = 220 IDC_MODIFY_MD5_A = 221 IDC_MODIFY_MD5_B = 222 IDC_MODIFY_MD5_C = 223 IDC_MODIFY_MD5_D = 224 IDC_MODIFY_PANAMA_A = 225 IDC_MODIFY_PANAMA_B = 226 IDC_MODIFY_PANAMA_C = 227 IDC_MODIFY_PANAMA_D = 228 IDC_MODIFY_PANAMA_E = 229 IDC_MODIFY_PANAMA_F = 230 IDC_MODIFY_PANAMA_G = 231 IDC_MODIFY_PANAMA_H = 232 IDC_MODIFY_RIPE128_A = 233 IDC_MODIFY_RIPE128_B = 234 IDC_MODIFY_RIPE128_C = 235 IDC_MODIFY_RIPE128_D = 236 IDC_MODIFY_RIPE160_A = 237 IDC_MODIFY_RIPE160_B = 238 IDC_MODIFY_RIPE160_C = 239 IDC_MODIFY_RIPE160_D = 240 IDC_MODIFY_RIPE160_E = 241 IDC_MODIFY_RIPE256_A = 242 IDC_MODIFY_RIPE256_B = 243 IDC_MODIFY_RIPE256_C = 244 IDC_MODIFY_RIPE256_D = 245 IDC_MODIFY_RIPE256_E = 246 IDC_MODIFY_RIPE256_F = 247 IDC_MODIFY_RIPE256_G = 248 IDC_MODIFY_RIPE256_H = 249 IDC_MODIFY_RIPE320_A = 250 IDC_MODIFY_RIPE320_B = 251 IDC_MODIFY_RIPE320_C = 252 IDC_MODIFY_RIPE320_D = 253 IDC_MODIFY_RIPE320_E = 254 IDC_MODIFY_RIPE320_F = 255 IDC_MODIFY_RIPE320_G = 256 IDC_MODIFY_RIPE320_H = 257 IDC_MODIFY_RIPE320_I = 258 IDC_MODIFY_RIPE320_J = 259 IDC_MODIFY_SHA0_A = 260 IDC_MODIFY_SHA0_B = 261 IDC_MODIFY_SHA0_C = 262 IDC_MODIFY_SHA0_D = 263 IDC_MODIFY_SHA0_E = 264 IDC_MODIFY_SHA1_A = 265 IDC_MODIFY_SHA1_B = 266 IDC_MODIFY_SHA1_C = 267 IDC_MODIFY_SHA1_D = 268 IDC_MODIFY_SHA1_E = 269 IDC_MODIFY_SHA256_A = 270 IDC_MODIFY_SHA256_B = 271 IDC_MODIFY_SHA256_C = 272 IDC_MODIFY_SHA256_D = 273 IDC_MODIFY_SHA256_E = 274 IDC_MODIFY_SHA256_F = 275 IDC_MODIFY_SHA256_G = 276 IDC_MODIFY_SHA256_H = 277 IDC_MODIFY_SHA384_A = 278 IDC_MODIFY_SHA384_B = 279 IDC_MODIFY_SHA384_C = 280 IDC_MODIFY_SHA384_D = 281 IDC_MODIFY_SHA384_E = 282 IDC_MODIFY_SHA384_F = 283 IDC_MODIFY_SHA384_G = 284 IDC_MODIFY_SHA384_H = 285 IDC_MODIFY_SHA384_I = 286 IDC_MODIFY_SHA384_J = 287 IDC_MODIFY_SHA384_K = 288 IDC_MODIFY_SHA384_L = 289 IDC_MODIFY_SHA384_M = 290 IDC_MODIFY_SHA384_N = 291 IDC_MODIFY_SHA384_O = 292 IDC_MODIFY_SHA384_P = 293 IDC_MODIFY_SHA512_A = 294 IDC_MODIFY_SHA512_B = 295 IDC_MODIFY_SHA512_C = 296 IDC_MODIFY_SHA512_D = 297 IDC_MODIFY_SHA512_E = 298 IDC_MODIFY_SHA512_F = 299 IDC_MODIFY_SHA512_G = 300 IDC_MODIFY_SHA512_H = 301 IDC_MODIFY_SHA512_I = 302 IDC_MODIFY_SHA512_J = 303 IDC_MODIFY_SHA512_K = 304 IDC_MODIFY_SHA512_L = 305 IDC_MODIFY_SHA512_M = 306 IDC_MODIFY_SHA512_N = 307 IDC_MODIFY_SHA512_O = 308 IDC_MODIFY_SHA512_P = 309 IDC_MODIFY_SNEFRU_A = 310 IDC_MODIFY_SNEFRU_B = 311 IDC_MODIFY_SNEFRU_C = 312 IDC_MODIFY_SNEFRU_D = 313 IDC_MODIFY_SNEFRU_E = 314 IDC_MODIFY_SNEFRU_F = 315 IDC_MODIFY_SNEFRU_G = 316 IDC_MODIFY_SNEFRU_H = 317 IDC_MODIFY_TIGER_A = 318 IDC_MODIFY_TIGER_B = 319 IDC_MODIFY_TIGER_C = 320 IDC_MODIFY_TIGER_D = 321 IDC_MODIFY_TIGER_E = 322 IDC_MODIFY_TIGER_F = 323 IDC_MODIFY_WHIRLPOOL_A = 324 IDC_MODIFY_WHIRLPOOL_B = 325 IDC_MODIFY_WHIRLPOOL_C = 326 IDC_MODIFY_WHIRLPOOL_D = 327 IDC_MODIFY_WHIRLPOOL_E = 328 IDC_MODIFY_WHIRLPOOL_F = 329 IDC_MODIFY_WHIRLPOOL_G = 330 IDC_MODIFY_WHIRLPOOL_H = 331 IDC_MODIFY_WHIRLPOOL_I = 332 IDC_MODIFY_WHIRLPOOL_J = 333 IDC_MODIFY_WHIRLPOOL_K = 334 IDC_MODIFY_WHIRLPOOL_L = 335 IDC_MODIFY_WHIRLPOOL_M = 336 IDC_MODIFY_WHIRLPOOL_N = 337 IDC_MODIFY_WHIRLPOOL_O = 338 IDC_MODIFY_WHIRLPOOL_P = 339 IDC_MODIFY_WHIRLPOOL_Q = 340 IDC_MODIFY_WHIRLPOOL_R = 341 IDC_MODIFY_WHIRLPOOL_S = 342 IDC_MODIFY_WHIRLPOOL_T = 343 IDC_MODIFY_STATUS = 502 PAGE_1_NAME_START = 396 PAGE_2_NAME_START = 412 PAGE_2_NAME_END = 417 IDS_MODIFY_TITLE = 501 .data? HASHES_Default HASH_PARAMETERS HASHES_Current HASH_PARAMETERS tempModifyBuffer db 20 dup(?) .data hModifyWindow dd 0 hButtonPage1 dd 0 hButtonPage2 dd 0 WarningMessage db "WARNING - Changes will affect the hashes in the bruteforcer too.", 0 SuccessMessage db "SUCCESS - Changes were successfully saved.", 0 ErrorInvalidEntry db "Error - Entries must be 8 chars and can only include hex chars (A->F).", 0 ResetToDefault db "All initialisation vectors reset to default values.", 0 .code ;*************************************************************************************** ; Basic Dialog Box Proc ;*************************************************************************************** ModifyDialogProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM local sBtnText[10h]:TCHAR local i:dword .if uMsg == WM_INITDIALOG mov eax, hWnd mov hModifyWindow, eax ;cycle through all the buttons setting the font and subclassing them ;save the old button proc for reference mov ebx, IDC_MODIFY_X @@: invoke GetDlgItem, hWnd, ebx push eax invoke SendMessage, eax, WM_SETFONT, hFont, 0 pop eax .if ebx == IDC_MODIFY_PAGE1 mov hButtonPage1, eax .elseif ebx == IDC_MODIFY_PAGE2 mov hButtonPage2, eax .endif invoke SetWindowLong, eax, GWL_WNDPROC, addr BtnProc inc ebx cmp ebx, IDC_MODIFY_PAGE2 jle @b ;ensure that initially the 'PAGE 2' button is shown invoke SetPage1Visibility, SW_SHOW invoke SetPage2Visibility, SW_HIDE ;get the current settings for the hashes and display them call DisplayCurrentParameters invoke SetDlgItemText, hModifyWindow, IDC_MODIFY_STATUS, addr WarningMessage .elseif uMsg == WM_CTLCOLORDLG mov eax, hBgColor ret .elseif uMsg == WM_CTLCOLORSTATIC || uMsg == WM_CTLCOLOREDIT ;invoke SelectObject, wParam, hTitleFont invoke GetDlgCtrlID, lParam .if eax == IDS_MODIFY_TITLE invoke SelectObject, wParam, hTitleFont .endif invoke SetTextColor, wParam, CR_INTEXT_SCHEME invoke SetBkMode, wParam, TRANSPARENT invoke SetBkColor, wParam, CR_BG_SCHEME mov eax, hBgColor ret .elseif uMsg == WM_DRAWITEM push esi push ebx mov esi, lParam assume esi:ptr DRAWITEMSTRUCT .if [esi].CtlType == ODT_BUTTON ; change the control background color if pushed invoke SelectObject, [esi].hdc, hBtnNormColor invoke SetTextColor, [esi].hdc, CR_NORMTEXT_SCHEME invoke GetCursorPos, addr hitpoint invoke GetWindowRect, [esi].hwndItem, addr CloseBtnRct invoke PtInRect, addr CloseBtnRct, hitpoint.x, hitpoint.y .if eax ;hover .if [esi].itemState & ODS_DISABLED invoke SelectObject, [esi].hdc, hBtnColor invoke SetTextColor, [esi].hdc, CR_TEXT_SCHEME invoke SelectObject, [esi].hdc, hEdgeDown .elseif [esi].itemState & ODS_SELECTED invoke SelectObject, [esi].hdc, hBtnColor invoke SetTextColor, [esi].hdc, CR_HOVERTEXT_SCHEME invoke SelectObject, [esi].hdc, hEdgeDown .else invoke SelectObject, [esi].hdc, hBtnOver invoke SetTextColor, [esi].hdc, CR_HOVERTEXT_SCHEME invoke SelectObject, [esi].hdc, hEdgeHover .endif .else .if [esi].itemState & ODS_DISABLED invoke SelectObject, [esi].hdc, hBtnColor invoke SetTextColor, [esi].hdc, CR_TEXT_SCHEME invoke SelectObject, [esi].hdc, hEdgeDown .else invoke SelectObject, [esi].hdc, hBtnNormColor invoke SetTextColor, [esi].hdc, CR_NORMTEXT_SCHEME invoke SelectObject, [esi].hdc, hEdge .endif .endif invoke FillRect, [esi].hdc, addr [esi].rcItem, hBtnColor invoke Rectangle, [esi].hdc, [esi].rcItem.left, [esi].rcItem.top, [esi].rcItem.right, [esi].rcItem.bottom .if [esi].itemState & ODS_SELECTED invoke OffsetRect, addr [esi].rcItem, 1, 1 .endif ; write the text invoke GetDlgItemText, hWnd, [esi].CtlID, addr sBtnText, SIZEOF sBtnText invoke SetBkMode, [esi].hdc, TRANSPARENT invoke DrawText, [esi].hdc, addr sBtnText, -1, addr [esi].rcItem, DT_CENTER or DT_VCENTER or DT_SINGLELINE .endif assume esi:nothing pop ebx pop esi .elseif uMsg == WM_LBUTTONDOWN invoke SendMessage, hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0 .elseif uMsg == WM_COMMAND mov eax, wParam mov edx, eax and eax, 0FFFFh shr edx, 16 .if eax == IDC_MODIFY_X invoke SendMessage, hWnd, WM_CLOSE, 0, 0 .elseif eax == IDC_MODIFY_APPLY call ApplyNewParameters .elseif eax == IDC_MODIFY_DEFAULT call InitialiseHashes call DisplayCurrentParameters invoke SetDlgItemText, hModifyWindow, IDC_MODIFY_STATUS, addr ResetToDefault .elseif eax == IDC_MODIFY_PAGE1 invoke SetPage1Visibility, SW_SHOW invoke SetPage2Visibility, SW_HIDE .elseif eax == IDC_MODIFY_PAGE2 invoke SetPage2Visibility, SW_SHOW invoke SetPage1Visibility, SW_HIDE .endif .elseif uMsg == WM_CLOSE invoke EndDialog, hWnd, 0 .endif @End: xor eax, eax ret ModifyDialogProc endp InitialiseHashes proc xor ecx, ecx assume esi:ptr HASH_PARAMETERS mov esi, offset HASHES_Default @fill_next_struct: mov [esi].ADLER32parameterA, 00000001h mov [esi].CRC16parameterA, 00000000h mov [esi].CRC16CCITTparameterA, 0ffffffffh mov [esi].CRC32parameterA, 0ffffffffh mov [esi].CRC32bparameterA, 0ffffffffh mov [esi].GOSTparameterA, 00000000h mov [esi].GOSTparameterB, 00000000h mov [esi].GOSTparameterC, 00000000h mov [esi].GOSTparameterD, 00000000h mov [esi].GOSTparameterE, 00000000h mov [esi].GOSTparameterF, 00000000h mov [esi].GOSTparameterG, 00000000h mov [esi].GOSTparameterH, 00000000h mov [esi].HAVALparameterA, 0243F6A88h mov [esi].HAVALparameterB, 085A308D3h mov [esi].HAVALparameterC, 013198A2Eh mov [esi].HAVALparameterD, 003707344h mov [esi].HAVALparameterE, 0A4093822h mov [esi].HAVALparameterF, 0299F31D0h mov [esi].HAVALparameterG, 0082EFA98h mov [esi].HAVALparameterH, 0EC4E6C89h mov [esi].MD4parameterA, 067452301h mov [esi].MD4parameterB, 0efcdab89h mov [esi].MD4parameterC, 098badcfeh mov [esi].MD4parameterD, 010325476h mov [esi].MD5parameterA, 067452301h mov [esi].MD5parameterB, 0efcdab89h mov [esi].MD5parameterC, 098badcfeh mov [esi].MD5parameterD, 010325476h mov [esi].PANAMAparameterA, 00000001h mov [esi].PANAMAparameterB, 00000000h mov [esi].PANAMAparameterC, 00000000h mov [esi].PANAMAparameterD, 00000000h mov [esi].PANAMAparameterE, 00000000h mov [esi].PANAMAparameterF, 00000000h mov [esi].PANAMAparameterG, 00000000h mov [esi].PANAMAparameterH, 00000000h mov [esi].RIPE128parameterA, 067452301h mov [esi].RIPE128parameterB, 0efcdab89h mov [esi].RIPE128parameterC, 098badcfeh mov [esi].RIPE128parameterD, 010325476h mov [esi].RIPE160parameterA, 067452301h mov [esi].RIPE160parameterB, 0efcdab89h mov [esi].RIPE160parameterC, 098badcfeh mov [esi].RIPE160parameterD, 010325476h mov [esi].RIPE160parameterE, 0c3d2e1f0h mov [esi].RIPE256parameterA, 067452301h mov [esi].RIPE256parameterB, 0efcdab89h mov [esi].RIPE256parameterC, 098badcfeh mov [esi].RIPE256parameterD, 010325476h mov [esi].RIPE256parameterE, 076543210h mov [esi].RIPE256parameterF, 0fedcba98h mov [esi].RIPE256parameterG, 089abcdefh mov [esi].RIPE256parameterH, 001234567h mov [esi].RIPE320parameterA, 067452301h mov [esi].RIPE320parameterB, 0efcdab89h mov [esi].RIPE320parameterC, 098badcfeh mov [esi].RIPE320parameterD, 010325476h mov [esi].RIPE320parameterE, 0c3d2e1f0h mov [esi].RIPE320parameterF, 076543210h mov [esi].RIPE320parameterG, 0fedcba98h mov [esi].RIPE320parameterH, 089abcdefh mov [esi].RIPE320parameterI, 001234567h mov [esi].RIPE320parameterJ, 03c2d1e0fh mov [esi].SHA0parameterA, 067452301h mov [esi].SHA0parameterB, 0efcdab89h mov [esi].SHA0parameterC, 098badcfeh mov [esi].SHA0parameterD, 010325476h mov [esi].SHA0parameterE, 0c3d2e1f0h mov [esi].SHA1parameterA, 067452301h mov [esi].SHA1parameterB, 0efcdab89h mov [esi].SHA1parameterC, 098badcfeh mov [esi].SHA1parameterD, 010325476h mov [esi].SHA1parameterE, 0c3d2e1f0h mov [esi].SHA256parameterA, 06a09e667h mov [esi].SHA256parameterB, 0bb67ae85h mov [esi].SHA256parameterC, 03c6ef372h mov [esi].SHA256parameterD, 0a54ff53ah mov [esi].SHA256parameterE, 0510e527fh mov [esi].SHA256parameterF, 09b05688ch mov [esi].SHA256parameterG, 01f83d9abh mov [esi].SHA256parameterH, 05be0cd19h mov [esi].SHA384parameterA, 0c1059ed8h mov [esi].SHA384parameterB, 0cbbb9d5dh mov [esi].SHA384parameterC, 0367cd507h mov [esi].SHA384parameterD, 0629a292ah mov [esi].SHA384parameterE, 03070dd17h mov [esi].SHA384parameterF, 09159015ah mov [esi].SHA384parameterG, 0f70e5939h mov [esi].SHA384parameterH, 0152fecd8h mov [esi].SHA384parameterI, 0ffc00b31h mov [esi].SHA384parameterJ, 067332667h mov [esi].SHA384parameterK, 068581511h mov [esi].SHA384parameterL, 08eb44a87h mov [esi].SHA384parameterM, 064f98fa7h mov [esi].SHA384parameterN, 0db0c2e0dh mov [esi].SHA384parameterO, 0befa4fa4h mov [esi].SHA384parameterP, 047b5481dh mov [esi].SHA512parameterA, 0F3BCC908h mov [esi].SHA512parameterB, 06A09E667h mov [esi].SHA512parameterC, 084CAA73Bh mov [esi].SHA512parameterD, 0BB67AE85h mov [esi].SHA512parameterE, 0FE94F82Bh mov [esi].SHA512parameterF, 03C6EF372h mov [esi].SHA512parameterG, 05F1D36F1h mov [esi].SHA512parameterH, 0A54FF53Ah mov [esi].SHA512parameterI, 0ADE682D1h mov [esi].SHA512parameterJ, 0510E527Fh mov [esi].SHA512parameterK, 02B3E6C1Fh mov [esi].SHA512parameterL, 09B05688Ch mov [esi].SHA512parameterM, 0FB41BD6Bh mov [esi].SHA512parameterN, 01F83D9ABh mov [esi].SHA512parameterO, 0137E2179h mov [esi].SHA512parameterP, 05BE0CD19h mov [esi].SNEFRUparameterA, 00000000h mov [esi].SNEFRUparameterB, 00000000h mov [esi].SNEFRUparameterC, 00000000h mov [esi].SNEFRUparameterD, 00000000h mov [esi].SNEFRUparameterE, 00000000h mov [esi].SNEFRUparameterF, 00000000h mov [esi].SNEFRUparameterG, 00000000h mov [esi].SNEFRUparameterH, 00000000h mov [esi].TIGERparameterA, 089ABCDEFh mov [esi].TIGERparameterB, 001234567h mov [esi].TIGERparameterC, 076543210h mov [esi].TIGERparameterD, 0FEDCBA98h mov [esi].TIGERparameterE, 0C3B2E187h mov [esi].TIGERparameterF, 0F096A5B4h mov [esi].WHIRLPOOLparameterA, 087b8014fh mov [esi].WHIRLPOOLparameterB, 01823c6e8h mov [esi].WHIRLPOOLparameterC, 0796f9152h mov [esi].WHIRLPOOLparameterD, 036a6d2f5h mov [esi].WHIRLPOOLparameterE, 0a30c7b35h mov [esi].WHIRLPOOLparameterF, 060bc9b8eh mov [esi].WHIRLPOOLparameterG, 02e4bfe57h mov [esi].WHIRLPOOLparameterH, 01de0d7c2h mov [esi].WHIRLPOOLparameterI, 09ff04adah mov [esi].WHIRLPOOLparameterJ, 0157737e5h mov [esi].WHIRLPOOLparameterK, 0b1a06b85h mov [esi].WHIRLPOOLparameterL, 058c9290ah mov [esi].WHIRLPOOLparameterM, 0cb3e0567h mov [esi].WHIRLPOOLparameterN, 0bd5d10f4h mov [esi].WHIRLPOOLparameterO, 0a77d95d8h mov [esi].WHIRLPOOLparameterP, 0e427418bh mov [esi].WHIRLPOOLparameterQ, 0dd17479eh mov [esi].WHIRLPOOLparameterR, 0fbee7c66h mov [esi].WHIRLPOOLparameterS, 0ad5a8333h mov [esi].WHIRLPOOLparameterT, 0ca2dbf07h mov esi, offset HASHES_Current inc ecx cmp ecx, 02h jne @fill_next_struct assume esi:nothing ret InitialiseHashes endp ;*************************************************************************************** ; Procs to get the current hash init vector values and display them ;*************************************************************************************** TransformParameterDisplay proc targetField:dword push ecx push edx bswap eax mov tempdword, eax push 04h push offset tempModifyBuffer push offset tempdword call BASE16_ENCODE_RT invoke SetDlgItemText, hModifyWindow, targetField, addr tempModifyBuffer pop edx pop ecx ret TransformParameterDisplay endp DisplayCurrentParameters proc xor ecx, ecx mov edx, IDC_MODIFY_ADLER32_A mov esi, offset HASHES_Current @@: mov eax, dword ptr [esi+ecx*4] invoke TransformParameterDisplay, edx inc edx inc ecx cmp edx, IDC_MODIFY_WHIRLPOOL_T jle @b ret DisplayCurrentParameters endp ;*************************************************************************************** ; Procs to get the changed hash init vector values and apply them ;*************************************************************************************** TransformParameterApply proc applySourceField:dword push edx push 08h push offset tempdword push applySourceField call BASE16_DECODE_RT mov eax, dword ptr [tempdword] bswap eax mov esi, offset HASHES_Current mov dword ptr [esi+ecx*4], eax pop edx ret TransformParameterApply endp ApplyNewParameters proc invoke SetDlgItemText, hModifyWindow, IDC_MODIFY_STATUS, addr SuccessMessage xor ecx, ecx mov edx, IDC_MODIFY_ADLER32_A @@: push ecx push edx invoke GetDlgItemText, hModifyWindow, edx, addr tempModifyBuffer, sizeof tempModifyBuffer pop edx pop ecx cmp eax, 08h jne @invalid_entry mov esi, offset tempModifyBuffer @check_hex_chars_loop: movsx ebx, byte ptr [esi] cmp bl, 00h je @valid_entry cmp bl, 30h jl @invalid_entry cmp bl, 3Ah jl @valid_char cmp bl, 41h jl @invalid_entry cmp bl, 47h jl @valid_char cmp bl, 61h jl @invalid_entry cmp bl, 66h jg @invalid_entry @valid_char: inc esi jmp @check_hex_chars_loop @invalid_entry: push ecx push edx mov eax, dword ptr [esi+ecx*4] invoke TransformParameterDisplay, edx invoke SetDlgItemText, hModifyWindow, IDC_MODIFY_STATUS, addr ErrorInvalidEntry pop edx pop ecx jmp @process_next_dword @valid_entry: invoke TransformParameterApply, addr tempModifyBuffer @process_next_dword: inc edx inc ecx cmp edx, IDC_MODIFY_WHIRLPOOL_T jle @b ret ApplyNewParameters endp ;*************************************************************************************** ; Procs to set the visibilities on the various pages ;*************************************************************************************** SetPage1Visibility proc _state:dword invoke ShowWindow, hButtonPage2, _state mov edx, IDC_MODIFY_ADLER32_A @@: push edx invoke GetDlgItem, hModifyWindow, edx invoke ShowWindow, eax, _state pop edx inc edx cmp edx, IDC_MODIFY_SHA1_E jle @b mov edx, PAGE_1_NAME_START @@: push edx invoke GetDlgItem, hModifyWindow, edx invoke ShowWindow, eax, _state pop edx inc edx cmp edx, PAGE_2_NAME_START jl @b ret SetPage1Visibility endp SetPage2Visibility proc _state:dword invoke ShowWindow, hButtonPage1, _state mov edx, IDC_MODIFY_SHA256_A @@: push edx invoke GetDlgItem, hModifyWindow, edx invoke ShowWindow, eax, _state pop edx inc edx cmp edx, IDC_MODIFY_WHIRLPOOL_T jle @b mov edx, PAGE_2_NAME_START @@: push edx invoke GetDlgItem, hModifyWindow, edx invoke ShowWindow, eax, _state pop edx inc edx cmp edx, PAGE_2_NAME_END jle @b ret SetPage2Visibility endp