这次我们的任务是破解这个要注册的软件,如下图所示

当我们输入账号密码的时候,它会提示输入的账号密码是无效的,如下图

我们把程序载入OD,然后在查找字符串那里输入提示的无效账号密码的字符串,如下图

然后下断点

然后运行程序,然后点击注册按钮,我们来到了如下图所示的地方,经过观察,我们可以发现,这个软件是否成功注册取决于地址4299B5 的代码test al,al

于是我们在这行代码的前一个call MrBills.0040714C下断点,如下图所示

再次运行程序,点击注册按钮,然后在断点  004299AD处进入程序内部,程序内部如下图所示,

这个时候,我们重点关注有寄存器AL的地方,然后经过观察,我们发现了 地址为00407011  mov al.bl

然后我们尝试把这行代码改为 mov al,1,  看看有什么效果

修改,然后保存

然后打开程序,发现已经破解成功!!!我们的猜想是正确的!

小甲鱼OD学习第9讲的更多相关文章

  1. 小甲鱼OD学习第1讲

    这一讲我们的目标是修改Hello.exe对话框的标题和内容,如图所示 把程序放进OD,按F8一步步运行,直到程序弹出对话框为止,然后在弹出对话框位置处下断点 按Ctrl+F2重新载入程序,然后按F9直 ...

  2. 小甲鱼OD学习第6讲

    这次我们的任务是破解这个通讯录的软件,首先,我们在通讯录一个分组添加第5个人,发现弹出对话框,限制每组只能添加4个人 并且发现最多只能添加3个分组 我们把程序载入OD,运行,添加人,这个时候点击暂停, ...

  3. 小甲鱼OD学习第8讲

    这次我们的任务是破解这个有日期限制的软件 我们可以看到,这个一个有日期限制的软件,如图所示 首先,我们把程序载入OD,我们从字符串搜索入手,选择  所有参考文本字串,如图 我们输入相应的字符串尝试搜索 ...

  4. 小甲鱼OD学习第2讲

    这次我们的任务是让我们输入任意用户名密码判断正确 我们输入fishc和111111,显示错误 我们猜测这是用GetDlgItemTextW来收集账号密码的输入值 我们找到了两个函数,给这两个函数都下断 ...

  5. 小甲鱼OD学习第3讲

    这次我们的任务是破解这个过期的软件,效果如图所示 我们通过阅读代码,知道这个程序的执行流程如图中注释所示 观看下图注释所示 这是失败的提示代码 这是成功的提示代码 最后我们可以得出结论,成功破解软件的 ...

  6. 小甲鱼OD学习第7讲

    这次我们任务是破解这个有日期限制的软件,效果如图所示 我们一边下断点一边调试哪里是NAG窗口的程序,最终我们发现在地址 00489912  处的代码是NAG窗口的代码 通过观察我们把004898E1处 ...

  7. 小甲鱼OD学习第11讲

    这次我们的任务是破解这个需要注册的软件,如下图所示 我们这次从字符串入手,我们查找 unregistered  字符串 然后我们在如下图的字符串下断点 然后我们来到断点处,我们观察到 地址为 0040 ...

  8. 小甲鱼OD学习第12讲

    这次我们的任务是破解这个需要特定的注册码的软件,如下图 我们从字符串入手,输入register,搜索 我们点击    查找下一个,看看有什么有用的字符串,如下图 然后,在下方,我们发现了  Regis ...

  9. 小甲鱼OD学习第13-14讲

    这次我们的任务是破解这个需要注册码的软件,如下图所示 我们搜索上图相应的提示字符串,看看能找到什么线索,我们搜索  invalid  code  试试看,如下图 然后下断点,如下图所示 我们来到断点处 ...

随机推荐

  1. powerdesign

  2. [国嵌攻略][065][DM9000驱动程序设计]

    移植代码:通过已有的可用的代码修改到新环境下运行. 代码编写: 初始化网卡 1.选中网卡 nLAN_CS BWSCON(0x48000000) DW4:01 16bit BANKCON4(0x4800 ...

  3. JavaScript八张思维导图—数组用法

    JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实践 不知不觉做前端已经五年多了,无论是从最初的jQuery还是现在火热的Angular,Vu ...

  4. nodejs学习笔记 —— 异步编程解决方案

    在js或者node编程中,由于异步的频繁和广度使用,使得回调和嵌套的深度导致编程的体验遇到一些挑战,如果写出优雅和好看的代码,本文主要针对异步编程的主流方案做一些总结 1.事件发布/订阅模式 事件监听 ...

  5. ubuontu16.04安装Opencv库引发的find_package()错误信息处理及其简单使用

    在安装完Opencv库之后,打算测试一下Opencv库是否成功安装.下面是用的例子对应的.cpp代码以及对应的CMakeLists.txt代码: .cpp文件: #include <stdio. ...

  6. 5分钟学会使用gitlab

    第一次接触到gitlab,操作不是很熟练,犯了一堆错,在多次尝试之后,大概了解了流程,这篇文章主要帮助大家快速上手gitlab,如果文章有什么不对的地方,欢迎在评论区留言~ 1.新建项目 首先你得有个 ...

  7. Select、Poll、Epoll、 异步IO 介绍

    一.概念相关介绍 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的net ...

  8. tomcat 部署war项目

    前提是 jdk环境已配好 把项目war包放到tomcat的webapps目录下 启动tomcat: 这里我把8080端口修改成了80 IP也修改了 如果没修改直接输入localhost:8080/te ...

  9. Python---多线程(threading)

    1. 概述 threading提供线程相关操作,python当前版本的多线程库没有实现优先级.线程组,线程也不能被停止.暂停.恢复和中断 threading提供的类: Thread,Lock,Rloc ...

  10. java1.8--改进的接口

    关于接口,每天的编码都在写,就不多说了.这里对比下接口,抽象类,类3者的关系: 1),接口是一种规范,就是告诉外界这个东东可以做什么. 2),抽象类是一种模板,就是告诉外界这个东西的一部分公共功能. ...