OPTION DOTNAME include includes\temphls.inc include includes\win64.inc include includes\user32.inc includelib includes\user32.lib OPTION PROLOGUE:none OPTION EPILOGUE:none .data AppName db "DLL Skeleton",0 HelloMsg db "Hello, you're calling a function in this DLL",0 LoadMsg db "The DLL is loaded",0 UnloadMsg db "The DLL is unloaded",0 SHAMsg db "SHA256 is started",0 .code DllMain proc hInstDLL:QWORD, reason:QWORD, unused:QWORD sub rsp,28h .if edx==DLL_PROCESS_ATTACH lea rdx,LoadMsg jmp exit .elseif edx==DLL_PROCESS_DETACH lea rdx,UnloadMsg .endif mov r9d,MB_OK jmp exit DllMain Endp TestHello proc sub rsp,28h lea rdx,HelloMsg mov r9d,MB_OK + MB_ICONERROR exit:: lea r8,AppName xor rcx,rcx call MessageBox add rsp,28h mov rax,TRUE ret TestHello endp Sha256 proc h_line:QWORD, h_size:QWORD sub rsp,28h ;Основа lea rdx,SHAMsg mov r9d,MB_OK + MB_ICONERROR lea r8,AppName xor ecx,ecx call MessageBoxW add rsp,28h mov rax,TRUE ret Sha256 Endp end