VB函数破解常用函数
VB中的常用函数
VB中的常用函数1 VB中常用的函数和语句一、Val 函数返回包含于字符串内的数字,字符串中是一个适当类型的数值。
语法Val(string)必要的string 参数可以是任何有效的字符串表达式.说明Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。
那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。
但是函数可以识别进位制符号&O (八进制)和&H(十六进制)。
空白、制表符和换行符都从参数中被去掉。
下面的返回值为1615198:Val(" 1615 198th Street N.E.")在下面的代码中,Val 为所示的十六进制数值返回十进制数值-1。
Val("&HFFFF")注意Val 函数只会将句点(.)当成一个可用的小数点分隔符。
当使用不同的小数点分隔符时,如在国际版应用程序中,代之以CDbl 来把字符串转换为数字。
'=====================================Val 函数示例本示例使用Val 函数返回字符串中所含的数值。
Dim MyValueMyValue = Val("2457") ' 返回2457。
MyValue = Val(" 2 45 7") ' 返回2457。
MyValue = Val("24 and 57") ' 返回24。
参考资料:MSDN VB参考二、Str 函数返回代表一数值的Variant (String)。
语法Str(number)必要的number 参数为一Long,其中可包含任何有效的数值表达式。
说明当一数字转成字符串时,总会在前头保留一空位来表示正负。
如果number 为正,返回的字符串包含一前导空格暗示有一正号。
使用Format 函数可将数值转成必要的格式,如日期、时间、货币或其他用户自定义格式。
VB常用函数(很全)
Abs 函数返回数的绝对值。
And 运算符执行两个表达式的逻辑连接。
Array 函数返回含一数组的变体。
Asc 函数返回字符串首字母的ANSI 字符代码。
赋值运算符(=) 给变量或属性赋值。
Atn 函数返回数的反正切值。
调用语句将控制移交Sub 或Function 过程。
CBool 函数返回已被转换为Boolean 子类型的变体的表达式。
CByte 函数返回已被转换为字节子类型的变体的表达式。
CCur 函数返回已被转换为货币子类型的变体的表达式。
CDate 函数返回已被转换为日期子类型的变体的表达式。
CDbl 函数返回已被转换为双精度子类型的变体的表达式。
Chr 函数返回指定ANSI 字符码的字符。
CInt 函数返回已被转换为整数子类型的变体的表达式。
Class 对象提供对已创建的类的事件的访问。
Class 语句声明类名Clear 方法清除Err 对象的所有属性设置。
CLng 函数返回已被转换为Long 子类型的变体的表达式。
颜色常数颜色常数列表。
比较常数用于比较运算的常数列表。
连接运算符(&) 强制两个表达式的字符串连接。
Const 语句声明用于字母值的常数。
Cos 函数返回角度的余弦值。
CreateObject 函数创建并返回对“自动”对象的引用。
CSng 函数返回已被转换为单精度子类型的变体的表达式。
CStr 函数返回已被转换为字符串子类型的变体的表达式。
日期和时间常数在日期和时间运算中用来定义星期几和其他常数的常数列表。
日期格式常数用于日期和时间格式的常数列表。
Date 函数返回当前系统日期。
DateAdd 函数返回加上了指定的时间间隔的日期。
DateDiff 函数返回两个日期之间的间隔。
DatePart 函数返回给定日期的指定部分。
DateSerial 函数返回指定年月日的日期子类型的变体。
DateValue 函数返回日期子类型的变体。
Day 函数返回日期,取值范围为1 至31。
vb常用函数一览表
v b常用函数一览表(总3页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除常用内部函数数学函数函数功能示例结果说明Abs(x)绝对值Abs(-50.3)50.3Exp(x) 自然指数Exp(2) e*e e(自然对数的底)的某次方Fix(x) 取整(取参数的整数部分)Fix(-99.8) -99Int(x)取整(取小于或等于参数的最大整数)Int(-99.8)Int(99.8)-10099Log(x) 常用对数Log(1) 0 求自然对数值Rnd 随机产生0~1的单精度值Int(6*Rnd)+11~6要产生一个从Min到Max的整数,应使用公式Int((Max-Min+1)*Rnd+Min)Round(x,n)按小数位数四舍五入Round(3.14159,3) 3.142第2个参数为小数位数Sgn(x) 取参数的符号值Sgn(8.8)Sgn(-8.8)Sgn(0) 1-10 参数大于0,返回1参数小于0,返回-1参数等于0,返回0Sin(x) 正弦 1三角函数以“弧度”为单位Cos(x) 余弦/180*180) -1Atn(x) 计算反正切Atn(1) 0.7854Tan(x) 计算正切 1Sqr(x) 算术平方根Sqr(9) 3 相当于字符串函数函数功能示例结果说明Len(x)求字符串的长度(字符个数)Len("Vb技术")4LenB(x) 求字符串的字节个数LenB("Vb技术") 8 VB中采用Unicode(ISO 字符标准)来存储字符,所有字符都占2个字节Mid(x,n1,n2)从x字符串左边第n1个位置开始向右取n2个字符Mid("Vb技术",2,2)"b技"。
vb语言破解方法
vb语言破解方法VB语言是一种基于基本的编程语言,被广泛应用于Windows平台的软件开发。
然而,由于VB语言的特性和易学性,一些人可能会滥用它来进行非法的活动,例如破解软件。
在本文中,我们将介绍一些常见的VB语言破解方法,并提供一些拓展内容来帮助读者更好地了解这个领域。
1. 反编译:反编译是一种常见的VB语言破解方法。
通过使用反编译工具,人们可以将已编译的VB代码还原为可读的源代码,从而获取软件的源代码。
这可以让黑客分析和修改软件,破解其功能限制或添加恶意代码。
2. 调试:调试是另一种常见的VB语言破解方法。
通过使用调试器工具,黑客可以在运行时检查和修改软件的内存和变量。
这使他们能够绕过软件的授权检查或其他安全机制,从而使用软件的功能。
3. 注册机:注册机是一种常见的VB语言破解工具。
黑客可以使用注册机生成合法的序列号或注册密钥,从而绕过软件的授权检查。
这样,他们就可以免费使用软件的全部功能,而不需要购买正版软件。
4. 拦截函数:黑客可以通过拦截函数来破解VB语言编写的软件。
他们可以修改或替换软件的关键函数,以实现他们想要的功能。
这种方法需要对VB语言的内部原理有一定的了解,并且可能需要对软件进行二进制分析。
拓展内容:除了上述提到的常见破解方法,还有其他一些可能的VB语言破解技术。
例如,黑客可以使用虚拟机或调试器来监视和修改软件的执行过程。
他们还可以使用代码注入或代码替换技术来修改软件的逻辑,实现他们自己的目的。
然而,虽然这些破解方法在某些情况下可能是有效的,但它们都是非法行为,并且违反了软件的许可协议和版权法。
因此,我们强烈建议用户不要参与任何形式的软件破解活动,以遵守法律和道德规范。
对于软件开发者而言,他们应该采取一些措施来保护他们的软件免受破解。
例如,他们可以使用加密算法来保护源代码,实施软件授权机制,定期更新软件以修复漏洞等。
此外,他们还应该密切关注软件社区中的安全问题,并及时采取措施应对任何可能的破解行为。
VB函数破解常用函数
VB程序破解常用函数分析VB程序最大的困难是它的API是VB特有的,且字符串查找并不是很容易这里记录一些VB程序的常见函数1) 数据类型转换:a) __vbaI2Str 将一个字符串转为8 位(1个字节)的数值形式(范围在 0 至 255 之间) 或2 个字节的数值形式(范围在 -32,768 到 32,767 之间)。
b)__vbaI4Str 将一个字符串转为长整型(4个字节)的数值形式(范围从-2,147,483,6482,147,483,647)c)__vbar4Str 将一个字符串转为单精度单精度浮点型(4个字节)的数值形式d)__vbar8Str 将一个字符串转为双精度单精度浮点型(8个字节)的数值形式e) VarCyFromStr (仅VB6库. 要调试,则在WINICE.DAT里必须有OLEAUT32.DLL)字符串到变比型数据类型f) VarBstrFromI2 (仅VB6库. 要调试,则在WINICE.DAT里必须有OLEAUT32.DLL)整型数据到字符串:2) 数据移动:a) __vbaStrCopy 将一个字符串拷贝到内存,类似于 Windows API HMEMCPYb) __vbaVarCopy 将一个变量值串拷贝到内存c) __vbaVarMove 变量在内存中移动,或将一个变量值串拷贝到内存3) 数学运算:a) __vbavaradd 两个变量值相加b) __vbavarsub 第一个变量减去第二个变量c) __vbavarmul 两个变量值相乘d) __vbavaridiv 第一个变量除以第二个变量,得到一个整数商e) __vbavarxor 两个变量值做异或运算4) 程序设计杂项:a) __vbavarfornext 这是VB程序里的循环结构, For...Next... (Loop)b) __vbafreestr 释放出字符串所占的内存,也就是把内存某个位置的字符串给抹掉c) __vbafreeobj 释放出VB一个对象(一个窗口,一个对话框)所占的内存,也就是把内存某个位置的一个窗口,一个对话框抹掉d) __vbastrvarval 从字符串特点位置上获取其值e) multibytetowidechar 将数据转换为宽字符格式,VB在处理数据之都要这样做,在TRW2000显示为7.8.7.8.7.8.7.8f) rtcMsgBox 调用一个消息框,类似于WINDOWS里的messagebox/a/exa,此之前一定有个PUSH命令将要在消息框中显示的数据压入椎栈g) __vbavarcat 将两个变量值相连,如果是两个字符串,就连在一起h) __vbafreevar 释放出变量所占的内存,也就是把内存某个位置的变量给抹掉i) __vbaobjsetj) __vbaLenBstr 获得一个字符串的长度,注:VB中一个汉字的长度也为1k) rtcInputBox 显示一个VB标准的输入窗口,类似window's API getwindowtext/a, GetDlgItemtext/al) __vbaNew 调用显示一个对话框,类似 Windows' API Dialogbox m) __vbaNew2 调用显示一个对话框,类似 Windows' API Dialogboxparam/an) rtcTrimBstr 将字串左右两边的空格去掉5) 比较函数a) __vbastrcomp 比较两个字符串,类似于 Window's API lstrcmpb) __vbastrcmp 比较两个字符串,类似于 Window's API lstrcmpc) __vbavartsteq 比较两个变量值是否相等d)__vbaFpCmpCy - Compares Floating point to currency. sp; Compares Floating point to currency6) 在动态跟踪,分析算法时,尤其要注意的函数:rtcMidCharVar 从字符串中取相应字符,VB中的MID函数,用法MID("字符串","开始的位置","取几个字符")rtcLeftCharVar 从字符串左边取相应字符,VB中的用法:left("字符串","从左边开始取几个字符")rtcRightCharVar 从字符串右边取相应字符,VB中的用法:Right("字符串","从右边开始取几个字符")__vbaStrCat 用字符串的操作,就是将两个字符串合起来,在VB中只有一个&或+__vbaStrCmp 字符串比较,在VB中只有一个=或<>ASC()函数取一个字符的ASC值,在反汇编时,还是有的movsx 操作数7) 在函数中的缩写:bool 布尔型数据(TRUE 或FALSE)str 字符串型数据 STRINGi2 字节型数据或双字节整型数据BYTE or Integerui2 无符号双字节整型数据i4 长整型数据(4字节) Longr4 单精度浮点型数据(4字节) Singler8 双精度浮点型数据(8字节) Doublecy (8 个字节)整型的数值形式 Currencyvar 变量 Variantfp 浮点数据类型Float Pointcmp 比较 comparecomp 比较 compare8)通过文件大小实现自校验:rtcFileLen9)万能断点法:二进制搜索816C24,然后在所有jmp处下断,Ctrl+L来到下一处816C24,接着在jmp下断,直到搜不到816C24为止,因为VB程序是事件驱动的程序,每个jmp都会跳到相应事件,我们可以通过修改相应jmp的地址来改变各个事件出现的顺序,此方法可用于去掉启动框、neg窗等。
3.4.5VB常用函数及表达式
写成VB表达式,正确的是(
)
15.在下面计算变量S值的算法中,S的代数表达式表示 是( ) ①变量s的初值是0 ②变量i依自然数规律从1起连续变化到n,i每取1个值,都 按算式s=s+(-1)*i计算一个s的值 ③输出变量S的值 A.1-2+3-4+……+(-1)n×(n-1) B.1-2+3-4+……+(-1)n-1×(n-1) C.1+2+3+4+……+(n-1)+n D.-1-2-3-4-……-n 【答案】 D
11.下列VB表达式中,能产生一个60到200之间(包括60 和200)随机整数的是( ) A.Rnd()* 200 B.Int(Rnd() * 140) + 60 C.Int(Rnd() * 141) + 60 D.Rnd()* 141 + 60 【答案】 C
12.有如下VB程序段: For i = 1 To 1000 a = Int(Rnd * 100 + 1) b = Int(Rnd * 100 + 1) x=a+b y=a-b c = Sqr(x) d = Sqr(y) Next i 调试时出现如下图所示的错误提示,产生此错误的语句是 ( ) A.x=a+b B.c=Sqr(x) C.y=a-b D.d=Sqr(y)
)
8.已知x=-3.8,则VB表达式Abs(x) + Int(x/2)的值是 ( ) A.5.8 B.4.8 C.2.8 D.1.8 【答案】 B
9.已知x=9,y= ″-5″,则VB表达式Str(x)+y的值为 ( ) A.″9-5″ B.8 C.-2 D.″3-5″ 【答案】 A
10.VB表达式Len(Mid(″VB is Very Good″,7,4))的计算 结果是( ) A.″Very″ B.″Ver″ C.7 D.4 【答案】 A
24VB常用标准函数、基本运算符和表达式
1.7320606 3
说明:e≈2.71828182845905
2.常用的类型转换函数
函数名
函数功能
应用举例
返回值
Asc(X) 字符转换成ASCⅡ码值 Asc(“A”)
65
Chr(X) ASCⅡ码值转换成字符
Chr(65)
“A”
Str(X) 数值转换为字符串
Str(123.45) “123.45”
15.以下VB程序段的功能是统计用户输入的字符串长度。
Private Sub Command1_Click()
Dim a As String a = Text1.Text Label1.Caption = “字符长度为” + ①
End Sub 若要实现该功能,则①处应填写语句为 ____St_r_(_L_e_n(_a_)_)_或__St_r_(_L_e_n(_T_e_x_t_1._T_e_x_t_)_)___。
<=
大于等于
>=
优先级 7 7 7 7 7 7
表达式举例 1=2 1<>2 1<2 1>2
10 Mod 2 <=20 10﹨2>=7
示例表达式的值 False True True False True False
6.逻辑运算符
基本运算 运算符号 优先级
非
Not
8
与
And
9
或
Or
10
表达式举例
Not(2<3) (2<=3) And (2>=3) (2<=3) Or (2>=3)
C.Int(Rnd() * 100)
D.Int(Rnd() * 90) + 10
VBA常用函数和方法解析
VBA常用函数和方法解析VBA是Visual Basic for Applications的缩写,是一种基于Visual Basic语言的宏编程语言。
它广泛应用于Microsoft Office套件中,特别是Excel和Access。
VBA提供了许多内置的函数和方法,可以帮助开发人员更加高效地处理数据、进行计算和自动化操作。
在本文中,我们将解析VBA常用的函数和方法,以帮助读者更好地理解和应用VBA编程。
一、VBA函数的解析1. MsgBox函数MsgBox函数用于在一个消息框中显示消息,并等待用户的响应。
它可以显示文字、图标和按钮,并根据用户的选择返回不同的数值。
例如,以下代码将在消息框中显示一条提示消息,并等待用户点击确定按钮:MsgBox "Hello, World!", vbInformation + vbOKOnly, "提示"2. InputBox函数InputBox函数用于显示一个对话框,提示用户输入数据。
它可以接受一个提示消息、默认值和对话框标题作为参数,并返回用户输入的值。
以下代码将在对话框中显示一个提示消息,并将用户输入的值赋给变量name:name = InputBox("请输入您的姓名:")3. Range函数Range函数用于引用Excel工作表中的单元格范围。
它可以接受单个单元格的地址或多个单元格的范围作为参数,并返回一个Range对象。
例如,以下代码将选中工作表的A1单元格:Range("A1").Select4. Len函数Len函数用于返回指定字符串的长度。
它可以接受一个字符串作为参数,并返回一个整数值表示字符串的长度。
例如,以下代码将返回变量name中存储的字符串的长度:length = Len(name)5. Trim函数Trim函数用于去除字符串前后的空格。
它可以接受一个字符串作为参数,并返回一个去除了前后空格的新字符串。
VB函数大全基本函数大全
语句
声明形成Function过程体的名称、参数和代码
GetObject
函数
从文件返回对“自动”对象的访问
GetRef
函数
返回对可以绑定到事件的过程的引用
Global
属性
设置或返回Boolean值
Hex
函数
返回表示数的十六进制值的字符串
HelpContext
属性
设置或返回帮助文件中某主题的上下文ID
Err
对象
含有关于运行时错误的信息
Eval
函数
计算并返回表达式的值
Execute
方法
根据指定的字符串,执行正则表达式的搜索
Execute
语句
执行单个或更多的指定语句
Exit
语句
退出Do...Loop、For...Next、Function或Sub代码块
Exp
函数
返回e(自然对数的底)的多少次方
False
Public
语句
声明公有变量并分配存储空间
Raise
方法
产生运行时错误
Randomize
语句
初始化随机数发生器
ReDim
语句
声明动态数组变量,并分配或重新分配过程级的存储空间
RegExp
对象
提供简单正则表达式的支持
Rem
语句
包含程序中的注释
Replace
函数
返回一个字符串,其中某个指定的子串被另一个子串替换,替换的次数也有规定
HelpFile
属性
设置或返回帮助文件的全路径
Hour
函数
返回小时数,取值范围为0至23
If...Then...Else
VB常用内部函数
VB常⽤内部函数1.转换函数函数功能说明⽰例结果Int(x)求不⼤于x的最⼤整数Int(4.8)4 Int(-4.3)-5Fix(x)截尾取整Fix(-4.8)-4Hex$(x)把⼗进制转换成⼗六进制Hex(100)“64″Oct$(x)把⼗进制转换成⼋进制Oct(100)“144″Asc(x$)返回x$中第⼀个字符的ASCII码Asc(”ABC”)65 Chr$(x)把x的值转换成ASCII码Chr(64)“A”Str$(x)把x的值转换成字符串Str(12.34)“12.34″Val(x)把字符串x转换成数值Val(”12.34″)12.34 CInt(x)把x的值四舍五⼊取整CInt(12.53)13CCur(x)把x的值四舍五⼊为货币类型Ccur(12.53)12.53 CDbl(x)把x的值转换成双精度数CDbl(12.53)12.53CLng(x)把x的值四舍五⼊为长整型数CLng(12.53)13 CSng(x)把x的值转换成单精度数CSng(12.53)12.53CVar(x)把x的值转换成变体类型值CVar(12.53)12.532.数学函数函数功能说明⽰例结果Sin(x)返回x的正弦值Sin(0)0Cos(x)返回x的余弦值Cos(0)0Tan(x)返回x的正切值Tan(0)0Atn(x)返回x的反正切值Atn(0)0Abs(x)返回x的绝对值Abs(-2.8) 2.8Sgn(x)返回x的符号:x为负数时 -1Sgn(-2)-1 x为0时 0Sgn(0)0 x为正数时 1Sgn(3)1Sqr(x)返回x的平⽅根Sqr(25)5Exp(x)求e的x次⽅Exp(2)7.389Rnd[(x)]产⽣随机数Rnd0~1之间的数3.⽇期和时间函数功能说明⽰例结果Now返回系统⽇期/时间Now2009-1-12 1:01 Day(d)返回当前的⽇期Day(Now)12 WeekDay(d)返回当前的星期WeekDay(Now)1Month(d)返回当前的⽉份Month(Now)1Year(d)返回当前的年份Year(Now)2009Hour(t)返回当前的⼩时Hour(Now)14Minute(t)返回当前分钟Minute(Now)51Second(t)返回当前秒Second(Now)33Timer返回从0点开始已过的秒数Timer35385.5 Time返回当前时间Time14:53:22VB中处理字符串的函数1.删除空⽩字符串函数LTrim$(字符串):去掉字符串左边的空⽩字符RTrim$(字符串):去掉字符串右边的空⽩字符Trim$(字符串):去掉字符串两边的空⽩字符,这个函数在处理字符串中使⽤很频繁,尤其在有输⼊操作时。
VB常用函数
Rtrim(x) 去掉X右边的所有字符。
字符与字符间的空格不会被去掉。
X=Ltrim(“ This is good “)
结果:X=“This is good “
X=Trim(“ This si good “)
结果:X=”This is good”
Response.Writபைடு நூலகம் Fix(-54.6)
结果: -54
8. Asc(X) :返回字符串的第一个字符的字符码。
9. Chr(X): 返回字符码X的字符.
P=Asc(“A”) p=65
P=Chr(65) p=A
10.Filter : 查找字符串数组的特定字符串。
P=Ucase(X) 将字符串X的小写字母转为大写。
只有英文字母才会受影响。
P(0)=”a”,p(1)=”b”,p(2)=”c”
20.StrReverse:反转字符串。
PstrReverse(X)
返回X参数反转以后的字符串。
P=StrReverse(“ABC”)
P=”CBA”
21. Ucase(X),Lcase(X): 转换英文字母的大小写。
P=Lcase(X) 将字符串X的大写字母转为小写。
16.Mid(X,n):由X的第N个字符起,读取后面的所有字符。
Mid(X,n,m):由X的第n个字符起,读起m个字符。
若n>Len(X),则返回空字符串,若第n个字符以后不足m个字符,则返回后面的所有字符。
17.Ltrim(X),Rtrim(X),Trim(X) :去掉空字符。
Ltrim(x) 去掉X左边的所有字符。
vb 中文文本加密解密函数
vb 中文文本加密解密函数VB中文文本加密解密函数在VB中,我们经常需要对中文文本进行加密和解密操作,以确保敏感信息的安全性。
本文将介绍如何使用VB编写中文文本加密解密函数,并提供一些常用的加密解密算法供参考。
一、中文文本加密函数加密是将明文转换为密文的过程,使得密文无法直接被读取和理解。
在VB中,我们可以使用一些常见的加密算法来实现中文文本的加密。
下面是一个示例代码:```vbFunction EncryptText(ByVal plainText As String) As StringDim encryptedT ext As String = ""'加密算法的实现代码Return encryptedTextEnd Function```在这个示例代码中,我们创建了一个名为EncryptText的函数,用于对传入的中文明文进行加密,并返回加密后的密文。
具体的加密算法实现代码需要根据实际需求来编写。
常用的中文文本加密算法有:1. 替换加密:将中文文本中的每个字符替换为另一个字符或字符串,从而达到加密的效果。
例如,将中文文本中的每个字母替换为其后第n个字母,n为一个固定的数值。
2. 异或加密:将中文文本中的每个字符与一个密钥进行异或运算,从而得到加密后的字符。
解密时再将密文与密钥进行异或运算,即可得到明文。
3. 移位加密:将中文文本中的每个字符按照一定规则进行移位操作,从而得到加密后的字符。
解密时再按照相同的规则进行逆向移位操作,即可得到明文。
二、中文文本解密函数解密是将密文转换回明文的过程,使得原始信息可以被读取和理解。
在VB中,我们可以使用与加密算法对应的解密算法来实现中文文本的解密。
下面是一个示例代码:```vbFunction DecryptT ext(ByVal encryptedText As String) As String Dim plainText As String = ""'解密算法的实现代码Return plainTextEnd Function```在这个示例代码中,我们创建了一个名为DecryptText的函数,用于对传入的中文密文进行解密,并返回解密后的明文。
VB程序的破解思路
VB程序的破解思路VB程序使很多朋友感到头痛,主要是VB程序反编译时产生大量的垃圾代码,而且也找不到有用的信息,在动态调试过程中,垃圾代码太多,往往迷失于冗余的代码中,找不到方向。
记住VB常用的一些函数:MultiByteToWideChar 将ANSI字符串转换成UNICODE字符WideCHatToMultiByte将UNICODE字符转换成ANSI字符rtcT8ValFromBstr把字符转换成浮点数vbaStrCmp比较字符串(常用断点)vbaStrComp字符串比较(常用断点)vbaStrCopy复制字符串StrConv转换字符串vbaStrMove移动字符串__vbaVarCat 连接字符串rtcMidCharVar 在字符串中取字符或者字符串!__vbaLenBstr 取字符串的长度vbaVarTstNe变量比较vbaVarTstEq变量比较rtcMsgBox显示对话框VarBstrCmp比较字符串VarCyCmp比较字符串用OD载入脱壳后的程序,在命令行输入:bpx hmemcpy,然后回车,会弹出程序运行调用的所有的函数,在每个函数上设置好断点!说明:我破VB程序喜欢用这个断点设置方法,通过一步步跟踪,基本可以把握程序保护的思路,所以我破VB程序基本用这个断点,当然你可以用其它的断点,只要能找到关键,任何断点都是用意义的。
关于VB的程序,注册没有提示的二个办法:第一(提示错误):用GetVBRes来替换里面的提示串,一般是以'111111','222222'之类的替换因为:VB,用的字来存放提示还有加了点东东,我们用的工具一般是字节分析。
换成'22222'之类的就是字节了,用静态分析,就有你该的串了。
GetVBRes(网上很多,自己下吧)第二(没有提示):用vbde这个工具(不知道,有没有用过DEDE,是一样思路),主要是找出破解的按钮窗口的位置,来进行跟踪。
VB常用函数
3.数据类型转换函数:
Cint(str):转换正数 True -1;False 0;日期 距离1899/12/31天数;时间 上午段 0;下午段 1;
Cstr(str):日期 输出格式 yyyy/mm/dd;时间 输出格式 Am/Pm hh:mm:ss
Clng(str):与Cin()类似
log(num): 取以e为底的对数 num>0
exp(n): 取e的n次幂 通常用 num^n
sin(num): 三角函数,以弧度为值计算 (角度*Pai)/180=弧度 con(num); tan(num); atn(num)
2.字符串函数:
len(str):计算字符串长度 中文字符长度也计为一!
sqr(num): 返回平方根 num>0
int(num): 取整 int(99.8)=99; int(-99.2)=100
fix(num): 取整 fix(99.8)=99; fix(-99.2)=99
round(num,n): 四舍五入取小数位 round(3.14159,3)=3.142 中点数值四舍五入为近偶取整 round(3.25,1)=3.2
[VB] vb常用函数集
1.数值型函数:
abs(num): 返回绝对值
sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负
hex(num): 返回十六进制值 直接表示:&Hxx 最大8位
oct(num): 返回八进制值 直接表示:&Oxx 最大8位
weekday(date):计算星期几
MonthName(date):输出月分名
vb常用函数大全和公式
vb常用函数大全和公式以下是一些VBA常用的函数和公式:## 函数### 整型函数- Asc() - 将一个整数转换为字符长整数- Chr() - 将一个字符长整数转换为字符整数- Conv() - 将一个浮点数转换为字符长整数- Dis() - 将一个字符串分解成子字符串- Len() - 返回一个字符串的长度- Num() - 返回一个整数值### 浮点型函数- Asc() - 将一个浮点数转换为字符长整数- Chr() - 将一个浮点数转换为字符整数- Conv() - 将一个浮点数转换为字符长整数- Dis() - 将一个浮点数转换为字符串- Len() - 返回一个浮点数字符串的长度- Num() - 返回一个浮点数的数值### 布尔型函数- IsTrue() - 返回一个布尔值的真假- IsFalse() - 返回一个布尔值的真假- And() - 将两个布尔值合并为一个新的布尔值- Or() - 将两个布尔值合并为一个新的布尔值,如果它们均为假则返回False- Not() - 返回一个布尔值的真假## 公式### 代数公式- + 表示两个数相加- - 表示两个数相减- * 表示两个数相乘- / 表示两个数相除- % 表示两个数的取模### 几何公式- + 表示两个向量相加- - 表示两个向量相减- * 表示两个向量相乘- / 表示两个向量相除- *x 表示向量x乘以另一个向量x- /x 表示向量x除以另一个向量x- sin(angle) 表示向量x在坐标系中沿着方向angle的sin函数值- cos(angle) 表示向量x在坐标系中沿着方向angle的cos函数值- tan(angle) 表示向量x在坐标系中沿着方向angle的tan函数值### 三角函数公式- sin(angle) 表示向量x在坐标系中沿着方向angle的sin函数值- cos(angle) 表示向量x在坐标系中沿着方向angle的cos函数值- tan(angle) 表示向量x在坐标系中沿着方向angle的tan函数值- asin(x) 表示x在实数范围内取sin函数值- acos(x) 表示x在实数范围内取cos函数值- ceil(x) - 向上取整,返回x的最小值-floor(x) - 向下取整,返回x的最大值- log10(x) 表示将x乘以10的指数幂,返回其百分数### 统计学公式- 方差(Standard Deviation) 表示一组数值的平均平方和与标准差的差值- 标准差(Standard Error) 表示一组数值的标准差。
VB常用内部函数
常用内部函数一、数学函数1、三角函数Sin(x):求正弦值,x必须为弧度值求sin30。
的值Sin(30*3.14/180)Cos(x):求余弦值,x必须为弧度值Tan(x):求x正切值,x必须为弧度值Atan(x):求x反正切值,x必须为弧度值2、绝对值函数Abs(x):求x的绝对值,x是数值型3、Exp(x):求e的指定的次幂,即e x4、Log(x):求lnx,即log e x5、符号函数Sgn(x):根据x值返回-1、0、1 当x>0,Sgn(x)=1当x=0,Sgn(x)=0当x<0,Sgn(x)=-16、Sqr(x):返回x的平方根,x>=0二、转换函数1、取整函数Int(x):返回小于等于x的最大整数Int(9.59)=9Int(-9.59)=-10Fix(x):截断取整,即去掉小数部分Fix(9.59)=9Fix(-9.59)=-9问题:若要对x实现四舍五入取整:Int(x+0.5)或Fix(x+0.5)2、Chr和Asc函数Chr(x):x必须为ASCII码值(0-255),将x指定的ASCII码值转换成对应的字符Chr(65)=“A”Chr(97)=“a”注意:Chr函数得到那些非显示的控制字符。
Chr(13):回车键Chr(8):退格键Asc(x):x为字符串型数据,将x指定的字符串的首字符转换成ASCII码值。
例如:Asc(“A”)=65Asc(“Asdger”)=653、Val(x)和Str(x)函数——重点Val(x):x为数字字符串,将该数字字符串转换成相应的数值。
若x中出现数值规定字符以外的字符,则只将最前面的符合数值型规定字符转换成对应的数值。
Val(“-3.14”)=-3.14Val(“1.2sa10”)=1.2Val(“-1.2E3Eg”)=-1200Str(x):x为数值型数据,将x转换成字符串,若x为正数,则转换的字符串的第一位一定是空格;若x的小数点最后有多个”0”,则将去掉。
VB字符串处理函数大全
VB字符串处理函数大全2010-03-14 13:48:16 作者:佚名来源:浏览次数:1110mid(字符串,从第几个开始,长度) ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如 mid("坦然面对",1,3) 则返回 "坦然面"mid(字符串,从第几个开始,长度) ByRef 在[字符串]中[从第几个开始]取出[长度个字符串]例如 mid("坦然面对",1,3) 则返回 "坦然面"instr(从第几个开始,字符串1,字符串2) ByVal 从规定的位置开始查找,返回字符串2在字符串1中的位置例如 instr(1,"坦然面对","坦") 则返回 1,instr(2,"坦然面对","坦"),则返回 0 。
0 表示未找到InStrRev(字符串1,字符串2,从第几个开始) ByVal 从规定的位置开始,从后住前查找,返回字符串2在字符串1中的位置,此处注意,虽是从后住前查找,但是返回的值还是从前往后算的。
例如 instrRev("坦然面对","坦",2) 则返回 2 ; instrRev("坦然面对","然",1) 则返回0 ,因为它从"坦然面对"的第1个字开始往前查找,所以找不到。
0 表示未找到left(字符串,长度) ByVal 从[字符串]的左边开始返回[长度]个字符例如 Left("坦然面对",3) 则返回 "坦然面"right(字符串,长度) ByVal 从[字符串]的右边开始返回[长度]个字符例如 Right("坦然面对",3) 则返回 "然面对"ucase(字符串) ByVal 返回[字符串]的大写形式,只对英文字符有效例如 ucase("tanRANmiAnDui") 则返回 "TANRANMIANDUI"lcase(字符串) ByVal 返回[字符串]的小写形式,只对英文字符有效例如 lcase("tanRANmiAnDui") 则返回 "tanranmiandui"asc(字符) Byval返回[字符]的ascii编码,若有多个字符,则只返回首字符的ascii 编码,和Chr()函数是一个可逆的过程例如 asc("坦") 则返回 -13127; asc("坦然面对") 也返回 -13127chr(ASCii编码) Byval 返回[Ascii]编码所代表的字符,和Chr()函数是一个可逆的过程例如 chr(-13127) 则返回 "坦" ;chr(asc("坦")) 则返回"坦"(这里是为了说明asc和chr 的可逆性,例用此特性可以加密文本)trim(字符串) Byval 返回去掉了前、后之后的[字符串]例如 trim(" 坦然面对 ") 则返回 "坦然面对" ,中间的空格不受任何影响string(个数,字符) Byval 返回[个数]个[字符]例如 string(3,"坦") 则返回 "坦坦坦" , 而 string(3,"坦然面对") 也返回 "坦坦坦",只有首字符才有效space(个数) Byval 返回[个数]个空格例如 space(5) 则返回 " "strconv(字符串,转换的类型) Byval 将字符串转成指定的类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB程序破解常用函数分析VB程序最大的困难是它的API是VB特有的,且字符串查找并不是很容易这里记录一些VB程序的常见函数1) 数据类型转换:a) __vbaI2Str 将一个字符串转为8 位(1个字节)的数值形式(范围在 0 至 255 之间) 或2 个字节的数值形式(范围在 -32,768 到 32,767 之间)。
b)__vbaI4Str 将一个字符串转为长整型(4个字节)的数值形式(范围从-2,147,483,6482,147,483,647)c)__vbar4Str 将一个字符串转为单精度单精度浮点型(4个字节)的数值形式d)__vbar8Str 将一个字符串转为双精度单精度浮点型(8个字节)的数值形式e) VarCyFromStr (仅VB6库. 要调试,则在WINICE.DAT里必须有OLEAUT32.DLL)字符串到变比型数据类型f) VarBstrFromI2 (仅VB6库. 要调试,则在WINICE.DAT里必须有OLEAUT32.DLL)整型数据到字符串:2) 数据移动:a) __vbaStrCopy 将一个字符串拷贝到内存,类似于 Windows API HMEMCPYb) __vbaVarCopy 将一个变量值串拷贝到内存c) __vbaVarMove 变量在内存中移动,或将一个变量值串拷贝到内存3) 数学运算:a) __vbavaradd 两个变量值相加b) __vbavarsub 第一个变量减去第二个变量c) __vbavarmul 两个变量值相乘d) __vbavaridiv 第一个变量除以第二个变量,得到一个整数商e) __vbavarxor 两个变量值做异或运算4) 程序设计杂项:a) __vbavarfornext 这是VB程序里的循环结构, For...Next... (Loop)b) __vbafreestr 释放出字符串所占的内存,也就是把内存某个位置的字符串给抹掉c) __vbafreeobj 释放出VB一个对象(一个窗口,一个对话框)所占的内存,也就是把内存某个位置的一个窗口,一个对话框抹掉d) __vbastrvarval 从字符串特点位置上获取其值e) multibytetowidechar 将数据转换为宽字符格式,VB在处理数据之都要这样做,在TRW2000显示为7.8.7.8.7.8.7.8f) rtcMsgBox 调用一个消息框,类似于WINDOWS里的messagebox/a/exa,此之前一定有个PUSH命令将要在消息框中显示的数据压入椎栈g) __vbavarcat 将两个变量值相连,如果是两个字符串,就连在一起h) __vbafreevar 释放出变量所占的内存,也就是把内存某个位置的变量给抹掉i) __vbaobjsetj) __vbaLenBstr 获得一个字符串的长度,注:VB中一个汉字的长度也为1k) rtcInputBox 显示一个VB标准的输入窗口,类似window's API getwindowtext/a, GetDlgItemtext/al) __vbaNew 调用显示一个对话框,类似 Windows' API Dialogbox m) __vbaNew2 调用显示一个对话框,类似 Windows' API Dialogboxparam/an) rtcTrimBstr 将字串左右两边的空格去掉5) 比较函数a) __vbastrcomp 比较两个字符串,类似于 Window's API lstrcmpb) __vbastrcmp 比较两个字符串,类似于 Window's API lstrcmpc) __vbavartsteq 比较两个变量值是否相等d)__vbaFpCmpCy - Compares Floating point to currency. sp; Compares Floating point to currency6) 在动态跟踪,分析算法时,尤其要注意的函数:rtcMidCharVar 从字符串中取相应字符,VB中的MID函数,用法MID("字符串","开始的位置","取几个字符")rtcLeftCharVar 从字符串左边取相应字符,VB中的用法:left("字符串","从左边开始取几个字符")rtcRightCharVar 从字符串右边取相应字符,VB中的用法:Right("字符串","从右边开始取几个字符")__vbaStrCat 用字符串的操作,就是将两个字符串合起来,在VB中只有一个&或+__vbaStrCmp 字符串比较,在VB中只有一个=或<>ASC()函数取一个字符的ASC值,在反汇编时,还是有的movsx 操作数7) 在函数中的缩写:bool 布尔型数据(TRUE 或FALSE)str 字符串型数据 STRINGi2 字节型数据或双字节整型数据BYTE or Integerui2 无符号双字节整型数据i4 长整型数据(4字节) Longr4 单精度浮点型数据(4字节) Singler8 双精度浮点型数据(8字节) Doublecy (8 个字节)整型的数值形式 Currencyvar 变量 Variantfp 浮点数据类型Float Pointcmp 比较 comparecomp 比较 compare8)通过文件大小实现自校验:rtcFileLen9)万能断点法:二进制搜索816C24,然后在所有jmp处下断,Ctrl+L来到下一处816C24,接着在jmp下断,直到搜不到816C24为止,因为VB程序是事件驱动的程序,每个jmp都会跳到相应事件,我们可以通过修改相应jmp的地址来改变各个事件出现的顺序,此方法可用于去掉启动框、neg窗等。
Btw:__vbavartsteq系列的还有__vbavartstne 不等于__vbavartstGe,__vbavartstGt,__vbavartstLe,__vbavartstLt等,比较大于或小于我们可以通过以下几个工具来协助查找VB程序字符串1、GetVBRes2、VBExplorer 查看->查看字符串3、c32asm 查看->字符串,如果发现全是乱码,到编辑中,修改为unicodec32asm和VBExplorer相比我个人习惯用c32asm,因为它可以直接看到程序哪个地址在调用这个字符串。
在使用GetVBRes时,通过查找unicode字符找到我们的目标字符串后,选中该字符串然后用我们惯用的字母或数字替换,然后再查找我们替换后的字符串。
这种方法的好处,如果你用数字代替的话,可以解决VB中文显示乱码的问题,有时用OD的unicode插件即可找到修改后的字符串。
注意 GetVBRes是需要注册的,非注册版是无法修改原文件的。
………………………………………………………………VB 破解快速找事件ctrl+B搜索816C24 然后分别在他上面的JMP设置F2断点,运行注册模块进行注册。
在那个JMP中断就是从这个JMP开始调用注册模块。
在函数中的缩写:bool ->布尔型数据(TRUE 或FALSE)str ->字符串型数据STRINGi2 ->字节型数据或双字节整型数据BYTE or Integerui2 ->无符号双字节整型数据i4 ->长整型数据(4字节) Longr4 ->单精度浮点型数据(4字节) Singler8 ->双精度浮点型数据(8字节) Doublecy ->(8 个字节)整型的数值形式Currencyvar ->变量Variantfp ->浮点数据类型Float Pointcmp ->比较comparecomp ->比较compareEq ->相等equalNe ->不等于Le ->小于或等于Lt ->小于Ge ->大于或等于Gt ->大于对话框:bpx rtcMsgBox ->显示一信息对话框******窗体常用:bpx DestroyWindow ->破坏(即清除)指定的窗口以及它的所有子窗口******bpx mouseevent ->模拟一次鼠标事件(鼠标中断)bpx postquitmessage ->将一条消息投递给应用程序。
这条消息由应用程序的内部GetMessage 循环获得,但不会传给一个特定的窗口bpx vbaVarTstEq ->检验指定变量是否相等判断是否注册的函数******下BPX vbaVarTstEq 下断点后,shift+F9运行N次到出现错误提示窗口,然后N-1次shift+F9运行。
alt+F9返回,就可以到关键地方。
拦截警告声:bpx rtcBeep ->扬声器提示数据移动:bpx vbaVarCopy ->数据移动将一个变量值串拷贝到内存bpx vbaVarMove ->数据移动变量在内存中移动,或将一个变量值串拷贝到内存bpx vbaStrMove ->移动字符串bpx vbaStrCopy ->移动字符串将一个字符串拷贝到内存,类似于Windows API HMEMCPY数据类型转换:bpx vbaI2Str ->将一个字符串转为8 位(1个字节)的数值形式(范围在0 至255 之间) 或2 个字节的数值形式(范围在-32,768 到32,767 之间)。
bpx vbaI4Str ->将一个字符串转为长整型(4个字节)的数值形式(范围从-2,147,483,6482,147,483,647)bpx vbar4Str ->将一个字符串转为单精度单精度浮点型(4个字节)的数值形式bpx vbar8Str ->将一个字符串转为双精度单精度浮点型(8个字节)的数值形式bpx VarCyFromStr ->(仅VB6库. 要调试,则在WINICE.DAT里必须有OLEAUT32.DLL)字符串到变比型数据类型bpx VarBstrFromI2 ->(仅VB6库. 要调试,则在WINICE.DAT里必须有OLEAUT32.DLL)整型数据到字符串:数值运算:bpx vbaVarAdd ->两个变量值相加bpx vbaVarIdiv ->除整,第一个变量除以第二个变量,得到一个整数商bpx vbaVarSub ->第一个变量减去第二个变量bpx vbaVarMul ->两个变量值相乘bpx vbaVarDiv ->除bpx vbaVarMod ->求余bpx vbaVarNeg ->取负bpx vbaVarPow ->指数bpx vbavarxor ->两个变量值做异或运算针对变量:bpx vbaVarCompEq ->比较局部变量是否相等bpx vbaVarCompNe ->比较局部变量是否不等于bpx vbaVarCompLe ->比较局部变量小于或等于bpx vbaVarCompLt ->比较局部变量小于bpx vbaVarCompGe ->比较局部变量大于或等于bpx vbaVarCompGt ->比较局部变量大于VB的指针:THROW程序结构:bpx vbaVarForInit ->重复执行初始化bpx vbaVarForNext ->重复执行循环结构,For… Next… (Loop)比较函数:bpx vbaStrCmp ->比较字符串是否相等******bpx vbaStrComp ->比较字符串是否相等******bpx vbaVarTstEq ->检验指定变量是否相等bpx vbaVarTstNe ->检验指定变量是否不相等bpx vbaVarTstGt ->检验指定变量大于bpx vbaVarTstGe ->检验指定变量大于或等于bpx vbaVarTstLt ->检验指定变量小于bpx vbaVarTstLe ->检验指定变量小于或等于。