Crackme--Acid burn(第一个程序)

Crackme : Acid burn.exe

难度系数:★

工具: Ollydbg(OD)  中文版

运行 Acid burn.exe

首先打开OD 加载 Acid burn.exe 输入错误的注册名和密码 提示Sorry,The serial is incorect!(对不起,序列号错误!)

打开OD-->插件-->中文搜索引擎-->搜索ASCLL   快捷键ctrl+F 搜索字符串Sorry,The serial is incorect!的所在位置

双击进入CPU窗口,这里的地址为0042FA63 我们先记下这个地方方便下次调试(Ctrl+G跳到这个位置)。

在0042FA63 之前有一个jge 跳转指令(大于等于则跳转) 如果这里跳转了就跳过了提示信息

我们在跳转前面下一个断点(F2下断点) 查看一下执行情况  运行程序(F9) 重新输入假的注册名和密码 发现程序被断下来了。我们按F7 单步调试 执行到call 00406930

后发现掉进了程序作者设下的深坑。

明显这里并不是我们寻找的提示 我们继续往下找 会发现 存在一个相同的提示  上面有两个字符串Congratz !! (恭喜!!) 和  Good job dude =) (干得漂亮,伙计)  明显这里就是我们要寻找的出口点了。

我们找到Congratz !! 前面的 jnz(不等于 ZF=0)则 跳转  如果跳转成功 会跳转到0042FBEF处 这里就是我们要找的关键跳了~在这条指令之前有一个call 肯定是关键call了。我们使用快捷键Alt+B打开断点窗口,删除掉之前下的断点。回到CPU窗口(Alt+C)

我们在call之前下一个断点跟踪调试(Ctrl+F2重新开始 -- 运行)

此时 EAX的值为CW-8856-CRACKED  EDX的值为我们的假密码11111111111111111111111

这里我们怀疑CW-8856-CRACKED 就是我们要找的注册码 我们进入这个call里看看。

这里我们可以看出

mov esi,eax

mov edi,edx

cmp eax,edx

je 00403A9A

用eax和 edx中的值去比较  如果相同则跳转 这里我们就分析出来 密码的确是CW-8856-CRACKED。

爆破: 我们想实现爆破肯定要从jnz入手。让ZF=1  jnz不跳转即可。我们修改cmp eax,edx

为cmp eax,eax 即可。

Crackme--Acid burn(第一个程序)

时间: 2024-10-10 12:13:56

Crackme--Acid burn(第一个程序)的相关文章

java基础--JDK安装、环境变量配置、工具开发第一个程序、数据类型、运算符

**-----Java基础大纲-----**   **-----本章节-----** 1.Java语言的历史.特点及工作原理 2.JRE和JDK的介绍 3.Java运行环境和开发工具 4.Java基础语法 **-----下一章节-----** 5.条件语句 6.循环 7.数组 ============================================== 一:历史及开发准备 1.Java发展历程及来源 (1)发展历程 1996年1月,Sun公司发布了Java的第一个开发工具包(JD

Linux下C++的编程——开发环境搭建与第一个程序

上一篇文章Linux下C++的编程--开偏介绍中我们已经介绍了GUN.GCC.G++等一些重要的概念,现在应该开始动手实践了! 开发工具的安装 环境 Distributions版本:CentOS 6.7 Linux内核片:2.6.32-573.3.1.el6.i686 一般Linux安装完之后默认就已经安装了GCC(GNU Compiler Collection),你可以查看一下gcc和g++的版本号检查gcc和g++是否已经安装. [luowf@luoweifu ~]$ gcc -v gcc

日更第2期-2015-1-15-openFrameworks系列第一讲-手把手制作openFrameworks上的第一个程序!

恩,今天和朋友打球来着,于是今天的案例程序就做一个球吧!O(∩_∩)O哈哈~ 首先,没有看过上一篇教程的同学,还有还没有下载好VS和OpenFrameworks的同学,都去下一下. 传送地址:http://www.cnblogs.com/linongbo/p/4227552.html 那么,开始今天的日更啦! Hello OpenFrameworks! VS的安装部分我就不说了,不过我个人建议——默认是安装在C盘的,不过你要是手动改到别的盘上的话,C盘上 依然会有6G左右的内容.......Σ(

[Fluent NHibernate]第一个程序

目录 写在前面 Fluent Nhibernate简介 基本配置 总结 写在前面 在耗时两月,NHibernate系列出炉这篇文章中,很多园友说了Fluent Nhibernate的东东,也激起我的兴趣,想对它一探究竟,这里也将Fluent Nhibernate写成一个系列,记录自己的学习过程,关于这东东,也是第一次接触,也只能边摸索,边记录了.如果有描述错误的地方,还望多多包涵. 通过Nhibernate的学习,都觉得Nhibernate的使用映射文件的编写很麻烦,这里通过Fluent Nhi

Android使用AndEngine创建第一个程序

首先要把andengine.jar复制到libs文件夹里 01 package com.hu.anden; 02   03 import org.anddev.andengine.engine.Engine; 04 import org.anddev.andengine.engine.camera.Camera; 05 import org.anddev.andengine.engine.options.EngineOptions; 06 import org.anddev.andengine.

在Win7(64位)使用VS2015运行《OpenGL编程指南》第八版第一章程序的方法

前言:笔者第一次用vs2015来实现<OpenGL编程指南>第八版第一个程序时确实花费了不少时间,按照网上教程,尝试了各种方法,最终花费了两个上午加一个下午的时间, 成功运行了程序,花了这么多时间,确实让人懊恼,现在把运行程序的步骤记录下来,以便查阅. 1.第一步,下载oglpg-8th-edith. 如果去书本上的官网下载,下载的是第九版的,而不是第八版的源码. 去其他网站下载,下载的这个包里面没有第一章的源码,可以网上黏贴其他人的代码,建议下第八版源码,下载网址:链接:http://pan

ExtJS 第一个程序

本篇介绍如何创建一个ExtJS应用程序.并通过创建目录.导入文件.编写代码及分析代码等步骤来解释第一个ExtJS程序. 目录 1. 创建程序 1.1 创建目录建议 1.2 实际目录 1.3 index.html 1.4 运行图 2. 代码分析 2.1 Ext.onReady() 2.2 Ext.create() 1. 创建程序 1.1 创建目录建议 根据官方建议,创建一个ExtJS应用程序的目录推荐如下: - appname | - app | - namespace | - Class1.js

1.2 第一个程序

按照一般的学习惯例,第一个程序自然就是"Hello World". 运行结果如上图.代码: 在主函数中只需4句话即可创建一个新的窗口,并在其中显示文字. ? ? 第1~2行:包含头文件. 在Qt中,每一个类都有一个与该类同名的头文件. 例如主函数中的QApplication类,它的头文件就是<QApplication>,QLabel类的头文件是<QLabel>. 第6行:创建一个QApplication对象. 用到的构造函数:QApplication ( int

JAVA的第一个程序

关于下载安装环境变量的配置网上的教程已经很多了 . 下面附上第一个HelloWorld的代码 /** 这是我的第一个java程序 */ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World !"); } } 没有集成开发环境下 , 你将程序写入记事本 , 并将文件的后缀改为.java 这是java源程序的标准程序 . 在完成之后我们就开始编译了