学习笔记第六课 VB程序
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程序的更多相关文章
- OD学习笔记10:一个VB程序的加密和解密思路
前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路. Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程 ...
- angular8 大地老师学习笔记---第六课
export class TodolistComponent implements OnInit { public keyword:string; public todolist:any[]=[]; ...
- Python学习笔记(六)
Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动 ...
- .NET MVC 学习笔记(六)— 数据导入
.NET MVC 学习笔记(六)—— 数据导入 在程序使用过程中,有时候需要新增大量数据,这样一条条数据去Add明显不是很友好,这时候最好就是有一个导入功能,导入所需要的数据,下面我们就一起来看一下导 ...
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
sql server 关于表中只增标识问题 由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...
- JVM学习笔记-第六章-类文件结构
JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁 ...
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...
- opencv学习笔记(六)直方图比较图片相似度
opencv学习笔记(六)直方图比较图片相似度 opencv提供了API来比较图片的相似程度,使我们很简单的就能对2个图片进行比较,这就是直方图的比较,直方图英文是histogram, 原理就是就是将 ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
随机推荐
- Firefox 调试 JavaScript 代码
第一步 新建 html 或者 jsp 文件 文件内容 <!DOCTYPE html> <html> <head> <meta charset="u ...
- Node.js server-side javascript cpu占用高
也不知道微软咋想的,不搞死我们的电脑不罢休 https://developercommunity.visualstudio.com/content/problem/27033/nodejs-serve ...
- Maven学习 八 采用Maven搭建SSM环境
第一步:创建一个Maven项目 项目的打包方式选择,war 第二步:在webapp下面创建java web项目的目录结构,并配置web.xml文件 <?xml version="1.0 ...
- idea设置utf-8
- php 批量下载文件
public function batchDownload() { $filename = 'tmp.zip'; $zipName = date('YmdHi') . '.zip'; $files = ...
- 修改云主机windows密码不生效
Step1:使用文本工具打开插件路径: 路径为:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages ...
- s6-6 TCP 连接释放
TCP 连接释放 任何一方在没有数据要传送的时候,都可以发送一个FIN置位了的 TCP 数据段 当FIN被确认的时候,该方向的连接被关闭 当双向连接都关闭了的时候,连接释放 两军队问题 两军队问题 ( ...
- ROS学习笔记(一) : 入门之基本概念
目录 基本概念 1. Package 2. Repositories 3. Computation Graph 4. Node 5. Master 6. Message 7. Topic 8. Ser ...
- Missing initializer in const declaration
这是一个 JS 的报错. 如果你要声明一个常量,必须要赋初值.否则就会报错. 比如这样就可以触发这个报错: const foo; 或者 const bar = xxx; 等号右侧由于拼写失误导致的js ...
- war包远程部署访问不到问题解决过程总结
项目完成后,先在本地ide测,用ide集成的tomcat,顺理发布,访问,然后放本地tomcat的webapp文件夹,顺理启动,访问,再放远程阿里云的tomcat的webapp文件夹,重启tomcat ...