OD 实验(二) - 绕过序列号验证
需要破解的程序

输入用户名和序列号,点击 Check,程序会进行校验

用 OD 打开程序
按快捷键 Ctrl+F9 跟随表达式 GetDlgItemTextA

点击 ok

在这里调用了 GetDlgItemTextA,按 F2 下一个断点
按这个 C 字母,快捷键为 Alt+C 回到程序的起始处

然后按 F9 运行程序,将弹出对话框

输入用户名 sch01ar,序列号 123456,然后点击 Check
程序将在断点处停下

此时的程序没有弹出序列号错误的对话框,因为程序只运行到断点处
按 F7 进行程序的运行

运行到 call 指令这个位置,可以按 F7 进入函数内,但是函数内没什么内容
跳出函数,按 F8 继续往下走

在这个地址看到了刚才输入的用户名
可以在 hex 中进行确认


继续按 F8 可以得到

EAX 中存放着序列号,EDX 中存放着用户名,EBX 中存放着用户名的长度
push 分别把 EAX,EDX,EBX 入栈,这三个是 call 调用地址为 00401340 函数的参数
这个函数可能是验证序列号的,直接看函数的返回值,按 F8 步过,往下走

运行到这,test 判断 EAX 是否为 0,如果为 0,零标志位 Z 就为 1
0 为 False,即结果不正确
按 F8 执行 test eax, eax

这时的 Z 的值就为 1 了,说明函数返回的是 False

双击 Z 的 1,变为 0

成功
把这个判断给去掉,双击这个 je 指令,或者按空格

改为 nop

接下来保存文件
选择这两行 nop,右键 -> 复制到可执行文件 -> 选择

然后在上面这个界面右键 -> 备份 -> 保存数据到文件
保存完后打开该程序

可以运行的
接下来看看有没有绕过序列号的验证

输入用户名 aaaaaa,序列号 111111,点击 Check

成功绕过了序列号验证
OD 实验(二) - 绕过序列号验证的更多相关文章
- OD之绕过序列号验证(二)
上次是修改程序的标题,大家应该感觉这只是一个起点而已,接下来我们可以尝试绕过序列号验证,这种技术应用在很多软件中,比如淘宝上要买什么的软件,商家都会发给`你一个用户名和密码,而且还有试用期什么的,这确 ...
- OD 实验(二十一) - 对反调试程序的逆向分析(二)
程序: 运行程序 点击“Verify” 关闭该程序,启动 OD 再运行程序 逆向: 用 OD 载入程序 按 F8 往下走 执行完这个 call 指令就弹出了对话框 这个 call 指令调用了 Dial ...
- OD 实验(二十) - 对反调试程序的逆向分析(一)
程序: Keyfile.dat 里的内容 该文件中要至少有 9 个 ReverseMe.A: 运行程序 用 OD 打开该程序,运行 弹出的是错误的对话框 该程序发现 OD 对它的调试,所以该程序对 O ...
- 20145215&20145307《信息安全系统设计基础》实验二 固件设计
20145215&20145307<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux ...
- 20145221高其&20145326蔡馨熠《信息安全系统设计基础》实验二 固件设计
20145221高其&20145326蔡馨熠<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 l ...
- 20145208 实验二 Java面向对象程序设计
20145208 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...
- ORACLE 实验二
实验二:数据操纵 实验学时:4学时 实验类型:综合型 实验要求:必修 一.实验目的 1.掌握SQL数据查询语句: 2.掌握SQL聚集函数的使用. 3.掌握SQL插入.改动.删除语句的使用. 二.实验内 ...
- SQL基本查询_单表查询(实验二)
SQL基本查询_单表查询(实验二) 查询目标表结构及数据 emp empno ename job hiedate sal comn deptno 1007 马明 内勤 1992-6-12 4000 2 ...
- 20162321王彪-实验二-Java面向对象程序设计
实验二Java面向对象程序设计 实验内容一 初步掌握单元测试和TDD 什么是单元测试:单元测试时开发者编写的一小段代码,用于检测被测代码的一个很小的,很明确的功能是否正确.执行单元测试,是为了证明某段 ...
随机推荐
- echarts-detail---散点图
data4 = [{ xAxis: result.AvgEvaluate, seriesId: ', name: '基干360综合分' }, { yAxis: evalue, seriesId: ', ...
- scrapy与scrapyd安装
Scrapy是用python编写的爬虫程序. Scrapyd是一个部署与运行scrapy爬虫的应用,提供JSON API的调用方式来部署与控制爬虫 . 本文验证在fedora与centos是安装成功. ...
- elastic_search 指令
#!/usr/bin/env python # -*- coding: utf-8 -*- """ pass """ import os i ...
- windows客户端远程访问linux下mysql方法
windows客户端远程访问linux下mysql方法 1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 &q ...
- css table 布局 与 JavaScript 指定区域打印功能
<!DOCTYPE html> <html lang="en"><head> <meta http-equiv="conte ...
- 使用反相器的rc振荡电路
多谐振荡器是一种自激振荡电路,该电路在接通电源后无需外接触发信号就能产生一定频率和幅值的矩形脉冲波或方波.由于多谐振荡器在工作过程中不存在稳定状态,故又称为无稳态电路. 一.门电路组成的多谐振荡器 1 ...
- 基于模k可逆计数的数字锁相环fpga实现
参考http://wenku.baidu.com/view/59420cb069dc5022aaea00bd.html 实现结构是参考的上边的实例,我用的全同步实现,实现过程中发现一些现象,做下记录. ...
- cocos2d-x 3.2 关闭按钮点击立马销毁自己报错
cocos2d-x 3.2 Button点击事件里调用移除当前层报错 http://www.th7.cn/program/ios/201408/271227.shtml 诡异的错误,点击关闭按钮,居然 ...
- IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件
IMP-00013: only a DBA can import a file exported by another DBA 处理方法:在给目标环境的用户赋予dba权限,或者细粒度一些,赋予imp_ ...
- bzoj3258秘密任务
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3258 因为只走最短路,所以先正反两遍djkstra,新建边. 这里的边是单向边.所以要用原来 ...