吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3416|回复: 24

[经验资料] VB程序逆向常用的函数(求评分)

  [复制链接]
黑刀 发表于 2015-5-24 15:12 | 显示全部楼层 |阅读模式

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

Btw:
__vbavartsteq系列的还有__vbavartstne 不等于
__vbavartstGe,__vbavartstGt,__vbavartstLe,__vbavartstLt等,比较大于或小于

-----------------------------

拦截警告声:
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    —>检验指定变量小于或等于


字符串操作:
bpx vbaStrCat       —>用字符串的操作,就是将两个字符串合起来,在VB中只有一个&或+
bpx vbaStrLike
bpx vbaStrTextComp  —>与指定文本字符串比较
bpx vbaStrTextLike
bpx vbaLenBstr     —>字符串长度
bpx vbaLenBstrB    —>字符串长度
bpx vbaLenVar      —>字符串长度
bpx vbaLenVarB     —>字符串长度
bpx rtcLeftCharVar   —>截取字符串,从字符串左边取相应字符,VB中的用法:left("字符串","从左边开始取几个字符")
bpx vbaI4Var         —>截取字符串
bpx rtcRightCharVar  —>截取字符串,从字符串右边取相应字符,VB中的用法:Right("字符串","从右边开始取几个字符")
bpx rtcMidCharVar    —>截取字符串,VB中的MID函数,用法MID("字符串","开始的位置","取几个字符")
bpx vbaInStr         —>查找字符串位置
bpx vbaInStrB        —>查找字节位置
bpx vbaStrCopy       —>复制字符串
bpx vbaStrMove       —>移动字符串
bpx rtcLeftTrimVar   —>删除字串的空白
bpx rtcRightTrimVar  —>删除字串的空白
bpx rtcTrimVar       —>删除字串的空白
bpx vbaRsetFixstrFree   —>字符串往右对齐
bpx vbaRsetFixstr       —>字符串往右对齐
bpx vbaLsetFixstrFree   —>字符串往左对齐
bpx vbaLsetFixstr       —>字符串往左对齐
bpx vbaStrComp          —>字符串比较
bpx vbaStrCompVar       —>字符串比较
bpx rtcStrConvVar2        —>字符串类型转换
bpx rtcR8ValFromBstr      —>把字符串转换成浮点数
bpx MultiByteToWideChar   —>ANSI字符串转换成Unicode字符串
bpx WideCharToMultiByte   —>Unicode字符串转换成ANSI字符串
bpx rtcVarFromFormatVar   —>格式化字符串
bpx rtcUpperCaseVar       —>小写变大写
bpx rtcLowerCaseVar       —>大写变小写
bpx rtcStringVar          —>重复字符
bpx rtcSpaceVar           —>指定数目空格
bpx rtcAnsiValueBstr      —>传回字符码(返回第一个字符的字符代码)
bpx rtcByteValueBstr      —>传回字符码(返回第一个字节的字符代码)
bpx rtcCharValueBstr      —>传回字符码(返回第一个Unicode字符代码)
bpx rtcVarBstrFromAnsi    —>传回字符(返回 String,其中包含有与指定的字符代码相关的字符 )
bpx rtcVarBstrFromByte    —>传回字符(返回 String,其中包含有与指定的字符代码相关的单字节)
bpx rtcVarBstrFromChar    —>传回字符(返回 String,其中包含有与指定Unicode 的 String)

评分

参与人数 25HB +35 THX +15 收起 理由
lies + 1
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
Soul1999 + 1
shaokui123 + 1
sjtkxy + 1 + 1
冷亦飞 + 1
消逝的过去 + 2
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
temp + 1 + 1
liugu0hai + 1 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
jaunic + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
三月十六 + 1
ldljlzw + 1
ghostxu + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
zoe + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
playboy + 1
hnymsh + 2
mzorn + 1 + 1 破解VB用
ysz265 + 1 + 1 好人有好报!你的热心我永远不忘!谢谢!
彡墨鱼灬丶 + 5 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
逍遥枷锁 + 4 + 1 好人有好报!你的热心我永远不忘!谢谢!
ww113908777 + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
Shark恒 + 5 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
学破解丶小甜橙 发表于 2015-5-24 15:12 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
血色 发表于 2015-5-24 15:14 | 显示全部楼层

本帖最后由 血色 于 2015-5-24 15:18 编辑

COPY的贴子也拿来混HB???楼主赶快删贴,或者换别的地方发,别被封啦!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2015-5-24 15:38 | 显示全部楼层

血色 发表于 2015-5-24 15:14
COPY的贴子也拿来混HB???楼主赶快删贴,或者换别的地方发,别被封啦!

没关系的,资料分类,他并没有用原创。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
血色 发表于 2015-5-24 15:40 | 显示全部楼层

Shark恒 发表于 2015-5-24 15:38
没关系的,资料分类,他并没有用原创。

那这版块设置的有问题,要不就单独开一个解密技巧或者解密资料版块,这里我一直都认为是图文教程版块,关键是图文教程

评分

参与人数 1HB +10 THX +1 收起 理由
Shark恒 + 10 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Desire 发表于 2015-5-24 16:10 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
小范 发表于 2015-5-24 17:39 | 显示全部楼层

学习了,要是附加点图在里面就更好了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
ysz265 发表于 2015-5-24 20:51 | 显示全部楼层

谢谢分享,收藏备用
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2015-5-27 19:13 | 显示全部楼层

血色 发表于 2015-5-24 15:40
那这版块设置的有问题,要不就单独开一个解密技巧或者解密资料版块,这里我一直都认为是图文教程版块,关 ...

你说的有道理,我去管理群和大家商量一下。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 黑刀 发表于 2015-10-4 22:38 | 显示全部楼层

哇卡卡卡,谢谢大家
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表