天天看点

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

一、取消NEG窗口(welcome to....)

双击该程序,出现欢迎词welcome to...。

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 点击确定,出现如下图所示

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

将该程序用OllyDbg打开

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 右击-中文搜索引擎-智能搜索

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

出现中文搜索引擎,向下滑动,可以找到welcome to...等字符串

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 1、双击第一个Try again!向上找可以找到一条跳跃语句,跳-失败,不跳-成功

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 爆破右:击用nop填充

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial
OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 向上找到函数头并下断

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 2、返回中文搜索引擎找到第二个Try again!双击

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 向上找到函数头,下断

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 3、双击第三个Try again!向上找可以找到一条跳跃语句,跳过正确的直接到错误的

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 右击用nop填充 

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

向上找发现第二个和第三个是同一个函数头

4、返回中文搜索引擎找到welcome to双击在函数头下断,点击运行,断下

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 第一行,右键,反汇编窗口中跟随

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial
OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 将JE改为JMP,永远跳过NEG

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 5、保存

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 再右键保存文件

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 打开保存的文件,不弹出NEG

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

二、Name/Serial:

POJIE:

将上一步得到的程序用od(管理员身份)再次打开,点击运行,点击Name/Serial

右击-中文搜索引擎-智能搜索,找到该语句,发现有两条

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

一条一条验证,先点击第一条,左边跳到该地址,向上翻,找到调用该函数的起始位置,0042F9A9 push ebp下断点,运行程序,多次F8步入,发现跳过了第一条,说明不是这一条,那就说明是第二条,点击第二条Sorry位置,可以看到上面有一个注册成功的位置,同样找到起始位置,0042F9A9 push ebp下断点,运行程序,多次F8步入,发现一条jnz XAcid_bur.0042F81F跳过语句

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 方法一:右边z标识位是0,将它设置为1,运行,单步注入,会发现成功了。

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 方法二:不让跳转执行,nop填充jnz语句,在上一句call语句下断点,运行,下断点,会发现无论输入什么都会成功,成功。

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

找到正确的注册码:

打开一个程序,在jnz上面语句下断点,运行,输入信息check

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 发现上面两条语句,EDX是自己输入的,EAX可能是真正的注册码:CW-4018-CRACKED

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 发现CW和CRACKED都是固定的,只有4018是运算出来的

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 到上面找到起始位置,设置断点,运行,点击check。F8单步注入,在调试的过程中发现

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 Call地址是计算出4018的地方,下断点,运行,check

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 到了起始位置,点运行,到了call断点,进入函数体,发现只有一个函数,进入,

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 这6个函数,其中有一个会计算出4018

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

 逐步尝试这6个函数是哪个输出了4018(进入函数,单步注入,观察结果)

经验证发现,当用户名是以123456开头的,注册码都是CW-4018-CRACKED

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial
OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

三、Serial

同Name/Serial一样,找到提示语句,将其Nop掉,就不会调到Failed这

OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial
OllyDbg分析crackme-AcidBurn一、取消NEG窗口(welcome to....)二、Name/Serial:三、Serial

继续阅读