📄 vxd-c6.htm
字号:
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> DISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _IDATA</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'ICODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> DISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _PTEXT</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'PCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> NONDISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _PMSGTABLE</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:7.5pt;
font-family:黑体'> CLASS 'MCODE'</span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> NONDISCARDABLE IOPL</span></b></tt><span
lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _PMSGDATA</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> CLASS 'MCODE'</span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> NONDISCARDABLE IOPL</span></b></tt><span
lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _PDATA</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'PDATA'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> NONDISCARDABLE SHARED</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _STEXT</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'SCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> RESIDENT</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _SDATA</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'SCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> RESIDENT</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _DBOSTART</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> CLASS 'DBOCODE'</span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE
CONFORMING</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _DBOCODE</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:黑体'> CLASS 'DBOCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:7.5pt;
font-family:黑体'> PRELOAD NONDISCARDABLE CONFORMING</span></b></tt><span
lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _DBODATA</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:黑体'> CLASS 'DBOCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:7.5pt;
font-family:黑体'> PRELOAD NONDISCARDABLE CONFORMING</span></b></tt><span
lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _16ICODE</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:黑体'> CLASS '16ICODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:7.5pt;
font-family:黑体'> PRELOAD DISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _RCODE</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'RCODE'</span></b></tt><span
lang=EN-US> </span></p>
<p style='margin-right:36.0pt;margin-left:36.0pt'><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:黑体'>EXPORTS</span></b></tt><span lang=EN-US>
<br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> DYNAVXD_DDB</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:7.5pt;
font-family:黑体'> @1</span></b></tt></p>
<h3><span style='font-size:13.5pt;mso-bidi-font-size:16.0pt;font-family:宋体;
mso-ascii-font-family:Arial;mso-hansi-font-family:Arial;color:#66FFFF'>完整例子:</span><span
lang=EN-US style='font-size:13.5pt;mso-bidi-font-size:16.0pt'><o:p></o:p></span></h3>
<p class=MsoNormal><span style='mso-bidi-font-size:10.0pt;font-family:宋体;
mso-ascii-font-family:Arial;mso-hansi-font-family:Arial'>下面是一段加载动态</span><span
lang=EN-US style='mso-bidi-font-size:10.0pt;font-family:Arial'>VxD</span><span
style='mso-bidi-font-size:10.0pt;font-family:宋体;mso-ascii-font-family:Arial;
mso-hansi-font-family:Arial'>并且通过</span><span lang=EN-US style='mso-bidi-font-size:
10.0pt;font-family:Arial'>DeviceIoControl API </span><span style='mso-bidi-font-size:
10.0pt;font-family:宋体;mso-ascii-font-family:Arial;mso-hansi-font-family:Arial'>来调用</span><span
lang=EN-US style='mso-bidi-font-size:10.0pt;font-family:Arial'>VxD</span><span
style='mso-bidi-font-size:10.0pt;font-family:宋体;mso-ascii-font-family:Arial;
mso-hansi-font-family:Arial'>内部函数的</span><span lang=EN-US style='mso-bidi-font-size:
10.0pt;font-family:Arial'>Win32</span><span style='mso-bidi-font-size:10.0pt;
font-family:宋体;mso-ascii-font-family:Arial;mso-hansi-font-family:Arial'>应用程序的源代码。</span><span
lang=EN-US style='mso-bidi-font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p>
<p><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>; VxDLoader.asm</span><span
lang=EN-US> </span></p>
<p class=MsoNormal style='margin-right:36.0pt;mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;margin-left:36.0pt'><b><span lang=EN-US
style='font-size:10.0pt;font-family:Arial'>.386</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>.model
flat,stdcall</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>include
windows.inc</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>include
kernel32.inc</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>includelib
kernel32.lib</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>include
user32.inc</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>includelib
user32.lib</span></b><span lang=EN-US> </span></p>
<p style='margin-right:36.0pt;margin-left:36.0pt'><b><span lang=EN-US
style='font-size:10.0pt;font-family:Arial'>.data</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
AppName db "DeviceIoControl",0</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
VxDName db "\\.\shellmsg.vxd",0</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
Success db "The VxD is successfully loaded!",0</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
Failure db "The VxD is not loaded!",0</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
Unload db "The VxD is now unloaded!",0</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
MsgTitle db "DeviceIoControl Example",0</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
MsgText db "I'm called from a VxD!",0</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
InBuffer dd offset MsgTitle</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
dd offset MsgText</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>.data?</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
hVxD dd ?</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>.code</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>start:</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
invoke CreateFile,addr VxDName,0,0,0,0,FILE_FLAG_DELETE_ON_CLOSE,0</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
.if eax!=INVALID_HANDLE_VALUE</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
mov hVxD,eax</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
invoke MessageBox,NULL,addr Success,addr AppName,MB_OK+MB_ICONINFORMATION</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
invoke DeviceIoControl,hVxD,1,addr InBuffer,8,NULL,NULL,NULL,NULL</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
invoke CloseHandle,hVxD</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-si
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -