談?wù)勅齻€(gè)關(guān)于VB.NET函數(shù)
VB.NET還是比較常用的,于是我研究了一下VB.NET函數(shù),在這里拿出來和大家分享一下,希望對大家有用。Visual Basic(以下簡稱VB)可以說是可視化語言的先驅(qū)了,而且它也是可視化程度最高的一個(gè),從幾年前VB誕生之日起到現(xiàn)在,它已經(jīng)經(jīng)歷了五個(gè)版本,而且現(xiàn)在微軟正在緊張的進(jìn)行著VB6.0的研制、測試,這么高的更新率,不外乎說明兩個(gè)問題:用戶對VB的熱衷,微軟對VB的重視。
#T#不可否認(rèn)微軟對市場的預(yù)測能力是極為高明的,而它強(qiáng)大的技術(shù)、財(cái)力支持也使它在許多以前未進(jìn)入的領(lǐng)域,在不長的時(shí)間內(nèi)有成為最有力的競爭對手,如IE之于瀏覽器領(lǐng)域,《帝國時(shí)代》之于游戲都是最好的例證。對于VB現(xiàn)在也有一個(gè)很強(qiáng)的競爭對手――Delphi,有人把它稱作VB殺手,這顯然有偏激之處,VB的確有它的不足之處,但 Delphi又何嘗不是呢,而且以微軟對VB的傾心,VB的功能必然會(huì)越來越強(qiáng)大。
幾個(gè)常用VB.NET函數(shù)簡解:
1、VB.NET函數(shù) __vbavartstne
如是在VB5中CALL MSVBVM50!___vbavartstne進(jìn)去后在0F04E351你將看到:
- push dword ptr [ebp+0c] ;Push address *真* serial 的地址
- push dword ptr [ebp+10] ;Push address 你輸入的serial地址
下命令:d ebp+0c你將在數(shù)據(jù)窗口看到 4字節(jié)地址倒序排列,你再次D 地址(己糾正順序的), 就可看到序列號了。
2、VB.NET函數(shù) __vbaR8Str
在 VB5中是如下情況:
- Push ebp-20
- Call MSVBUM50.__vbaR8Str ;轉(zhuǎn)換 string 到 Integer/Real
- fcomp qword ptr [00401028] ;數(shù)據(jù)比較
在這行fcomp qword ptr [00401028] Type: DL 00401028 將看到*real* serial #.DL 是顯示 Long/real 型,SOFTICE默認(rèn)時(shí)是DB狀態(tài)。
3、 VB.NET函數(shù)__vbastrcmp
例:
- :005BDC32 CALL [MSVBVM50!__VbaFreeVar]
- :005BDC38 MOV ESI,[EBP+08]
- :005BDC3B PUSH ESI
- :005BDC3E CALL [ECX+00000790] <-- 值返回到 EDX.
- :005BDC44 MOV EDX,[ESI+4C] <-- 輸入的號碼,但倒轉(zhuǎn)
- :005BDC47 MOV EAX,[005E0078] <-- 正確號碼
- :005BDC4C PUSH EDX
- :005BDC4D PUSH EAX <-- Push參數(shù)給 __vbaStrCmp.
- :005BDC4E CALL [MSVBVM50!__vbaStrCmp] <-- Visual Basic 字符串比較
- :005BDC54 TEST EAX,EAX <-- 測試比較結(jié)果
- :005BDC56 JNZ 005BDC64 <-- 不相等跳走