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等,比较大于或小于

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回车转换成Tab

<script language"javascript" for"document" event"onkeydown"> if(event.keyCode13 && event.srcElement.type!’button’ && event.srcElement.type!’submit’ && event.srcElement.type!’reset’ &&am…

打包mac应用_把网址链接打包成电脑软件的制作方法

前言&#xff1a;学习一下把web页面打包成运行在桌面的应用, 并支持win / mac / linux 等平台, 记一下使用过程, 有需要的大(同)佬(学)可以玩玩~第一步 – 安装 node.jsnode.js下载地址&#xff1a;http://nodejs.cn/download/下载 Windows 安装包 (.msi) 和 Windows 二进制文件…

用eclipse往mysql插入中文出现乱码解决方法

用eclipse往mysql插入中文出现乱码的解决方法 注&#xff1a;我用的是c3p0结合DButils操作数据库 在要从页面获得数据的代码上面设置&#xff1a; request.setCharacterEncoding("UTF-8"); 在c3p0-config文件里设置&#xff1a; <property name"jdbcUrl&…

c++ 中extern C 及#ifdef __cplusplus的作用

浅析extern “C”的作用 关于extern “C”的作用和意思&#xff0c;网上资料已经有很多了&#xff08;我也参考了几篇&#xff09;&#xff0c;不过我还是觉得有必要自己总结一下&#xff0c;毕竟“好记性不如烂笔头”嘛~~ 到C标准函数库的头文件里看看&#xff0c;一般会经常看…

对多个WCF服务进行统一的连接测试

先看下面的代码&#xff1a;代码代码 BasicHttpBinding myBinding newBasicHttpBinding(); EndpointAddress myEndpoint newEndpointAddress(endAddress); ChannelFactory<IMyService>myChannelFactory newChannelFactory<IMyService>(myBinding,my…

宜昌宝塔河项目_宜昌城区首个垃圾分类定时定点投放点启用 厨余垃圾破袋投放...

伍家岗区宝联社区黄龙小区的垃圾分类定时定点投放点启用。(市环境卫生管理处供图)(记者郑璐、通讯员陈赞)1月1日&#xff0c;宜昌城区首个垃圾分类定时定点投放点在伍家岗区宝塔河街办宝联社区黄龙小区正式启用。该投放点每天开放5小时&#xff0c;上午7&#xff1a;00-9:30&am…

eclipseweb开发response和request接收发送数据乱码问题

第一种&#xff1a;request接收到的数据出现乱码&#xff1a; 在request接收数据前面设置如下代码 requset.setCharacterEncoding("UTF-8);reponse往页面写中文出现乱码&#xff1a; 在要往页面输入内容前面设置&#xff1a; response.setContentType("text/html;…

C++函数名的修饰规则

我们知道在C中有函数重载这样一个东西&#xff0c;当我们定义了几个功能类似且函数名是一样的函数的时候&#xff0c;只要它的参数列表不同&#xff0c;编译是可以通过的&#xff0c;但是在C中是不可以的。 double add(double a, double b) { return a b; } int add(int …

装配图位置偏转怎么调整_物理微课|匀变速直线运动、电容器动态分析及磁偏转技巧、方法、模型...

匀变速直线运动三大推论是什么&#xff1f;如何利用它们快速解题&#xff1f;电容器动态分析的重点是什么&#xff1f;磁偏转问题有什么严谨好用的技巧和方法&#xff1f;物理侯老师为您详细解答以上问题。高一匀变速直线运动三大推论 匀变速直线运动是我们高中学的第一个变速…

Cooki模拟登陆(人人网)

我们在爬取网上一些数据时&#xff0c;必须登陆才能爬取到数据&#xff0c;这是我们就需要Cookie了&#xff0c;Cookie简单说就是服务器返回给我们的一些数据&#xff0c;保存到客户端&#xff0c;下次登陆时&#xff0c;服务器会识别这些数据&#xff0c;可以返回我们上次的数…

静态变量与动态变量

0.静态存储与动态存储 1&#xff09;静态存储变量通常是在变量定义时就分定存储单元并一直保持不变&#xff0c;直至整个程序结束。静态变量&#xff0c;全局动态变量都是静态存储 2&#xff09;动态存储变量是在程序执行过程中&#xff0c;使用它时才分配存储单元&#xff0c…

基本图形怎么改字体_PPT做得慢怎么办?掌握这6个技巧,你也能快速做出精美的PPT...

相信很多人做PPT的速度都比较慢&#xff0c;从新建一个空白PPT开始&#xff0c;再到排版设计&#xff0c;需要耗费大量的时间&#xff0c;下面就来教你这6个技巧&#xff0c;你也能快速做出精美的PPT。01.一键禁止动画最近&#xff0c;有很多小伙伴向我求助&#xff0c;问我怎样…

js eval()函数

JS eval()函数转自&#xff1a;http://www.86822.com/code/zw.asp?id614 eval()函数 JavaScript有许多小窍门来使编程更加容易。 其中之一就是eval()函数&#xff0c;这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。 举个小例子&#xff1a;…

vs 2019编写汇编并运行调试

前言 我是上学期学的汇编&#xff0c;因为有vs又不想用课上教的麻烦的dosbox以及masm32&#xff0c;但是一直没找到高亮插件和能调试的&#xff08;难在运行不了而找不到答案上&#xff0c;出现的错误在最后放出&#xff0c;还请先达们不吝指点&#xff09;汇编代码所以放弃了。…

三菱880彩铅和uni的区别_孟祥雷丨清华美院毕业,彩铅界的“冷军”(附彩铅教程哦!)...

今天要分享的是妥妥的一个高冷帅气、又有才华的艺术家&#xff0c;毕业于清华大学美术学院。有20多年的绘画经验&#xff0c;设计、绘画等艺术多面手&#xff0c;彩铅是他最出名的作品之一。人物篇(逆光)(麻花辫)用彩铅画肖像人物的人很多&#xff0c;但能把人物塑造得维妙维俏…

substring()分解字符串

substring解决了如何在指定位置将一个字符串划分为子串 单参数形式&#xff1a;返回从起始位置到结尾之间的子串**&#xff08;起始索引从0开始&#xff09;** public class SubStringReview {public static void main(String[] args) {String s "Java is great";…

ubuntu 16.04忘记登录密码的解决办法

1、开机长按shift&#xff0c;我这是按esc&#xff0c;出现如下界面&#xff0c;选中如下选项&#xff1a; 2、按回车键进入如下界面&#xff0c;然后选择有recovery mode的选项&#xff0c;注意&#xff1a;然后按e进入3的界面&#xff08;请不要使用enter键&#xff09; 推…

11g oracle xe启动_详解Oracle等待事件的分类、发现及优化

一、等待事件由来大家可能有些奇怪&#xff0c;为什么说等待事件&#xff0c;先谈到了指标体系。其实&#xff0c;正是因为指标体系的发展&#xff0c;才导致等待事件的引入。总结一下&#xff0c;Oracle的指标体系&#xff0c;大致经历了下面三个阶段&#xff1a;以命中率为主…

您可能不知道的 C++ 关键字

C 有些操作符&#xff0c;其实有对应的关键字&#xff08;目的是为了在没有这些字符的键盘也可以输入C程序) and &&and_eq &bitand &bitor |compl ~not !or ||or_eq |xor ^xor_eq ^not_eq !从可读性的角度看&#xff0c…

StringTokenizer将一个字符串分解为单词或者标记

原理&#xff1a;StringTokenizer方法实现了Iterator的设计模式&#xff0c;也直接实现了枚举接口&#xff0c;通常情况下StringTotkenizer对象根据欧洲语言的单词分割将对字符串分解为若干单词&#xff0c;例如&#xff1a; public class StringTokenizerReview {public stat…