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

📄 vxd-c5.htm

📁 汇编语言编写的虚拟驱动程序
💻 HTM
📖 第 1 页 / 共 2 页
字号:
  OnVMCreate</FONT></FONT></FONT></B> <BR><B><FONT face=Arial,Helvetica><FONT 
  size=-1><FONT color=#cccccc>&nbsp;&nbsp;&nbsp; mov ecx, </FONT><FONT 
  color=#ffcc33>OFFSET32</FONT><FONT color=#cccccc> 
  VMCreated</FONT></FONT></FONT></B> <BR><B><FONT face=Arial,Helvetica><FONT 
  color=#cccccc><FONT size=-1>CommonCode:</FONT></FONT></FONT></B> <BR><B><FONT 
  face=Arial,Helvetica><FONT size=-1><FONT color=#ffcc33>&nbsp;&nbsp;&nbsp; 
  VMMCall </FONT><FONT color=#cccccc>Get_sys_vm_handle</FONT></FONT></FONT></B> 
  <BR><B><FONT face=Arial,Helvetica><FONT color=#cccccc><FONT 
  size=-1>&nbsp;&nbsp;&nbsp; mov 
  eax,MB_OK+MB_ICONEXCLAMATION</FONT></FONT></FONT></B> <BR><B><FONT 
  face=Arial,Helvetica><FONT size=-1><FONT color=#cccccc>&nbsp;&nbsp;&nbsp; mov 
  edi, </FONT><FONT color=#ffcc33>OFFSET32 </FONT><FONT 
  color=#cccccc>MsgTitle</FONT></FONT></FONT></B> <BR><B><FONT 
  face=Arial,Helvetica><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; xor 
  esi,esi</FONT></FONT></FONT></B> <BR><B><FONT face=Arial,Helvetica><FONT 
  color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; xor 
  edx,edx</FONT></FONT></FONT></B> <BR><B><FONT face=Arial,Helvetica><FONT 
  size=-1><FONT color=#cccccc>&nbsp;&nbsp; </FONT><FONT color=#ffcc33>VxDCall 
  </FONT><FONT color=#cccccc>SHELL_Message</FONT></FONT></FONT></B> <BR><B><FONT 
  face=Arial,Helvetica><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  ret</FONT></FONT></FONT></B> <BR><B><FONT face=Arial,Helvetica><FONT 
  size=-1><FONT color=#ffcc33>EndProc </FONT><FONT 
  color=#cccccc>OnVMCreate</FONT></FONT></FONT></B></BLOCKQUOTE><FONT 
face=Arial,Helvetica><FONT size=-1><FONT color=#cccccc>我们用</FONT><B><FONT color=#ffff99>BeginProc</FONT></B><FONT color=#cccccc>和
</FONT><B><FONT color=#ffff99>EndProc</FONT></B><FONT color=#cccccc>宏来创建<B><FONT 
color=#ffff99>OnVMCreate</FONT></B>。OnVMCreate函数把调用</FONT><B><FONT 
color=#ffff99>SHELL_Message</FONT></B><FONT color=#cccccc>服务所需要的参数放到寄存器里面去。因为我们要在系统虚拟机上显示消息框,所以不能使用ebx中的值(ebx包含了在创建的虚拟机的句柄,而我们要的是系统虚拟机的句柄)。于是,我们用另一个VMM服务,</FONT><B><FONT 
color=#ffff99>Get_Sys_VM_Handle</FONT></B><FONT color=#cccccc>来得到系统虚拟机的虚拟机句柄。我们分别把消息的地址和消息框标题的地址放在ecx和edi里面。我们不需要知道客户的反应,所以我们把esi和edx置零。当每个参数都在相应的寄存器内后,我们就调用</FONT><B><FONT 
color=#ffff99> SHELL_Message </FONT></B><FONT color=#cccccc>来显示消息框。</FONT></FONT></FONT> 
<BLOCKQUOTE><B><FONT face=Arial,Helvetica><FONT size=-1><FONT 
  color=#ffcc33>BeginProc </FONT><FONT 
  color=#cccccc>OnVMClose</FONT></FONT></FONT></B> <BR><B><FONT 
  face=Arial,Helvetica><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; mov 
  ecx,OFFSET32 VMDestroyed</FONT></FONT></FONT></B> <BR><B><FONT 
  face=Arial,Helvetica><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; jmp 
  CommonCode</FONT></FONT></FONT></B> <BR><B><FONT face=Arial,Helvetica><FONT 
  size=-1><FONT color=#ffcc33>EndProc</FONT><FONT color=#cccccc> 
  OnVMClose</FONT></FONT></FONT></B></BLOCKQUOTE><FONT face=Arial,Helvetica><FONT 
