.386.model flat, stdcall ;32 bit memory modeloption casemap :none ;case sensitiveinclude windows.incinclude kernel32.incinclude user32.incinclude Comctl32.incinclude shell32.incinclude debug.incincludelib kernel32.libincludelib user32.libincludelib Comctl32.libincludelib shell32.libNOTIFYICONDAT STRUCT cbSize DWORD ? hwnd DWORD ? uID DWORD ? uFlags DWORD ? uCallbackMessage DWORD ? hIcon DWORD ? szTip BYTE 128 dup (?) dwState DWORD ? dwStateMask DWORD ? szInfo BYTE 256 dup (?) uTimeout DWORD ? szInfoTitle BYTE 64 dup (?) dwInfoFlags DWORD ? NOTIFYICONDAT ENDSDlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM.constIDD_DIALOG1 equ 101IDI_TRAY equ 0WM_NOTIFYICON equ WM_USER+1; uFlags to NOTIFYICONDATA structure NIF_ICON equ 2h NIF_INFO equ 10h NIF_MESSAGE equ 1h NIF_STATE equ 8h NIF_TIP equ 4h; dwInfoFlags to NOTIFIICONDATA structureNIS_HIDDEN equ 1h ; 隐藏图标NIS_SHAREDICON equ 2h ; 共享图标NIIF_NONE equ 0h ;无图标NIIF_INFO equ 1h ; 消息"图标 NIIF_WARNING equ 2h ; "警告"图标 NIIF_ERROR equ 3h ;"错误"图标; dwMessage to Shell_NotifyIcon NIM_ADD equ 0h NIM_DELETE equ 2h NIM_MODIFY equ 1h NIM_SETFOCUS equ 3h NIM_SETVERSION equ 4h;#########################################################################.data?hInstance dd ?note NOTIFYICONDAT <> ;#########################################################################.codestart: invoke GetModuleHandle,NULL mov hInstance,eax invoke InitCommonControls invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL invoke ExitProcess,0;########################################################################DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM mov eax,uMsg .if eax==WM_INITDIALOG ;invoke ShowWindow,hWin,SW_HIDE ; invoke SendMessage,hWin,WM_SETICON,ICON_BIG,eax ;设置窗口图标 mov note.cbSize,sizeof NOTIFYICONDAT ;结构大小(字节) push hWin pop note.hwnd ;' 处理消息的窗口的句柄 mov note.uID,IDI_TRAY ; 唯一的标识符 mov note.uFlags,NIF_TIP+NIF_ICON+NIF_MESSAGE+NIF_INFO+NIF_STATE mov note.uCallbackMessage,WM_NOTIFYICON ;处理消息的窗口接收的消息 invoke LoadIcon,hInstance,1 mov note.hIcon,eax ;托盘图标句柄 invoke lstrcpy,addr note.szTip,CTEXT("ESET_NOD32_ID自动升级器 V1.0") ;提示文本 mov note.dwState ,0 mov note.dwStateMask,0 invoke lstrcpy, addr note.szInfo,CTEXT("气泡内容") invoke lstrcpy,addr note.szInfoTitle,CTEXT("气泡标题:") mov note.dwInfoFlags , NIIF_INFO mov note.uTimeout,1000 ;超时毫秒数 invoke Shell_NotifyIcon,NIM_ADD,addr note .elseif eax==WM_COMMAND .elseif eax==WM_CLOSE invoke EndDialog,hWin,0 invoke Shell_NotifyIcon,NIM_DELETE,addr note .else mov eax,FALSE ret .endif mov eax,TRUE retDlgProc endpend start
[课程]Android-CTF解题方法汇总!