1、active dll
通過createobject(class)建立:
dim ws
set ws = createobject("wscript.shell")
ws.run "notepad.exe"
getobject([pathname] [, class])
引數pathname
可選項。字串,包含待檢索物件的檔案的完整路徑和名稱。如果省略 pathname 則必須有 class。
class
可選項。字串,物件的類。
引數必選項。字串,提供物件的應用程式名稱。
objectype
必選項。字串,要建立的物件的型別或類。
strcomputer = "."
set objwmiservice = getobject("winmgmts:\\" & strcomputer & "\root\cimv2")
set cpu =objwmiservice.execquery("select * from win32_processor")
for each item in cpu
cpu2=cpu2&"cpu:" & item.name
next
msgbox cpu2
2、win api dll
extern.declare(rettype, methodname, libname, alias [, argtype(s)])
引數說明:
rettype: 方法返回值的型別。
methodname:呼叫dll檔案中的某個方法的方法名。
libname: dll檔名。
alias: 別名,當別名為空時,方法名和別名一樣(此引數通常為空)。
argtype(s): 傳入的引數。
extern.declare miclong, "winexec", "kernel32.dll", "winexec", micstring,miclong
extern.winexec "c\test.exe ", test
3、.net api dll
dotnetfactory.createinstance(typename [,assembly] [,args])
typename 其實就是命名空間+class名
assembly 其實就是程式集位址,可以本地路徑,也可以是.net命名空間
args 其實就是class例項時建構函式的引數值
set mymsgbox = dotnetfactory.createinstance("system.windows.forms.messagebox","system.windows.forms")
mymsgbox.show "hello world ", "my custom message box"
set mymsgbox1 = dotnetfactory.createinstance("system.windows.forms.messagebox","d:\definedll.dll","title")
mymsgbox1.show "hello world ", "my custom message box"
ps:其中第1種和第3種都可以自定義dll來擴充,其中自定義第一種active dll後在使用前需要在系統中註冊一下【regsvr32 dllname】
QTP引用外部dll的3種方法
1 active dll 通過createobject class 建立 dim ws set ws createobject wscript.shell ws.run notepad.exe getobject pathname class 引數pathname 可選項。字串,包含待檢索物件的檔案...
C List引用型別轉殖的3種方法
前言 有時候我們想轉殖乙個list去做別程式設計客棧的事,而不影響原來的list,我們直接在list後面加上小點點,發現並沒有clone這樣的擴充套件函式。這時候就只有自己擴充套件了。嘗試了三種方式,測試都通過了,至於效能方面我還沒有做測試。下面話不多說了,來一起看看詳細的介紹吧 一 反射 publ...
DLL劫持,注入DLL的一種方法
先轉一篇文章 1.dll劫持,粗略整理了下,可以劫持的dll有 持續更新 lpk.dll usp10.dll msimg32.dll midimap.dll ksuser.dll comres.dll ddraw.dll 以lpk為例,在win7下由於lpk被加入knowndlls且該登錄檔值不可修...