小甲鱼 OllyDbg 教程系列 (七) :VB 程序逆向分析

 

小甲鱼视频:https://www.bilibili.com/video/av6889190?p=14

VB程序逆向反汇编常见的函数:https://www.cnblogs.com/bbdxf/p/3780187.html

程序下载地址:链接:https://pan.baidu.com/s/18igiL-YWn9wnIrJfKT8gBA     提取码:wygg 

PEiD 查壳工具:https://pan.baidu.com/s/1iNS4UlBvmXCxaj5a-AFupw    提取码:79z5 

 

关于 VB

 

 

VB 逆向 pj 关键:

针对变量:
__vbaVarTstEq
__vbaVarTstNe
__vbaVarCompEq
__vbaVarCompLe
__vbaVarCompLt
__vbaVarCompGe
__vbaVarCompGt
__vbaVarCompNe

 

针对字符串:
__vbaStrCmp
__vbaStrComp
__vbaStrCompVar
__vbaStrLike
__vbaStrTextComp
__vbaStrTextLike

关注加粗的即可!!
 

 

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 
  
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)

 

 

 

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

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

相关文章

一文尽揽2018 Google I/O:谷歌让你感受到AI科技的魅力

来源&#xff1a;智者无疆摘要&#xff1a;今年的主角依然是AI人工智能&#xff0c;它已经融入谷歌产品与软件系统中&#xff0c;但这次&#xff0c;谷歌在讲解AI或产品功能时候从理解人类和人性的角度举例&#xff0c;把AI带到了科技与人文的十字路口上。5月9日凌晨消息&#…

小甲鱼 OllyDbg 教程系列 (六) :PJ 软件功能限制(不修改jnz的非爆破方法)

小甲鱼视频地址&#xff1a;https://www.bilibili.com/video/av6889190?p13 小甲鱼OD学习第9讲&#xff1a;https://www.bbsmax.com/A/x9J23xEM56/ 程序下载地址&#xff1a;https://pan.baidu.com/s/1JTQ32xIBV6XiPtuXsOIgiw 提取码: r5t4 这次我们的任务是 pj 去掉注册软…

HTTP 和 HTTPS 协议

HTTP协议是什么&#xff1f; 简单来说&#xff0c;就是一个基于应用层的通信规范&#xff1a;双方要进行通信&#xff0c;大家都要遵守一个规范&#xff0c;这个规范就是HTTP协议。 HTTP协议能做什么&#xff1f; 很多人首先一定会想到&#xff1a;浏览网页。没错&#xff0c;浏…

卡耐基梅隆大学提出新型「自适应」技术,可提高「个性化神经机器翻译」质量...

原文来源&#xff1a;arXiv作者&#xff1a;Paul Michel、Graham Neubig「雷克世界」编译&#xff1a;嗯~是阿童木呀导语&#xff1a;现如今&#xff0c;随着人工智能的发展&#xff0c;机器翻译在一定程度上取得了很大的进展&#xff0c;但是大家都知道&#xff0c;语言的产生…

小甲鱼 OllyDbg 教程系列 (九) :Delphi 程序逆向特点

小甲鱼 OllyDBG 使用教程&#xff1a;https://www.bilibili.com/video/av30969642?p16 OD 实验(十二) - 对一个 Delphi 程序的逆向&#xff1a;https://www.cnblogs.com/sch01ar/p/9678256.html 程序下载地址&#xff1a;https://pan.baidu.com/s/1Gb97C6HBNlmph7MbGrN_SQ …

基于系统科学理论的认知科学研究进展

来源&#xff1a;人机与认知实验室摘要&#xff1a; 系统科学的一个未曾言明的假设是&#xff0c;一切事物都是以系统方式存在和运行的&#xff0c;都可以用系统观点来认识&#xff0c;一切问题都需要用系统方式来处理。关于认知的一系列问题也不例外。一、研究背景及方法2000年…

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向

小甲鱼 OllyDbg 视频教程 尝试 1 &#xff1a; https://www.bilibili.com/video/av6889190?p17 尝试 2 &#xff1a; https://www.bilibili.com/video/av6889190?p18 小甲鱼OD学习第13-14讲&#xff1a;https://www.bbsmax.com/A/QV5ZL1gZzy/ 逆向常用 api &am…

小甲鱼 OllyDbg 教程系列 (十一) : inline patch ( 内嵌补丁 )

小甲鱼 OllyDbg 视频教程&#xff1a;https://www.bilibili.com/video/av6889190?p19 程序下载地址&#xff1a;https://pan.baidu.com/s/1u6SWgx83VWDwitNzxT2OXg 提取码&#xff1a;if41 PEiD 查壳工具&#xff1a;https://pan.baidu.com/s/1iNS4UlBvmXCxaj5a-AFupw …

5 年提速 500 倍,英伟达 GPU 创纪录突破与技术有哪些?

作者&#xff1a;诗颖摘要&#xff1a;日前&#xff0c;英伟达 Developer Blog 上一篇博文详细陈述了英伟达 Volta Tensor Core GPU 在深度学习社群取得的巨大突破&#xff0c;以及种种突破背后的技术细节。2017 年 5 月&#xff0c;在 GTC 2017 上&#xff0c;英伟达 CEO 黄仁…

