Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 |

 

  Вопрос: Нужно реализацию md5 на MS VC++ 2003 Добавлено: 13.04.07 00:37  

Автор вопроса:  ZagZag | ICQ: 295002202 
Не люблю новые топики создавать, но проблема опять возникла.
Никак в сети не могу найти исходник РАБОТАЮЩЕЙ функции для получения md5 хеша на MS VC++ 2003. Находил на VB6, ассемблере, но это не то. (Хотя с ассемблера впринципе перевести можно, но сложно)
Плз, если есть у кого сабж, киньте ссылку или исходник.
Только сразу прошу кидайте автономный код (чтобы не пришлось искать openssl и т.п.)
Я тем временем продолжу поиски, если найду - сюда кину

Ответить

  Ответы Всего ответов: 70  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 13.04.07 00:49
Уж что, а md5 думаю есть в наборе классов... щас Brand придёт, точно скажет в каком :) А то у меня просто только vs6 стоит :)

Ответить

Номер ответа: 2
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #2 Добавлено: 13.04.07 02:25
Поправка
Мне надо код md5 без использования MFC, ATL, Framework, .NET и т.п.
Речь идет о быстродействии, а не о простоте кода (впрочем, это не помешает).

Вот что я нашел:
cryptohash.lib + source (masm) - http://www.wasm.ru/src/9/cryptohash.rar
Пример использования cryptohash.lib на MASM - http://drizz.t35.com/files/chtest.zip
Только не получается его использовать в MS VC
Выдает ошибку:
main.obj : error LNK2019: unresolved external symbol "unsigned char __cdecl MD5Init(void)" (?MD5Init@@YAEXZ) referenced in function _main
Хотя вроде cryptohash.lib прилинковываю

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 13.04.07 02:32
Первый раз вижу такую проблему :) Мог бы, например, взять реализацию непосредственно из первоисточника - ftp://ftp.rfc-editor.org/in-notes/rfc1321.txt

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 13.04.07 02:33
Хотя вроде cryptohash.lib прилинковываю

Может, неправильно линкуешь?

Ответить

Номер ответа: 5
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #5 Добавлено: 13.04.07 02:34
Уж что, а md5 думаю есть в наборе классов... щас Brand придёт, точно скажет в каком :) А то у меня просто только vs6 стоит :)

Ты хочешь поговорить об этом?..

Ответить

Номер ответа: 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 *

Ответить

Номер ответа: 7
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #7 Добавлено: 13.04.07 03:25
ICQ: 334479038
Контактное лица - Хаккер
Попроси официальную реализацию MD5 от победителя конкурса

Ответить

Номер ответа: 8
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #8 Добавлено: 13.04.07 03:25
) Не на чистой сишке надо или как я пытаюсь ассеблерную LIB'у прилинковать

Кто этот бред написал? =)
Я хотел сказать:
Мне на чистой сишке надо или (как я пытаюсь) ассеблерную LIB'у прилинковать

Ответить

Номер ответа: 9
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #9 Добавлено: 13.04.07 03:55
ICQ: 334479038
Контактное лица - Хаккер
Попроси официальную реализацию MD5 от победителя конкурса

HACKER'a в аське нету сейчас. Зато он тут постил пару часов назад.
Т.ч., прошу все мысли тут выкладывать (или вылаживать =))

Ответить

Номер ответа: 10
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 13.04.07 03:57
я могу дать хорошую (НЕ ОФИЦИАЛЬНУЮ :) ) реализацию на ассемблере. Она достаточно быстрая, и пример достаточно простой чтобы сделать из него либу и подключить её куда хочешь

Ответить

Номер ответа: 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          ;DB MAX_PATH DUP (0)

szFilter        ;DB ";Dictionary files", 0, "*.txt;*.dic", 0, 0
szCurDir        ;DB ".",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

Ответить

Номер ответа: 12
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #12 Добавлено: 13.04.07 04:26
подожди, разве бугор - победитель конкурса? о_О

Ответить

Номер ответа: 13
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #13 Добавлено: 13.04.07 04:28
        Dim Data As Byte() = {10, 20, 30, 40, 50}
        Dim MD5 As New System.Security.Cryptography.MD5CryptoServiceProvider
        Dim Result As Byte() = MD5.ComputeHash(Data)

Ответить

Номер ответа: 14
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #14 Добавлено: 13.04.07 04:29
Строчки кода и байты сам посчитаешь, чтоб не было повода обвинять меня в обмане и необъективности.

Ответить

Номер ответа: 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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам