⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vxdcall.asm

📁 window编程,非常的好
💻 ASM
字号:
;@goto translate


.586P

.MODEL       FLAT, STDCALL
 
   OPTION      CASEMAP: NONE
  
   INCLUDE     WINDOWS.inc
   UNICODE     = FALSE
   INCLUDE     APIMACRO.mac

   INCLUDELIB  iKERNEL32.lib
   INCLUDELIB  iUSER32.lib
   INCLUDELIB  iApiHooks.lib


.DATA?
   hLog      DWORD    ?
   WClass    WNDCLASS <>
   Place     SIGN     MAX_PATH+80 DUP (?)

.CODE
   TEXT      zTitle,  <VxDCall Monitor/0>
   TEXT      zPress,  <Press OK to stop VxDCall monitoring./0>
   TEXT      LogName, <vxdcall.log/0>      
   TEXT      VxDCallDll, <VXDCALL.dll/0>
;   TEXT      ApiHooks,   <ApiHooks.exe/0>
   TEXT      RegHwnd, <RegHwnd/0>      
   TEXT      LogTmpl, <Process /#0.8X: VxDCall /#0.8X returns to /#0.8X./nMain module = /#s./nParameters in C order: /#0.8X /#0.8X /#0.8X /#0.8X./n/n/0>

 PrimaryThread:
   MOV       EAX, DS
   TEST      AL,  100B
   JE        Exit      ;NT? -> exit

   iWin32    GetCurrentProcessId
   iWin32    EstablishApiHooksA, sVxDCallDll, EAX
   TEST      EAX, EAX
   JNE       Exit
   iWin32i   GetModuleHandle, sVxDCallDll
   TEST      EAX, EAX
   JE        Exit
   iWin32    GetProcAddress, EAX, sRegHwnd
   TEST      EAX, EAX
   JE        Exit
   MOV       EDI, EAX
   iWin32i   CreateFile, sLogName, GENERIC_WRITE, FILE_SHARE_READ,\
                          NULL, CREATE_ALWAYS, NULL, NULL
   MOV       hLog, EAX
   INC       EAX
   JE        Exit

   iWin32i   GetModuleHandle, NULL
   MOV       WClass.lpfnWndProc, OFFSET WndProc
   MOV       EBX, EAX
   MOV       WClass.lpszClassName, sRegHwnd
   MOV       WClass.hInstance, EAX
   iWin32i   RegisterClass, OFFSET WClass
   PUSH      EAX
   iWin32i   CreateWindowEx, 0, sRegHwnd, 0, 0, 0, 0, 0, 0, 0, 0, EBX, ESP
   POP       ECX 
   sWin32    EDI, EAX

   iWin32i   MessageBox, NULL, szPress, szTitle, MB_OK
   sWin32    EDI, 0
   iWin32    CloseHandle, hLog
  Exit:
   iWin32    ExitProcess, STATUS_SUCCESS

  WndProc    PROC
   CMP       DWORD PTR [ESP+8], WM_COPYDATA
   JNE       @F
   PUSH      EBX
   MOV       EAX, [ESP+20]
   MOV       EBX, OFFSET Place
   MOV       EAX, (COPYDATASTRUCT PTR [EAX]).lpData
   LEA       ECX, [EAX+28]
   icWin32i  wsprintf, EBX, sLogTmpl, [EAX], [EAX+4], [EAX+8], ECX, [EAX+12], [EAX+16], [EAX+20], [EAX+24]
   PUSH      EAX
   MOV       ECX, ESP
   iWin32    WriteFile, hLog, EBX, EAX, ECX, NULL
   POP       EAX
   POP       EBX
  @@:
   MOV       EAX, TRUE
   RET       16
  WndProc    ENDP

END PrimaryThread

:translate
@echo off
ML   /c /coff /nologo VxDCall.bat
LINK VxDCall /nologo /ALIGN:0X1000 /SUBSYSTEM:WINDOWS /RELEASE /MERGE:.rdata=.text /IGNORE:4108,4078
DEL  VxDCall.obj

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -