VB程序的特殊地方在于:

前几课学的破解方法,诸如设置API断点,修改关键CALL的返回值,MESSAGEBOX断点等,这些对于VB程序都是无效的。

这节课是设置VB的API断点,绕过报错弹窗来破解。

第一步 查一下程序的基本信息:

发现看不出来有壳无壳,也不知道程序用什么编写的.

载入OD再观察。

第一步 OD载入程序

图1是 OD载入程序后的反汇编窗口代码样式

图2是 OEP工具里VB6反汇编代码的特征截图

可以发现两者的相似度很高,程序很有可能就是VB6编写的。

如果还不确定,可以向上翻页,看到下图就可以完全确定了(红圈处的msvbvm60)

有这些VB6的函数,那就百分百能确定是VB6程序无疑。

另外,代码段很整齐,没有乱码之类,应该是无壳的。

第二步 下断点

上方工具栏点击 BreakPoint----VB APIs----rtcMsgBox,设置VB的信息框断点。

下好断点后,F9运行程序,注册界面输入假码,点击注册。程序会停在刚才设置的断点位置

可以看到,程序停在了系统领空,这里是没法修改的,所以要尽快跳转到程序领空。

一直按住F8,不用担心跳的太远,程序在运行到弹出错误窗口的时候OD会停住,在错误窗口点了确定OD才能继续F8下一步。

继续F8,会遇到一个retn,然后跳出了当前的CALL,来到了程序领空。

这时,可以在刚才跳出的CALL的上方寻找关键跳

往上翻找,发现一个左箭头 ">",说明有一个跳转进来了。

而这个跳转刚好跳过了一个JMP,点击这个JMP发现其可以跳过报错提示。(太长不截图了)

所以只要回到这个下图红圈标记出的JE的源头,NOP掉,令原先被跳过的JMP实现跳转,就可以实现破解。

第三步  NOP掉JE,F9运行程序,点击注册,发现果然跳过了验证,注册成功。

学习笔记第六课 VB程序的更多相关文章

  1. OD学习笔记10:一个VB程序的加密和解密思路

    前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路. Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程 ...

  2. angular8 大地老师学习笔记---第六课

    export class TodolistComponent implements OnInit { public keyword:string; public todolist:any[]=[]; ...

  3. Python学习笔记(六)

    Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动 ...

  4. .NET MVC 学习笔记(六)— 数据导入

    .NET MVC 学习笔记(六)—— 数据导入 在程序使用过程中,有时候需要新增大量数据,这样一条条数据去Add明显不是很友好,这时候最好就是有一个导入功能,导入所需要的数据,下面我们就一起来看一下导 ...

  5. sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)

    sql server 关于表中只增标识问题   由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...

  6. JVM学习笔记-第六章-类文件结构

    JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁 ...

  7. ASP.NET MVC Web API 学习笔记---第一个Web API程序

    http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...

  8. opencv学习笔记(六)直方图比较图片相似度

    opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将 ...

  9. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

随机推荐

  1. Firefox 调试 JavaScript 代码

    第一步  新建 html 或者 jsp 文件 文件内容 <!DOCTYPE html> <html> <head> <meta charset="u ...

  2. Node.js server-side javascript cpu占用高

    也不知道微软咋想的,不搞死我们的电脑不罢休 https://developercommunity.visualstudio.com/content/problem/27033/nodejs-serve ...

  3. Maven学习 八 采用Maven搭建SSM环境

    第一步:创建一个Maven项目 项目的打包方式选择,war 第二步:在webapp下面创建java web项目的目录结构,并配置web.xml文件 <?xml version="1.0 ...

  4. idea设置utf-8

  5. php 批量下载文件

    public function batchDownload() { $filename = 'tmp.zip'; $zipName = date('YmdHi') . '.zip'; $files = ...

  6. 修改云主机windows密码不生效

    Step1:使用文本工具打开插件路径: 路径为:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages ...

  7. s6-6 TCP 连接释放

    TCP 连接释放 任何一方在没有数据要传送的时候,都可以发送一个FIN置位了的 TCP 数据段 当FIN被确认的时候,该方向的连接被关闭 当双向连接都关闭了的时候,连接释放 两军队问题 两军队问题 ( ...

  8. ROS学习笔记(一) : 入门之基本概念

    目录 基本概念 1. Package 2. Repositories 3. Computation Graph 4. Node 5. Master 6. Message 7. Topic 8. Ser ...

  9. Missing initializer in const declaration

    这是一个 JS 的报错. 如果你要声明一个常量,必须要赋初值.否则就会报错. 比如这样就可以触发这个报错: const foo; 或者 const bar = xxx; 等号右侧由于拼写失误导致的js ...

  10. war包远程部署访问不到问题解决过程总结

    项目完成后,先在本地ide测,用ide集成的tomcat,顺理发布,访问,然后放本地tomcat的webapp文件夹,顺理启动,访问,再放远程阿里云的tomcat的webapp文件夹,重启tomcat ...