【译】Lesson 1: 一个三角形和一个方块

【声明】&#xff1a;本系列文章译自&#xff1a;http://learningwebgl.com/blog/?page_id1217&#xff0c; 感谢Giles Thomas&#xff1b;限于我的英文水平&#xff0c;本文翻译并不一定严格遵从原文&#xff0c;但也不会严重背离原文&#xff08;如果有&#xff0c;请务必知…

小甲鱼 OllyDbg 教程系列 (三) :PJ 软件功能限制

小甲鱼OllyDbg教程&#xff1a;https://www.bilibili.com/video/av6889190?p8 https://www.freebuf.com/articles/system/87723.html 程序下载地址&#xff1a;https://pan.baidu.com/s/1OprawMSCXPZw1wuY5vxMmA 提取码: tp9e 无壳的实例 目标&#xff1a;去除软件功能限制…

特朗普即将主持AI会议 中美竞争成焦点

来源&#xff1a;华尔街见闻摘要&#xff1a;特朗普将用一整天在白宫主持他当选以来的第三次科技大会&#xff0c;这次的主题是人工智能&#xff08;AI&#xff09;。特朗普都将和硅谷巨头们探讨AI相关话题。其中&#xff0c;对AI技术的监管以及中美之间的AI竞争将会是会议的焦…

Fedora 10初体验

一、前奏 Fedora 10 - 熄灭吧 Fedora 是基于 Linux 的操作细碎&#xff0c;包罗了从容和开源软件最新的效果。Fedora 准许通通人从容操纵、修正和重新宣布。它由普及举世的贡献者协作开发&#xff0c;他们组成了 Fedora 项目社区。Fedora 项目对通通人都是开放的。 Fedora 项目…

DeepMind重大突破:AI进化出大脑级导航能力,像动物一样会“抄小路”

作者&#xff1a;刘伟摘要&#xff1a;DeepMind团队称&#xff0c;其最新研发出的一个人工智能程序具有类似哺乳动物一样的寻路能力。美国东部时间 5 月 9 日&#xff0c;一手打造 AlphaGo的DeepMind 团队又在世界顶级学术杂志《自然》上发表了一项重磅成果。在一篇题为 Vector…

小甲鱼 OllyDbg 教程系列 (十二) : inline patch ( 内嵌补丁 ) 之 调用堆栈查找法

小甲鱼 OD 教程&#xff1a;https://www.bilibili.com/video/av6889190?p20 堆栈调用方法 程序运行后&#xff0c;直接断点到 004DC0D1 这个 位置&#xff0c;按 F8一直没反应&#xff0c;打开程序&#xff0c;可以看到 neg 窗口&#xff0c; 点击 exit &#xff0c;关闭 neg …

Solaris 11 安装图解(8)

豆豆网 技能应用频道 图 13 完成安装界面 完成安装之后&#xff0c;安装日记会保留在文件中。可在以下地位检查安装日记&#xff1a;■ /a/var/sadm/system/logs/install_log■ /a/var/sadm/system/logs/upgrade_log■ /a/var/sadm/system/logs/sysidtool.log三、 系统登录…

CPU是如何制造出来的

来源&#xff1a;EDN电子技术设计摘要&#xff1a;Intelx86架构已经经历了二十多个年头&#xff0c;而x86架构的CPU对我们大多数人的工作、生活影响颇为深远。CPU是现代计算机的核心部件&#xff0c;又称为“微处理器”。对于PC而言&#xff0c;CPU的规格与频率常常被用来作为衡…

解析:GE工业互联网平台Predix

来源&#xff1a;赛迪智库摘要&#xff1a;当前&#xff0c;工业互联网平台作为我国构建工业互联网生态的核心载体&#xff0c;成为推动制造业与互联网融合的重要抓手。早在2012年GE提出工业互联网的概念&#xff0c;随后推出Predix&#xff0c;要将GE在工业领域的技术设备硬件…

小甲鱼 OllyDbg 教程系列 (十三) : 把代码和变量注入程序 以及 硬件断点

小甲鱼 OllyDbg 视频教程&#xff1a;https://www.bilibili.com/video/av6889190?p21 程序下载地址&#xff1a;https://pan.baidu.com/s/1A4-BDgbdUgy-cmI4IMMzYw 提取码&#xff1a;jsdv 开始&#xff0c;按照惯例&#xff0c;首先用 PEiD 打开&#xff0c;看下是什么语…

小甲鱼 OllyDbg 教程系列 (十四) : 模态对话框 和 非模态对话框 之 URlegal 和 movgear

小甲鱼 OD 使用教程&#xff1a;https://www.bilibili.com/video/av6889190?p22 exeScope 下载&#xff1a;https://pan.baidu.com/s/1dSWapltdQsX9ttl_lSoq_g 提取码&#xff1a;yz2p URlegal 下载&#xff1a;https://pan.baidu.com/s/1Ljbvsnk_1Ps0e-cp7a1F9A 提取码…