zoukankan      html  css  js  c++  java
  • VB逆向

    大家或许有所察觉了,随着我们课程的不断深入学习,我们感觉自身逆向的“内功”也在不断的增进!

    我们从爆破入手,到现在逐步大家进入程序的内部,认识不同编译器开发的程序,探索不同的加密逻辑。

    前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路。

    为了让大家更好地了解逆向,我们需要掌握不同编译器编译出来的程序的特点,然后才能有针对性的进行逆向。

    其中,在逆向一个程序前,先搞清楚这个程序是由什么编译器和神马语言写出来的,是灰常必要的。

    高手只需要从代码间的细小差别就可以看出端倪,而菜鸟们也有便捷的工具可以一步到位告诉你这个程序是由什么编译器编译的:PEiD.exe

    我们看到了,这个程序是一个VB程序。

    Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程语言。

    VB是由事件驱动的编程语言:

    就是在可视化编程环境下我们可以绘制一些窗体,按钮,编辑框等控件,然后为这些控件所可能引发的事件如按钮被单击或者被双击编写对应的处理代码。

    不过作为类似的语言,小甲鱼建议大家可以学下Delphi或者C#。

    所有的VB程序几乎都是依赖于一个外部的动态链接库。这个动态链接库的名字是:MSVBVM60.dll(可能有多个版本,但名字都差不多~)

    然而正是因为VB中所有的API函数都在DLL中去实现,所以导致我们在跟踪程序的执行代码时灰常频繁地在DLL领空和程序领空跳来跳去跳来跳去跳来跳去跳来跳去跳来跳去跳来跳去 。。。。。。

    API函数的作用有很多,例如作为中介让我们的程序和指定设备进行沟通。

    VB破解的关键

    针对变量:

    __vbaVarTstEq

    __vbaVarTstNe

    __vbaVarCompEq

    __vbaVarCompLe

    __vbaVarCompLt

    __vbaVarCompGe

    __vbaVarCompGt

    __vbaVarCompNe

    针对字符串:

    __vbaStrCmp

    __vbaStrComp

    __vbaStrCompVar

    __vbaStrLike

    __vbaStrTextComp

    __vbaStrTextLike

  • 相关阅读:
    浅谈独立使用NDK编译库文件(Android)
    Ubuntu 13.04 安装使用clang
    一道TOPK问题
    exp-00091 oracle错误的解决办法
    win32多线程程序设计笔记(第四章下)
    数据库索引的实现原理 (转)
    [置顶] linux常用命令手册
    ZigBee研究之旅(二)
    java中length,length(),size()区别
    浅谈href=#与href=javascript:void(0)的区别
  • 原文地址:https://www.cnblogs.com/milantgh/p/3870254.html
Copyright © 2011-2022 走看看