当前位置: 首页 > news >正文

菜鸟笔记#2.获取注册码

【实验目的】

1) 掌握利用查找字符串的方法下断点追出软件内的注册码

【实验原理】

1) 利用软件登录时,提供的关键字,找到关键CALL下断点,单步调试追出注册码。

【实验环境】

工具:OllyDBG
软件:C:\software\20.获得注册码\Remove Nag.exe

【实验步骤】

一、了解软件验证机制

1.1 运行Remove Nag.exe软件,在用户名和密码栏中输入任意数值,单击“登录”按钮。如图1所示


图1

1.2 弹出关键字提示对话框,记录下关键字“Name / Code mis-match. Try again.”。 如图2所示


图2

二、利用PEID查壳

2.1 进入软件目录,选择目标软件,右键发送到PEID,进行查壳。如图3所示


图3

2.2 PEID软件提示无壳。如图4所示


图4

三、利用OllyDBG程序暴力破解软件

3.1 将Remove Nag.exe载入OllyDBG程序。如图5所示


图5

3.2 单击反汇编窗口,右键菜单选择“中文搜索引擎”->”智能搜索”。 如图6所示


图6

3.3 在弹出字符串界面,在字符串对话框中发现了“Name / Code mis-match. Try again.”。双击这行,跳转到反汇编窗口对应的那行。如图7所示


图7

3.4 向上查找关键跳转,接着向上找到关键CALL,按F2下断点。如图8所示


图8

3.5 单击工具栏中的“运行”按钮,软件登录界面输入帐号和密码(输入值为任意,因为要观察软件在输入错误的帐号和密码的情况下,这个关键CALL是否会实现),发现跳转实现(红色代表实现跳转)。如图9所示


图9

3.6 程序在关键CALL处暂停,按F7进入CALL函数中查找序列号。如图10所示


图10

3.7 按F8快捷键,单步跟踪,直到找到对应的注册码(E8AE81EBA17C4551CB123FFCA919B5D7)。如图11所示


图11

3.8 把对应的用户名111111和密码E8AE81EBA17C4551CB123FFCA919B5D7输入软件,注册成功。如图12所示


图12


Q1.关于这个实验似乎Code是有一个注册码算法,所以最后F8追踪出来的注册码可能不是E8AE81EBA17C4551CB123FFCA919B5D7。
[?]Q2.除了看call以外,这个实验可以暴力破解吗?根据实验,最后程序崩溃0.0。why?

相关文章:

  • OD快捷键使用大全
  • 菜鸟笔记#3.跳转破解
  • 菜鸟笔记#4.带壳破解
  • Japanese Class notes :1
  • 【Codevs 1088】神经网络 【NOIP 2003】
  • 【BZOJ 2956】模积和 【中国国家队清华集训 2012-2013 第一天】
  • python#WS001 requests库
  • python#WS002 beautifulsoup4
  • python#WS003 爬虫规则习题
  • 【Bugku】这是一张单纯的图片?? 【writeup】
  • 【转】隐写工具篇
  • [Bugku]密码???[writeup]
  • 【转】Linux下的cat指令
  • 【CodeVS 1007】级数求和
  • 主机接口
  • Java Agent 学习笔记
  • JAVA并发编程--1.基础概念
  • MySQL的数据类型
  • Python_OOP
  • 创建一种深思熟虑的文化
  • 分布式事物理论与实践
  • 前嗅ForeSpider中数据浏览界面介绍
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • ​520就是要宠粉,你的心头书我买单
  • (175)FPGA门控时钟技术
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (一)UDP基本编程步骤
  • (一)WLAN定义和基本架构转
  • (转)Windows2003安全设置/维护
  • (转)详解PHP处理密码的几种方式
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .htaccess 强制https 单独排除某个目录
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET与 java通用的3DES加密解密方法
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [BZOJ2850]巧克力王国
  • [C# WPF] 如何给控件添加边框(Border)?
  • [C# 网络编程系列]专题六:UDP编程
  • [C语言]——分支和循环(4)
  • [DEBUG] spring boot-如何处理链接中的空格等特殊字符
  • [FT]chatglm2微调
  • [GXYCTF2019]BabySQli1
  • [IM] [Webhook] Webhook实现IM平台机器人
  • [JavaScript] JavaScript事件注册,事件委托,冒泡,捕获,事件流
  • [Java开发之路](14)反射机制
  • [leetcode] Balanced Binary Tree
  • [LeetCode]—Add Binary 两个字符串二进制相加
  • [POJ - 2386]
  • [Python GUI PyQt] PyQt5快速入门
  • [RK3568 Android11] Input UI 使用流程
  • [UI5 常用控件] 02.Title,Link,Label
  • [vijos1554bzoj1411]硬币游戏快速幂