VB程序破解常用函数

来源:互联网 发布:贝奥武夫结局知乎 编辑:程序博客网 时间:2024/06/06 19:24
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 HMEMCPY  
b) __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.8 
f) rtcMsgBox   调用一个消息框,类似于WINDOWS里的messagebox/a/exa,此之前一定有个PUSH命


令将要在消息框中显示的数据压入椎栈  
g) __vbavarcat    将两个变量值相连,如果是两个字符串,就连在一起  
h) __vbafreevar  释放出变量所占的内存也就是把内存某个位置的变量给抹掉 
i) __vbaobjset  
j)  __vbaLenBstr   获得一个字符串的长度注,VB中一个汉字的长度也为1 
k) rtcInputBox    显示一个VB标准的输入窗口类似window's API getwindowtext/a, 


GetDlgItemtext/a  
l) __vbaNew      调用显示一个对话框类似 Windows' API Dialogbox  
m) __vbaNew2    调用显示一个对话框类似 Windows' API Dialogboxparam/a  
n) rtcTrimBstr   将字串左右两边的空格去掉   
5) 比较函数 :
a)  __vbastrcomp   比较两个字符串类似于 Window's API lstrcmp  
b)  __vbastrcmp   比较两个字符串类似于 Window's API lstrcmp  
c) __vbavartsteq  比较两个变量值是否相等 
d)__vbaFpCmpCy - Compares Floating point to currency. sp;            Compares 


Floating point to currency   
6) 在动态跟踪分析算法时尤其要注意的函数, 
rtcMidCharVar  从字符串中取相应字符VB中的MID函数用法MID("字符串","开始的位置","取几个


字符") 
rtcLeftCharVar 从字符串左边取相应字符VB中的用法,left("字符串","从左边开始取几个字符") 


rtcRightCharVar 从字符串右边取相应字符VB中的用法,Right("字符串","从右边开始取几个字符


") 
__vbaStrCat  用字符串的操作就是将两个字符串合起来在VB中只有一个&或+ __vbaStrCmp  字符


串比较在VB中只有一个=或<> ASC()函数    取一个字符的ASC值在反汇编时还是有的movsx 


操作数  
7) 在函数中的缩写, bool 布尔型数据(TRUE 或  FALSE)  str  字符串型数据 STRING i2   字


节型数据或双字节整型数据  BYTE or Integer ui2  无符号双字节整型数据   i4   长整型数据


(4字节)  Long r4   单精度浮点型数据(4字节)  Single  r8   双精度浮点型数据(8字节)  


Double cy  8 个字节整型的数值形式 Currency var  变量     Variant fp  浮点数据类型 


 Float Point cmp  比较   compare comp 比较   compare   
8)通过文件大小实现自校验: rtcFileLen  9 万能断点法: 二进制搜索816C24,然后在所有jmp


处下断,Ctrl+L来到下一处816C24,接着在jmp下断,直到搜不到816C24为止,因为VB程序是事件驱动


的程序,每个jmp都会跳到相应事件,我们可以通过修改相应jmp的地址来改变各个事件出现的顺序,


此方法可用于去掉启动框、neg窗等。  Btw: __vbavartsteq系列的还有__vbavartstne 不等于 


__vbavartstGe,__vbavartstGt,__vbavartstLe,__vbavartstLt等,比较大于或小于  我们可以通


过以下几个工具来协助查找VB程序字符串 1、GetVBRes   2、VBExplorer  查看->查看字符串 3


、c32asm  查看->字符串,如果发现全是乱码,到编辑中,修改为unicode  c32asm和VBExplorer相


比我个人习惯用c32asm,因为它可以直接看到程序哪个地址在调用这个字符串。 在 使用GetVBRes


时,通过查找unicode字符找到我们的目标字符串后,选中该字符串然后用我们惯用的字母或数字替


换,然后再查找我们替换后的字符 串。这种方法的好处,如果你用数字代替的话,可以解决VB中文


显示乱码的问题,有时用OD的unicode插件即可找到修改后的字符串。注意 GetVBRes是需要注册的


,非注册版是无法修改原文件的。   ……………………………………………………………… VB 


破解快速找事件 ctrl+B搜索816C24 然后分别在他上面的JMP设置F2断点,运行注册模块进行注册


。 在那个JMP中断就是从这个JMP开始调用注册模块。 在函数中的缩写: bool ->布尔型数据


(TRUE 或 FALSE) str ->字符串型数据 STRING i2 ->字节型数据或双字节整型数据 BYTE or 


Integer ui2 ->无符号双字节整型数据 i4 ->长整型数据(4字节) Long r4 ->单精度浮点型数据


(4字节) Single r8 ->双精度浮点型数据(8字节) Double cy  ->8 个字节整型的数值形式 


Currency var ->变量 Variant fp  ->浮点数据类型 Float Point cmp ->比较 compare comp ->


比较 compare Eq ->相等 equal Ne ->不等于  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 ->检验指定变量小于或等于  
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 石家庄对讲机 对讲机价格表 青岛对讲机批发 对讲机大品牌 对讲机按键功能图解 对讲机三个按键功能 宝峰uv5r对讲机设置 对讲机的使用方法图解 对讲机什么品牌的好 摩托罗拉对讲机报价 国产对讲机哪个牌子好 摩托罗拉对讲机价格 普通对讲机多少钱一对 对讲机什么牌子好用 远距离对讲机100公里 什么品牌的对讲机好 摩托罗拉对讲机专卖店 什么牌子的对讲机好 欧讯 高档手机排行榜 翻盖手机排行榜 翻盖手机大全 国产手机排行榜 非智能手机排行榜 国产手机品牌 防摔手机 国产手机哪款好 千元手机销量排行榜 国产手机品牌排行榜 荣耀honor 国产手机性价比排行 荣耀6手机 高新奇手机 千元内手机 无线对讲系统 对讲机组网 motorola数字对讲机 摩托罗拉防爆对讲机 350兆数字集群对讲机 对账函 养老保险对账单怎么看