zoukankan      html  css  js  c++  java
  • OD学习笔记10:一个VB程序的加密和解密思路

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

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

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

      所有的VB程序几乎都是依赖于一个外部的动态链接库。这个动态链接库的名字是:MSVBVM60.dll(可能有多个版本,但名字都差不多~) 然而正是因为VB中所有的API函数都在DLL中去实现,所以导致我们在跟踪程序的执行代码时灰常频繁地在DLL领空和程序领空跳来跳去。。。 API函数的作用有很多,例如作为中介让我们的程序和指定设备进行沟通。

     

      试验软件:PC 2 Answering Machine Pro

      用查壳工具PEID查看后,信息如下图:

    显示出了该软件的编写语言是Virtual BASIC。

    Virtual BASIC编写的软件用OD调试时,由于VB的一些特性,会很麻烦。但是也会有捷径可寻,如下。

     VB破解的关键:

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

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

    (加黑的是比较常见的)

      在OD中针对以上API函数去跟踪分析,找到程序是否正在匹配、比较验证码之类的东西,会便捷不少,省去不必要的麻烦。

      第一次安装此软件时,它会通过分析本机网卡的mac地址,或者硬盘的编号生成一个独一无二的key,将其保存在系统里,那么我们就可以通过上面的函数来找到key。

  • 相关阅读:
    什么是索引?怎么创建索引?索引的使用原则?
    Cookie和Session的区别
    HashMap、Hashtable、ConcurrentHashMap的原理与区别
    vxlogcfg vxlogcfg – 修改统一日志记录配置设置
    磁盘阵列RAID介绍及计算公式
    二叉树的最近公共祖先 递归
    LRU 缓存机制
    从前序与中序遍历序列构造二叉树 递归
    MySQL 数据结构常用命令
    Node.Js 搭建简单的 EggJs 示例项目
  • 原文地址:https://www.cnblogs.com/yunji5566/p/4338560.html
Copyright © 2011-2022 走看看