Страница: 1 | 2 | 3 | 4 | 5 |
Вопрос: Нужно реализацию md5 на MS VC++ 2003
Добавлено: 13.04.07 00:37
Автор вопроса: ZagZag | ICQ: 295002202
Не люблю новые топики создавать, но проблема опять возникла.
Никак в сети не могу найти исходник РАБОТАЮЩЕЙ функции для получения md5 хеша на MS VC++ 2003 . Находил на VB6, ассемблере, но это не то. (Хотя с ассемблера впринципе перевести можно, но сложно)
Плз, если есть у кого сабж, киньте ссылку или исходник.
Только сразу прошу кидайте автономный код (чтобы не пришлось искать openssl и т.п.)
Я тем временем продолжу поиски, если найду - сюда кину
Ответить
Номер ответа: 6Автор ответа: ZagZag
ICQ: 295002202 Вопросов: 87Ответов: 1684
Профиль | | #6
Добавлено: 13.04.07 03:15
ftp://ftp.rfc-editor.org/in-notes/rfc1321.txt
Видел такой пример. Не смог в нем разобраться.
Может, неправильно линкуешь?
Может быть и неправильно:
Св-ва проекта - Linker - Command line - Additional Options: вписал md5.lib
md5.lib (урезанная cryptohash.lib) лежит в папке с проектом
Ты хочешь поговорить об этом?..
Не-а. Не на чистой сишке надо или как я пытаюсь ассеблерную LIB'у прилинковать
Главное - быстродействие
Цель - получить md5 хеш строки LPSTR или char *
Ответить
Номер ответа: 11Автор ответа: HACKER
Разработчик Offline Client Вопросов: 236Ответов: 8362
Профиль | | #11
Добавлено: 13.04.07 04:01
хакер есть всегда )))) только он бывает то инвизибл, то морозится отвечать, то ему влом аську запускать, итп итд... ок выкладываю
;Кодер: BUG(O)R
;ICQ: 827887
;e-mail: zona_bugor(гав)bk.ru
;site: www.hunger.ru
.686
.model flat,stdcall
option casemap:none
include C:\masm32\include\gdi32.inc
include C:\masm32\include\kernel32.inc
include C:\masm32\include\user32.inc
include C:\masm32\include\windows.inc
include C:\masm32\include\comdlg32.inc
include C:\masm32\include\masm32.inc
includelib C:\masm32\lib\gdi32.lib
includelib C:\masm32\lib\kernel32.lib
includelib C:\masm32\lib\user32.lib
includelib C:\masm32\lib\comdlg32.lib
includelib C:\masm32\lib\masm32.lib
DlgProc proto :dword,:dword,:dword,:dword
procMD5hash proto :dword,:dword
.const
IDC_BRUTE equ 101
IDC_DIC equ 104
IDC_LBL equ 105
IDI_LBLDICPATH equ 108
IDC_EDITTEXT equ 102
IDC_EDITHASH equ 103
IDC_GETHASH equ 106
IDC_ABOUT equ 107
IDC_COMBOTYPE equ 301
IDC_EDITLEN equ 109
IDD_DIALOG equ 100
IDI_ICON equ 200
MAXSIZE equ 255
.data
ofn OPENFILENAME <SIZEOF OPENFILENAME>
cFname  
B MAX_PATH DUP (0)
szFilter  
B "
ictionary files", 0, "*.txt;*.dic", 0, 0
szCurDir  
B ".",0
szOfnOpen DB "::Advanced MD5 Brute by BUG(O)R::
Select the dictionary file...",0
pwdNot DB
'Password not found',0
err DB
'Error',0
rec DB
'Recovery',0
fin DB
'Finish!',0
errLen DB
'Длина хеша равна 0!',0
errDic DB
'Выбирете словарь для восстановления!',0
about DB
'Codeв by BUG(O)R [icq:827887]',0Dh,0Ah
DB
'MASM 6.14; GUI Application',0Dh,0Ah
DB
'Greetz: niсe, UsAr, nerezus, Sharp',0Dh,0Ah
DB
'Testing: Plague',0Dh,0Ah
DB
'Site: www.hunger.ru',0Dh,0Ah
DB
'.::[in power we trust]::.',0
capt DB
'Advanced Md5 recovery by BUG(O)R v1.0',0
md5str DB
'md5(str)',0
md52str DB
'md5(md5(str))',0
hexnum DB "0123456789abcdef",0
hMapFile HANDLE 0
.data?
tmp DB MAXSIZE dup(?)
hsh DB MAXSIZE dup(?)
bfHashBuffer DB MAXSIZE dup(?)
hInstance HINSTANCE ?
hFileRead HANDLE ?
pMemory DWORD ?
SizeWritten DWORD ?
wor DWORD ?
typ DB 14 dup(?)
num DWORD ?
addrAlloc DWORD ?
temp DWORD ?
dwHash DWORD 4 dup(?)
.code
start: invoke GetModuleHandle,0
mov hInstance,eax
invoke DialogBoxParam,hInstance,IDD_DIALOG,0,addr DlgProc,0
invoke ExitProcess,eax
DlgProc proc uses ebx edi esi,hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
cmp uMsg,WM_CLOSE
jz close
cmp uMsg,WM_COMMAND
jz command
xor eax,eax
ret
endcheck: mov eax,1
ret
command: invoke SendDlgItemMessage, hWnd, IDC_COMBOTYPE, CB_ADDSTRING, 0, offset md5str
invoke SendDlgItemMessage, hWnd, IDC_COMBOTYPE, CB_ADDSTRING, 0, offset md52str
mov eax,wParam
mov edx,wParam
shr edx,16
.if ax==IDC_BRUTE
invoke GetDlgItemText,hWnd,IDC_EDITTEXT,addr hsh,sizeof hsh
.if eax==0
invoke MessageBox, hWnd, addr errLen, addr err, MB_OK+MB_ICONERROR
jmp endcheck
.else
invoke CharLower, offset hsh
invoke lstrlen, offset cFname
.if eax==0
invoke MessageBox, hWnd, addr errDic, addr err, MB_OK+MB_ICONERROR
jmp endcheck
.endif
.endif
invoke SendDlgItemMessageA,hWnd,IDC_LBL,WM_SETTEXT,0,addr rec
mov ecx,16
lea edi,dwHash
lea esi,hsh
@@:
lodsb
.if(al<41h)
sub al,30h
.elseif
sub al,57h
.endif
mov bl,al
lodsb
.if(al<41h)
sub al,30h
.elseif
sub al,57h
.endif
shl bl,4
add al,bl
stosb
dec ecx
jne @b
mov ecx,wor
mov edi,offset tmp+1
mov esi,pMemory
align 4
brute:
mov ebx,ecx
xor eax,eax
mov ecx,[addrAlloc]
mov al,byte ptr[ecx]
inc ecx
mov [addrAlloc],ecx
xor ecx,ecx
.while ecx<eax
mov dl,byte ptr[esi+ecx]
mov byte ptr[edi+ecx],dl
inc ecx
.endw
add esi,eax
inc esi
inc esi
invoke procMD5hash, edi,addr bfHashBuffer
mov edx,esi
push edi
mov ecx,4
lea esi,dwHash
repe cmpsd
jne @f
jmp evrika
@@:
pop edi
mov esi,edx
mov ecx,ebx
dec ecx
jne brute
invoke SendDlgItemMessageA,hWnd,IDC_EDITHASH,WM_SETTEXT,0,addr pwdNot
invoke SendDlgItemMessageA,hWnd,IDC_LBL,WM_SETTEXT,0,addr fin
jmp endcheck
evrika:
mov esi,edx
mov eax,[addrAlloc]
dec eax
movzx ecx,byte ptr[eax]
add ecx,2
sub esi,ecx
mov byte ptr[esi+ecx-2],0
invoke SendDlgItemMessageA,hWnd,IDC_EDITHASH,WM_SETTEXT,0,esi
invoke SendDlgItemMessageA,hWnd,IDC_LBL,WM_SETTEXT,0,addr fin
.if hMapFile!=0
call CloseMapFile
.endif
jmp endcheck
;1870177e3af89f5dc5df038b728c3b15 - yardwands
.elseif ax==IDC_DIC
MOV ofn.lpstrFilter, OFFSET szFilter
MOV ofn.lpstrInitialDir, OFFSET szCurDir
MOV ofn.Flags, OFN_FILEMUSTEXIST + OFN_PATHMUSTEXIST + OFN_LONGNAMES + OFN_EXPLORER + OFN_HIDEREADONLY
MOV ofn.lpstrFile, OFFSET cFname
MOV ofn.nMaxFile, SIZEOF cFname
MOV ofn.lpstrTitle, offset szOfnOpen
invoke GetOpenFileName, addr ofn
invoke lstrlen, offset cFname
.if eax==0
jmp endcheck
.endif
invoke SendDlgItemMessageA,hWnd,IDI_LBLDICPATH,WM_SETTEXT,0,addr cFname
invoke CreateFile,ADDR cFname,GENERIC_READ or GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL
mov hFileRead,eax
invoke CreateFileMapping, hFileRead, NULL, PAGE_READWRITE, 0, 0, NULL
mov hMapFile,eax
invoke MapViewOfFile, hMapFile, FILE_MAP_COPY, 0, 0, 0
mov pMemory,eax
invoke GetFileSize, hFileRead, NULL
mov SizeWritten,eax
invoke VirtualAlloc, 0, eax, MEM_COMMIT, PAGE_EXECUTE_READWRITE
mov addrAlloc,eax
mov ecx,SizeWritten
xor ebx,ebx
xor eax,eax
mov edi,[pMemory]
mov esi,[addrAlloc]
mov al,0Dh
mov edx,edi
cld
@@:
repne scasb
jne @f
sub edx,edi
not edx
mov byte ptr[esi],dl
inc esi
mov edx,edi
inc edx
jmp @b
@@:
sub esi,[addrAlloc]
inc esi
mov wor,esi
.elseif ax==IDC_GETHASH
invoke GetDlgItemText,hWnd,IDC_EDITTEXT,addr tmp,sizeof tmp
invoke procMD5hash, addr tmp,addr bfHashBuffer
xor eax,eax
xor ecx,ecx
lea esi, tmp
lea edi, bfHashBuffer
@@:
lodsb
ror ax,4
shr ah,4
movsx edx,ah
mov ah,byte ptr [hexnum + edx]
movsx edx,al
mov al,byte ptr [hexnum + edx]
stosw
xor ah,ah
inc ecx
cmp ecx,16
jne @b
invoke SendDlgItemMessageA,hWnd,IDC_EDITHASH,WM_SETTEXT,0,addr bfHashBuffer
.elseif ax==IDC_ABOUT
invoke MessageBox, hWnd, addr about, addr capt, MB_OK+MB_ICONINFORMATION
.endif
jmp endcheck
close: invoke EndDialog,hWnd,0
.if hMapFile!=0
call CloseMapFile
.endif
jmp endcheck
DlgProc endp
CloseMapFile PROC
invoke UnmapViewOfFile,pMemory
invoke CloseHandle,hMapFile
mov hMapFile,0
invoke CloseHandle,hFileRead
ret
CloseMapFile endp
procMD5hash proc uses ebx edi esi, ptBuffer:dword,pcHashBuffer:dword
align 4
mov esi,ptBuffer
mov byte ptr [esi + eax],80h
mov ebx,eax
inc ebx
.while ebx<65
mov dword ptr [esi + ebx],0
add ebx,4
.endw
shl eax,3
mov word ptr [esi + 56],ax
mov word ptr [esi + 58],0
push ebp
mov eax,067452301h
mov ebx,0efcdab89h
mov ecx,098badcfeh
mov edx,010325476h
mov ebp,ebx
mov edi,ebx
not ebp
and edi,ecx
and ebp,edx
add eax,[esi]
or edi,ebp
add eax,edi
add eax,0d76aa478h
rol eax,07h
add eax,ebx
mov ebp,eax
mov edi,eax
not ebp
and edi,ebx
and ebp,ecx
add edx,[esi+4]
or edi,ebp
add edx,edi
add edx,0e8C7b756h
rol edx,0ch
add edx,eax
mov ebp,edx
mov edi,edx
not ebp
and edi,eax
and ebp,ebx
add ecx,[esi+8]
or edi,ebp
add ecx,edi
add ecx,0242070dbh
rol ecx,11h
add ecx,edx
mov ebp,ecx
mov edi,ecx
not ebp
and edi,edx
and ebp,eax
add ebx,[esi+0ch]
or edi,ebp
add ebx,edi
add ebx,0c1bdceeeh
rol ebx,16h
add ebx,ecx
mov ebp,ebx
mov edi,ebx
not ebp
and edi,ecx
and ebp,edx
add eax,[esi+10h]
or edi,ebp
add eax,edi
add eax,0f57c0fafh
rol eax,07h
add eax,ebx
mov ebp,eax
mov edi,eax
not ebp
and edi,ebx
and ebp,ecx
add edx,[esi+14h]
or edi,ebp
add edx,edi
add edx,04787c62ah
rol edx,0ch
add edx,eax
mov ebp,edx
mov edi,edx
not ebp
and edi,eax
and ebp,ebx
add ecx,[esi+18h]
or edi,ebp
add ecx,edi
add ecx,0a8304613h
rol ecx,11h
add ecx,edx
mov ebp,ecx
mov edi,ecx
not ebp
and edi,edx
and ebp,eax
add ebx,[esi+1ch]
or edi,ebp
add ebx,edi
add ebx,0fd469501h
rol ebx,16h
add ebx,ecx
mov ebp,ebx
mov edi,ebx
not ebp
and edi,ecx
and ebp,edx
add eax,[esi+20h]
or edi,ebp
add eax,edi
add eax,0698098d8h
rol eax,07h
add eax,ebx
mov ebp,eax
mov edi,eax
not ebp
and edi,ebx
and ebp,ecx
add edx,[esi+24h]
or edi,ebp
add edx,edi
add edx,08b44f7afh
rol edx,0ch
add edx,eax
mov ebp,edx
mov edi,edx
not ebp
and edi,eax
and ebp,ebx
add ecx,[esi+28h]
or edi,ebp
add ecx,edi
add ecx,0ffff5bb1h
rol ecx,11h
add ecx,edx
mov ebp,ecx
mov edi,ecx
not ebp
and edi,edx
and ebp,eax
add ebx,[esi+2ch]
or edi,ebp
add ebx,edi
add ebx,0895cd7beh
rol ebx,16h
add ebx,ecx
mov ebp,ebx
mov edi,ebx
not ebp
and edi,ecx
and ebp,edx
add eax,[esi+30h]
or edi,ebp
add eax,edi
add eax,06b901122h
rol eax,07h
add eax,ebx
mov ebp,eax
mov edi,eax
not ebp
and edi,ebx
and ebp,ecx
add edx,[esi+34h]
or edi,ebp
add edx,edi
add edx,0fd987193h
rol edx,0ch
add edx,eax
mov ebp,edx
mov edi,edx
not ebp
and edi,eax
and ebp,ebx
add ecx,[esi+38h]
or edi,ebp
add ecx,edi
add ecx,0a679438eh
rol ecx,11h
add ecx,edx
mov ebp,ecx
mov edi,ecx
not ebp
and edi,edx
and ebp,eax
add ebx,[esi+3ch]
or edi,ebp
add ebx,edi
add ebx,049b40821h
rol ebx,16h
add ebx,ecx
mov ebp,edx
mov edi,edx
not ebp
and edi,ebx
and ebp,ecx
add eax,[esi+04h]
or edi,ebp
add eax,edi
add eax,0f61e2562h
rol eax,05h
add eax,ebx
mov ebp,ecx
mov edi,ecx
not ebp
and edi,eax
and ebp,ebx
add edx,[esi+18h]
or edi,ebp
add edx,edi
add edx,0c040b340h
rol edx,09h
add edx,eax
mov ebp,ebx
mov edi,ebx
not ebp
and edi,edx
and ebp,eax
add ecx,[esi+2ch]
or edi,ebp
add ecx,edi
add ecx,0265e5a51h
rol ecx,0eh
add ecx,edx
mov ebp,eax
mov edi,eax
not ebp
and edi,ecx
and ebp,edx
add ebx,[esi]
or edi,ebp
add ebx,edi
add ebx,0e9b6c7aah
rol ebx,14h
add ebx,ecx
mov ebp,edx
mov edi,edx
not ebp
and edi,ebx
and ebp,ecx
add eax,[esi+14h]
or edi,ebp
add eax,edi
add eax,0d62f105dh
rol eax,05h
add eax,ebx
mov ebp,ecx
mov edi,ecx
not ebp
and edi,eax
and ebp,ebx
add edx,[esi+28h]
or edi,ebp
add edx,edi
add edx,002441453h
rol edx,09h
add edx,eax
mov ebp,ebx
mov edi,ebx
not ebp
and edi,edx
and ebp,eax
add ecx,[esi+3ch]
or edi,ebp
add ecx,edi
add ecx,0d8a1e681h
rol ecx,0eh
add ecx,edx
mov ebp,eax
mov edi,eax
not ebp
and edi,ecx
and ebp,edx
add ebx,[esi+10h]
or edi,ebp
add ebx,edi
add ebx,0e7d3fbc8h
rol ebx,14h
add ebx,ecx
mov ebp,edx
mov edi,edx
not ebp
and edi,ebx
and ebp,ecx
add eax,[esi+24h]
or edi,ebp
add eax,edi
add eax,021e1cde6h
rol eax,05h
add eax,ebx
mov ebp,ecx
mov edi,ecx
not ebp
and edi,eax
and ebp,ebx
add edx,[esi+38h]
or edi,ebp
add edx,edi
add edx,0c33707d6h
rol edx,09h
add edx,eax
mov ebp,ebx
mov edi,ebx
not ebp
and edi,edx
and ebp,eax
add ecx,[esi+0ch]
or edi,ebp
add ecx,edi
add ecx,0f4d50d87h
rol ecx,0eh
add ecx,edx
mov ebp,eax
mov edi,eax
not ebp
and edi,ecx
and ebp,edx
add ebx,[esi+20h]
or edi,ebp
add ebx,edi
add ebx,0455a14edh
rol ebx,14h
add ebx,ecx
mov ebp,edx
mov edi,edx
not ebp
and edi,ebx
and ebp,ecx
add eax,[esi+34h]
or edi,ebp
add eax,edi
add eax,0a9e3e905h
rol eax,05h
add eax,ebx
mov ebp,ecx
mov edi,ecx
not ebp
and edi,eax
and ebp,ebx
add edx,[esi+08h]
or edi,ebp
add edx,edi
add edx,0fcefa3f8h
rol edx,09h
add edx,eax
mov ebp,ebx
mov edi,ebx
not ebp
and edi,edx
and ebp,eax
add ecx,[esi+1ch]
or edi,ebp
add ecx,edi
add ecx,0676f02d9h
rol ecx,0eh
add ecx,edx
mov ebp,eax
mov edi,eax
not ebp
and edi,ecx
and ebp,edx
add ebx,[esi+30h]
or edi,ebp
add ebx,edi
add ebx,08d2a4c8ah
rol ebx,14h
add ebx,ecx
mov ebp,edx
add eax,[esi+14h]
xor ebp,ecx
xor ebp,ebx
add eax,ebp
add eax,0fffa3942h
rol eax,04h
add eax,ebx
mov ebp,ecx
add edx,[esi+20h]
xor ebp,ebx
xor ebp,eax
add edx,ebp
add edx,08771f681h
rol edx,0bh
add edx,eax
mov ebp,ebx
add ecx,[esi+2ch]
xor ebp,eax
xor ebp,edx
add ecx,ebp
add ecx,06d9d6122h
rol ecx,10h
add ecx,edx
mov ebp,eax
add ebx,[esi+38h]
xor ebp,edx
xor ebp,ecx
add ebx,ebp
add ebx,0fde5380ch
rol ebx,17h
add ebx,ecx
mov ebp,edx
add eax,[esi+04h]
xor ebp,ecx
xor ebp,ebx
add eax,ebp
add eax,0a4beea44h
rol eax,04h
add eax,ebx
mov ebp,ecx
add edx,[esi+10h]
xor ebp,ebx
xor ebp,eax
add edx,ebp
add edx,04bdecfa9h
rol edx,0bh
add edx,eax
mov ebp,ebx
add ecx,[esi+1ch]
xor ebp,eax
xor ebp,edx
add ecx,ebp
add ecx,0f6bb4b60h
rol ecx,10h
add ecx,edx
mov ebp,eax
add ebx,[esi+28h]
xor ebp,edx
xor ebp,ecx
add ebx,ebp
add ebx,0bebfbc70h
rol ebx,17h
add ebx,ecx
mov ebp,edx
add eax,[esi+34h]
xor ebp,ecx
xor ebp,ebx
add eax,ebp
add eax,0289b7ec6h
rol eax,04h
add eax,ebx
mov ebp,ecx
add edx,[esi]
xor ebp,ebx
xor ebp,eax
add edx,ebp
add edx,0eaa127fah
rol edx,0bh
add edx,eax
mov ebp,ebx
add ecx,[esi+0ch]
xor ebp,eax
xor ebp,edx
add ecx,ebp
add ecx,0d4ef3085h
rol ecx,10h
add ecx,edx
mov ebp,eax
add ebx,[esi+18h]
xor ebp,edx
xor ebp,ecx
add ebx,ebp
add ebx,004881d05h
rol ebx,17h
add ebx,ecx
mov ebp,edx
add eax,[esi+24h]
xor ebp,ecx
xor ebp,ebx
add eax,ebp
add eax,0d9d4d039h
rol eax,04h
add eax,ebx
mov ebp,ecx
add edx,[esi+30h]
xor ebp,ebx
xor ebp,eax
add edx,ebp
add edx,0e6db99e5h
rol edx,0bh
add edx,eax
mov ebp,ebx
add ecx,[esi+3ch]
xor ebp,eax
xor ebp,edx
add ecx,ebp
add ecx,01fa27cf8h
rol ecx,10h
add ecx,edx
mov ebp,eax
add ebx,[esi+08h]
xor ebp,edx
xor ebp,ecx
add ebx,ebp
add ebx,0c4ac5665h
rol ebx,17h
add ebx,ecx
mov edi,edx
add eax,[esi]
not edi
or edi,ebx
xor edi,ecx
add eax,edi
add eax,0f4292244h
rol eax,06h
add eax,ebx
mov edi,ecx
add edx,[esi+1ch]
not edi
or edi,eax
xor edi,ebx
add edx,edi
add edx,0432aff97h
rol edx,0ah
add edx,eax
mov edi,ebx
add ecx,[esi+38h]
not edi
or edi,edx
xor edi,eax
add ecx,edi
add ecx,0ab9423a7h
rol ecx,0fh
add ecx,edx
mov edi,eax
add ebx,[esi+14h]
not edi
or edi,ecx
xor edi,edx
add ebx,edi
add ebx,0fc93a039h
rol ebx,15h
add ebx,ecx
mov edi,edx
add eax,[esi+30h]
not edi
or edi,ebx
xor edi,ecx
add eax,edi
add eax,0655b59c3h
rol eax,06h
add eax,ebx
mov edi,ecx
add edx,[esi+0ch]
not edi
or edi,eax
xor edi,ebx
add edx,edi
add edx,08f0ccc92h
rol edx,0ah
add edx,eax
mov edi,ebx
add ecx,[esi+28h]
not edi
or edi,edx
xor edi,eax
add ecx,edi
add ecx,0ffeff47dh
rol ecx,0fh
add ecx,edx
mov edi,eax
add ebx,[esi+04h]
not edi
or edi,ecx
xor edi,edx
add ebx,edi
add ebx,085845dd1h
rol ebx,15h
add ebx,ecx
mov edi,edx
add eax,[esi+20h]
not edi
or edi,ebx
xor edi,ecx
add eax,edi
add eax,06fa87e4fh
rol eax,06h
add eax,ebx
mov edi,ecx
add edx,[esi+3ch]
not edi
or edi,eax
xor edi,ebx
add edx,edi
add edx,0fe2ce6e0h
rol edx,0ah
add edx,eax
mov edi,ebx
add ecx,[esi+18h]
not edi
or edi,edx
xor edi,eax
add ecx,edi
add ecx,0a3014314h
rol ecx,0fh
add ecx,edx
mov edi,eax
add ebx,[esi+34h]
not edi
or edi,ecx
xor edi,edx
add ebx,edi
add ebx,04e0811a1h
rol ebx,15h
add ebx,ecx
mov edi,edx
add eax,[esi+10h]
not edi
or edi,ebx
xor edi,ecx
add eax,edi
add eax,0f7537e82h
rol eax,06h
add eax,ebx
mov edi,ecx
add edx,[esi+2ch]
not edi
or edi,eax
xor edi,ebx
add edx,edi
add edx,0bd3af235h
rol edx,0ah
add edx,eax
mov edi,ebx
add ecx,[esi+08h]
not edi
or edi,edx
xor edi,eax
add ecx,edi
add ecx,02ad7d2bbh
rol ecx,0fh
add ecx,edx
mov edi,eax
add ebx,[esi+24h]
not edi
or edi,ecx
xor edi,edx
add ebx,edi
add ebx,0eb86d391h
rol ebx,15h
add ebx,ecx
add eax,067452301h
mov [esi],eax
add ebx,0efcdab89h
mov [esi+4],ebx
add ecx,098badcfeh
mov [esi+8],ecx
add edx,010325476h
mov [esi+12],edx
pop ebp
ret
procMD5hash endp
end start
Ответить
Номер ответа: 15Автор ответа: ZagZag
ICQ: 295002202 Вопросов: 87Ответов: 1684
Профиль | | #15
Добавлено: 13.04.07 05:00
Brand, спасибо конечно, но я просил без .NET
Я согласен что на .NET код компактный получается, но каково его быстродействие?
HACKER'у отдельное спасибо за код. Оригинально. Даже без процедур
MD5Init(), MD5Final() и всяких там GG(), II() и т.п. Все в одной
процедуре, как я и хотел. Я даже уже LIB создал с этой процедуркой.
Только объясните мне как эту lib подключить в сишке?
Вот прототип ассемблерный процедуры
procMD5hash proc uses ebx edi esi,ptBuffer:dword,pcHashBuffer:dword
Передается 2 dword, так? Это указатели на строки или массивы байт, так?
В программе у меня определены
static char szHash[256];
static char szText[256];
Указатели на них надо передать процедуре procMD5hash. Как это сделать?
И как написать прототип процедуры procMD5hash в сишке.
Ответить
Страница: 1 | 2 | 3 | 4 | 5 |
Поиск по форуму