逆向学习(七):VB程序特别篇

一、介绍

Virtual Basic是由早期DOS时代的BASIC语言发展而来的可视化编程语言。
所有VB程序几乎都依赖一个外部的动态链接库(MSVBVM60.dll),可能有多个版本,但名字都差不多。
正是因为VB中所有的API函数都在DLL中实现,到时在跟踪程序的执行时会频繁地在DLL领空和程序领空跳来跳去跳来跳去......
API函数的作用有很多,例如作为中介让程序和指定设备进行沟通。

我们需要记住的常用关键变量和字符串有:

变量 字符串
__vbaVarTstEq __vbaStrCmp
__vbaVarTstNe __vbaStrComp
__vbaVaCompEq __vbaStrCompVar
__vbaVarCompLe __vbaStrLike
__vbaVarCompLt __vbaStrTextComp
__vbaVarCompGe __vbaStrTextLike
__vbaVarCompGt
__vbaVarCompNe

二、逆向过程

1、找出关键函数并下断点

针对VB程序,需要将我们上面的变量/字符串一个一个在OD中查找,尝试找出需要的语句。
在OD窗口中,Ctrl + N打开输入输出表,直接在窗口输入变量名即可,如"vbaVarTstEq"。选中变量所在行,鼠标右键选择在每个参考上设置断点

2、运行程序

F9运行程序,在第一个断点处停下,然后F8往下走,注意观察右侧字符串提示。往下走的过程中,发现有一串字符类似于注册码。将该字符串记下,重新载入并运行程序,输入该字符串。刚好出现注册成功的提示!

三、总结

VB属于老的程序语言,现在市面上大部分的软件都不是VB所写,因此碰到的几率不大。在此只做简单解释逆向思路。

评论

Your email address will not be published. Required fields are marked *

Scroll Up