vbÔÚµ÷ÓÃAPIµÄÒ»¸öBug¿ÉÄܵ¼ÖÂÄÚ´æÐ¹Â¶
ÆäʵÕâ¸öÎÊÌâÎÒºÜÔçºÜÔçÒÔǰ¾Í·¢ÏÖÁË£¬Ö»ÊÇһֱûÁôÒ⣬Ҳ²»ÔÚÒâ¡£½ñÌìÎÞÒâÖÐÓÖÓÃVBдÁËÒ»¸ö³ÌÐòÈ«²¿Ê¹ÓÃNTDLLµ¼³öº¯Êý±àд£¬ÓÖ³öÏÖÁËÕâÑùµÄÇé¿ö£¬ÕâÑù¾ÍÓɲ»µÃÎÒ²»×¢ÒâÁË£¬¾¹ýÎҵķ´¸´²âÊÔÒÔ¼°·´»ã±àÑéÖ¤£¬Ö¤ÊµÁËvb6_sp6ÔÚµ÷ÓÃijЩAPI(²âÊÔµÄÓ¦¸ÃÓкܶàAPI´æÔÚÕâÑùµÄÎÊÌâ)´æÔÚÄÚ´æÐ¹Â¶ÎÊÌâ»òÕßÊǺ¯Êýµ÷ÓÃʧ°Ü¡£Çë´ó¼ÒÏÈ¿´ÎÒдµÄ¼òµ¥Á½¶Î´úÂë¡£
´úÂëÒ»£º
Option Explicit
Private Const MEM_RELEASE = &H8000
Private Const MEM_COMMIT = &H1000
Private Const PAGE_EXECUTE_READWRITE = &H40
Private Declare Function VirtualAlloc Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualFree Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Private Sub Code1()
Dim Base As Long
Base = VirtualAlloc(ByVal 0&, 100, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
If Base Then
MsgBox Hex(Base)
MsgBox VirtualFree(ByVal Base, 0, MEM_RELEASE)
MsgBox Hex(GetLastError)
End If
End Sub
Õâ¶Î´úÂëÊÇÉêÇëÒ»¶ÎÄڴ棬ȻºóÂíÉÏÊÍ·ÅËü£¬´úÂëûʲôÄÑÒÔÀí½âµÄ·Ç³£¼òµ¥¡£´ó¼Ò×Ðϸ¿´´úÂëÉϺÃÏñÒ²²»´æÔÚÓÐʲôÎÊÌ⣬ÄÇôÎÊÌâÔÚʲôµØ·½ÄØ£¿
ÎÒÒ»¾äÒ»¾äÀ´½âÎöÊ×ÏÈ“Base = VirtualAlloc(ByVal 0&, 100, MEM_COMMIT, PAGE_EXECUTE_READWRITE)”
ÕâÐдúÂëÉêÇëÁËÒ»¶Î³¤100×Ö½ÚµÄÄÚ´æ¸ú×Ù½á¹û³É¹¦ÉêÇëÁ˵óöijµØÖ·£¬È»ºóÎÒÓÃmsgbox°ÑµØÖ·ÏÔʾ³öÀ´
ÕâʱÕâ¶ÎµØÖ·ÊÇ¿ÉÓõ쬴ó¼Ò¿ÉÒÔʹÓÃһЩÄÚ´æ²ì¿´±à¼¹¤¾ß£¬±ÈÈç±ùÈÐÖ®ÀàµÄ¡£È»ºóµ÷ÓÓVirtualFree ByVal Base, 0, MEM_RELEASE"ÊÍ·ÅÄڴ棬ʧ°ÜÁË¡£ÎÒ¼ì²éÁ˺ܾòÎÊýºÍAPIÉùÃ÷¾ùû·¢ÏÖÓÐʲôÎÊÌâÄÇôÎÊÌâ³öÔÚʲôµØ·½ÄØ£¿ÎªÁËÇóÖ¤ÎÒдÁË´úÂë¶þ£¬Ò²¾ÍÊÇ´úÂëÒ»×îÖÕÔÚRing3²ãµ÷ÓõÄAPIº¯Êý
´úÂë¶þ£º
Option Explicit
Private Const MEM_RELEASE = &H8000
Private Const MEM_COMMIT = &H1000
Private Const PAGE_EXECUTE_READWRITE = &H40
Private Declare Function Vi
Ïà¹ØÎĵµ£º
¡¡¡¡Èç½ñOCX¿Ø¼þÔÚ±à³ÌÖÐÒÑÕ¼ÁìÁ˺ÜÖØÒªµÄµØÎ»,ÎÒÃÇ¿ÉÒÔÀûÓÃOCX¿Ø¼þÍê³ÉһЩÏ൱¸´Ôӵıà³Ì²Ù×÷.ͬʱOCX ¿Ø¼þ»¹ÓÐÀûÓÚÖ÷³ÌÐòµÄ¼òµ¥»¯¡¢¹¦ÄܵÄÖØÓá¢Òþ³£³ÌÐòʵÏÖϸ½Ú¡¢±ãÓÚÉý¼¶¡¢´«²¥·½±ãµÈÓŵ㡣ÏÖÔÚÎÒÃÇ¿ÉÒÔÀûÓÃVB 5.0·½±ãµÄÖÆ×÷³ö×Ô¼ºµÄOCX¿Ø¼þ¹©ÎÒÃÇÔÚ±à³ÌÖÐʹÓÃͬʱ»¹¿ÉÒÔ°ÑËüË͸øÄãÖÜΧϲ»¶±à³ÌµÄÅóÓÑ!
ÏÂÃæÁгöÖÆ× ......
ÌâÄ¿£ºÒ»¼ÒСÐͺ½¿Õ¹«Ë¾¸Õ¸Õ¹ºÂòÁËһ̨¼ÆËã»ú£¬ÒÔʹÓÃеĻúƱ×Ô¶¯Ô¤¶©ÏµÍ³£¬Õâ¼Ò¹«Ë¾ÒªÇóÎÒÃÇ¿ª·¢Õâ¸öÐÂϵͳ¡£ÎÒÃÇÐèÒª±àдһ¸öÓ¦ÓóÌÐò£¬¶ÔÕâ¼Òº½¿Õ¹«Ë¾Î¨Ò»µÄÒ»¼Ü·É»ú£¨ÈÝÁ¿Îª10¸ö×ù룩µÄÿ¸öº½°à·ÖÅä×ùλ¡£Õâ¸öÓ¦ÓóÌÐòÓ¦¸ÃÊäÈëÏÂÃæÕâЩѡÏÇëÊäÈë1Ñ¡ÔñÍ·µÈ²ÕºÍÇëÊäÈë2Ñ¡Ôñ¾¼Ã²Õ¡£Èç¹ûÓû§ÊäÈë1£¬Ó¦ÓóÌÐòÓ¦¸Ã·ÖÅäÒ ......
±¨¸æÊé
Ãû³Æ
ʵÑé10-1 ʵÏÖ¼ÆËãÆ÷µÄ¹¦ÄÜ
ÐÕÃû
Ö¸µ¼½Ìʦ
ѧºÅ
ÈÕÆÚ
ÈÎÎñÇåµ¥
ÔÚ±¾Á·Ï°ÖУ¬Ä㽫ʹ»æÖƵļÆËãÆ÷Íê³É¼òµ¥µÄËÄÔòÔËËã¡£
1) Æô¶¯Visual Studio 2005¡£
2) н¨Ò»¸öVB WindowsÓ ......
http://blog.csdn.net/cw198624/archive/2009/02/19/3911759.aspx
Ìí¼ÓÒ»¸öListBoxºÍÒ»¸ö°´Å¥
Option Explicit
Private Declare Function CloseHandle Lib "kernel32" (ByVal Handle As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As L ......
Óɵ×ÖÁÉÏÊÇ£º
• ÍйÜ×ÊÔ´
• WMI »ù´¡½á¹¹
• ʹÓÃÕß
ÍйÜ×ÊÔ´
ÍйÜ×ÊÔ´ÊÇÈÎÒâÂß¼»òÎïÀí×é¼þ£¬Í¨¹ýʹÓà WMI ½øÐй«¿ªºÍ¹ÜÀí¡£¿ÉÒÔʹÓà WMI ¹ÜÀíµ ......