size=-1><B><FONT color=#ffff99>OnVMClose</FONT></B><FONT color=#cccccc>OnVMClose函数本身是很简单的。因为它要使用的代码和</FONT><B><FONT 
color=#ffff99>OnVMCreate</FONT></B><FONT color=#cccccc>相同,所以它在用另一个消息的地址初始化ecx后,就转到</FONT><B><FONT color=#ffff99>OnVMCreate</FONT></B><FONT 
color=#cccccc>中的代码去了。</FONT></FONT></FONT> 
<H3><FONT face=Arial,Helvetica><FONT color=#66ffff><FONT size=+0>改变定义文件(.def)</FONT></FONT></FONT></H3>
<BLOCKQUOTE><B><TT><FONT color=#cccccc><FONT size=-1>VxD 
  MESSAGE</FONT></FONT></TT></B><TT></TT> 
  <P><B><TT><FONT color=#cccccc><FONT size=-1>SEGMENTS</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _LPTEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 'LCODE'&nbsp;&nbsp;&nbsp; PRELOAD 
  NONDISCARDABLE</FONT></FONT></TT></B> <BR><B><TT><FONT color=#cccccc><FONT 
  size=-1>&nbsp;&nbsp;&nbsp; _LTEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'LCODE'&nbsp;&nbsp;&nbsp; PRELOAD NONDISCARDABLE</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _LDATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 'LCODE'&nbsp;&nbsp;&nbsp; 
  PRELOAD NONDISCARDABLE</FONT></FONT></TT></B> <BR><B><TT><FONT 
  color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _TEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'LCODE'&nbsp;&nbsp;&nbsp; PRELOAD NONDISCARDABLE</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _DATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'LCODE'&nbsp;&nbsp;&nbsp; PRELOAD NONDISCARDABLE</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  CONST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'LCODE'&nbsp;&nbsp;&nbsp; PRELOAD NONDISCARDABLE</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _TLS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'LCODE'&nbsp;&nbsp;&nbsp; PRELOAD NONDISCARDABLE</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _BSS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'LCODE'&nbsp;&nbsp;&nbsp; PRELOAD NONDISCARDABLE</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _LMGTABLE&nbsp;&nbsp;&nbsp; CLASS 'MCODE'&nbsp;&nbsp;&nbsp; PRELOAD 
  NONDISCARDABLE IOPL</FONT></FONT></TT></B> <BR><B><TT><FONT 
  color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; _LMSGDATA&nbsp;&nbsp;&nbsp; 
  CLASS 'MCODE'&nbsp;&nbsp;&nbsp; PRELOAD NONDISCARDABLE 
  IOPL</FONT></FONT></TT></B> <BR><B><TT><FONT color=#cccccc><FONT 
  size=-1>&nbsp;&nbsp;&nbsp; _IMSGTABLE&nbsp;&nbsp; CLASS 
  'MCODE'&nbsp;&nbsp;&nbsp; PRELOAD DISCARDABLE IOPL</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _IMSGDATA&nbsp;&nbsp;&nbsp; CLASS 'MCODE'&nbsp;&nbsp;&nbsp; PRELOAD 
  DISCARDABLE IOPL</FONT></FONT></TT></B> <BR><B><TT><FONT color=#cccccc><FONT 
  size=-1>&nbsp;&nbsp;&nbsp; _ITEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'ICODE'&nbsp;&nbsp;&nbsp; DISCARDABLE</FONT></FONT></TT></B> <BR><B><TT><FONT 
  color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _IDATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 'ICODE'&nbsp;&nbsp;&nbsp; 
  DISCARDABLE</FONT></FONT></TT></B> <BR><B><TT><FONT color=#cccccc><FONT 
  size=-1>&nbsp;&nbsp;&nbsp; _PTEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'PCODE'&nbsp;&nbsp;&nbsp; NONDISCARDABLE</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _PMSGTABLE&nbsp;&nbsp; CLASS 'MCODE'&nbsp;&nbsp;&nbsp; NONDISCARDABLE 
  IOPL</FONT></FONT></TT></B> <BR><B><TT><FONT color=#cccccc><FONT 
  size=-1>&nbsp;&nbsp;&nbsp; _PMSGDATA&nbsp;&nbsp;&nbsp; CLASS 
  'MCODE'&nbsp;&nbsp;&nbsp; NONDISCARDABLE IOPL</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _PDATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 'PDATA'&nbsp;&nbsp;&nbsp; 
  NONDISCARDABLE SHARED</FONT></FONT></TT></B> <BR><B><TT><FONT 
  color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _STEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 'SCODE'&nbsp;&nbsp;&nbsp; 
  RESIDENT</FONT></FONT></TT></B> <BR><B><TT><FONT color=#cccccc><FONT 
  size=-1>&nbsp;&nbsp;&nbsp; _SDATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'SCODE'&nbsp;&nbsp;&nbsp; RESIDENT</FONT></FONT></TT></B> <BR><B><TT><FONT 
  color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; _DBOSTART&nbsp;&nbsp;&nbsp; 
  CLASS 'DBOCODE'&nbsp; PRELOAD NONDISCARDABLE CONFORMING</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _DBOCODE&nbsp;&nbsp;&nbsp;&nbsp; CLASS 'DBOCODE'&nbsp; PRELOAD NONDISCARDABLE 
  CONFORMING</FONT></FONT></TT></B> <BR><B><TT><FONT color=#cccccc><FONT 
  size=-1>&nbsp;&nbsp;&nbsp; _DBODATA&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'DBOCODE'&nbsp; PRELOAD NONDISCARDABLE CONFORMING</FONT></FONT></TT></B> 
  <BR><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  _16ICODE&nbsp;&nbsp;&nbsp;&nbsp; CLASS '16ICODE'&nbsp; PRELOAD 
  DISCARDABLE</FONT></FONT></TT></B> <BR><B><TT><FONT color=#cccccc><FONT 
  size=-1>&nbsp;&nbsp;&nbsp; _RCODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLASS 
  'RCODE'</FONT></FONT></TT></B><TT></TT> 
  <P><B><TT><FONT color=#cccccc><FONT 
  size=-1>EXPORTS</FONT></FONT></TT></B><TT></TT> 
  <P><B><TT><FONT color=#cccccc><FONT size=-1>&nbsp;&nbsp;&nbsp; 
  MESSAGE_DDB&nbsp; @1</FONT></FONT></TT></B></P></BLOCKQUOTE>
<H3><FONT face=Arial,Helvetica><FONT color=#66ffff><FONT size=+0>汇编过程:</FONT></FONT></FONT></H3><B><FONT face=Arial,Helvetica><FONT 
color=#cccccc><FONT size=-1>&nbsp;ml -coff -c -Cx&nbsp; -DMASM6 -DBLD_COFF 
-DIS_32 message.asm</FONT></FONT></FONT></B> 
<P><B><FONT face=Arial,Helvetica><FONT color=#cccccc><FONT size=-1>&nbsp;link 
-VxD -def:message.def message.obj</FONT></FONT></FONT></B> 
<H3><FONT face=Arial,Helvetica><FONT color=#66ffff><FONT size=+0>VxD 的安装: 
  <LI><FONT face=Arial,Helvetica><FONT color=#cccccc><FONT size=-1>把message.VxD放到\system目录下。</FONT></FONT></FONT> 
  <LI><FONT face=Arial,Helvetica><FONT color=#cccccc><FONT size=-1>在system.ini文件里的[386enh]部分里加上如下的一行:</FONT></FONT></FONT> 
    <OL>
      <FONT face=Arial,Helvetica><FONT color=#cccccc><FONT 
    size=-1>device=message.VxD</FONT></FONT></FONT>
    </OL>
  <LI><FONT face=Arial,Helvetica><FONT color=#cccccc><FONT size=-1>重启你的计算机。</FONT></FONT></FONT> 
  </LI>
  <H3><FONT face=Arial,Helvetica><FONT color=#66ffff><FONT size=+0>测试这个VxD:</FONT></FONT></FONT></H3>
  <FONT face=Arial,Helvetica><FONT 
color=#cccccc><FONT size=-1>打开一dos窗口,你会看到弹出的消息框,显示“A VM is created."。当你关闭一个dos窗口,又会弹出一个消息框显示“A 
  VM is destroyed"。</FONT></FONT></FONT> <BR>
  </font></font></font></h3>
<hr size="1">
<div align="center"> 
  <script language="JavaScript1.1" src=http://ad.t2t2.com/textclick.asp?user=bigluo&style=4&bkcolor=no></script>
  <br>
</div>
<!-- 10:1 文本广告交换 --> 
<div align="center"> 
  <script language="JavaScript1.1" src=http://coolsite21.com:90/c21.dll?Type=PT&id=1047&col=6&ReferID=1047&v=0></script>
  <!-- 10:1 文本广告交换 --> </div>
<hr size="1">
<br>
<div align="center"> 由 Ryo 翻译,发表于 <a href="http://asm.yeah.net">http://asm.yeah.net</a>,英文版本来自 
  [<a href="http://win32asm.cjb.net/">Iczelion's Win32 Assembly Homepage</a>] 
</div>
</BODY></HTML>

⌨️ 快捷键说明

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