VB.NET还是比较常用的,于是我研究了一下VB.NET函数,在这里拿出来和大家分享一下,希望对大家有用。Visual Basic(以下简称VB)可以说是可视化语言的先驱了,而且它也是可视化程度最高的一个,从几年前VB诞生之日起到现在,它已经经历了五个版本,而且现在微软正在紧张的进行着VB6.0的研制、测试,这么高的更新率,不外乎说明两个问题:用户对VB的热衷,微软对VB的重视。
#T#不可否认微软对市场的预测能力是极为高明的,而它强大的技术、财力支持也使它在许多以前未进入的领域,在不长的时间内有成为最有力的竞争对手,如IE之于浏览器领域,《帝国时代》之于游戏都是最好的例证。对于VB现在也有一个很强的竞争对手――Delphi,有人把它称作VB杀手,这显然有偏激之处,VB的确有它的不足之处,但 Delphi又何尝不是呢,而且以微软对VB的倾心,VB的功能必然会越来越强大。
几个常用VB.NET函数简解:
1、VB.NET函数 __vbavartstne
如是在VB5中CALL MSVBVM50!___vbavartstne进去后在0F04E351你将看到:
- push dword ptr [ebp+0c] ;Push address *真* serial 的地址
- push dword ptr [ebp+10] ;Push address 你输入的serial地址
下命令:d ebp+0c你将在数据窗口看到 4字节地址倒序排列,你再次D 地址(己纠正顺序的), 就可看到序列号了。
2、VB.NET函数 __vbaR8Str
在 VB5中是如下情况:
- Push ebp-20
- Call MSVBUM50.__vbaR8Str ;转换 string 到 Integer/Real
- fcomp qword ptr [00401028] ;数据比较
在这行fcomp qword ptr [00401028] Type: DL 00401028 将看到*real* serial #.DL 是显示 Long/real 型,SOFTICE默认时是DB状态。
3、 VB.NET函数__vbastrcmp
例:
- :005BDC32 CALL [MSVBVM50!__VbaFreeVar]
- :005BDC38 MOV ESI,[EBP+08]
- :005BDC3B PUSH ESI
- :005BDC3E CALL [ECX+00000790] <-- 值返回到 EDX.
- :005BDC44 MOV EDX,[ESI+4C] <-- 输入的号码,但倒转
- :005BDC47 MOV EAX,[005E0078] <-- 正确号码
- :005BDC4C PUSH EDX
- :005BDC4D PUSH EAX <-- Push参数给 __vbaStrCmp.
- :005BDC4E CALL [MSVBVM50!__vbaStrCmp] <-- Visual Basic 字符串比较
- :005BDC54 TEST EAX,EAX <-- 测试比较结果
- :005BDC56 JNZ 005BDC64 <-- 不相等跳走