一、取消NEG窗口(welcome to....)
双击该程序,出现欢迎词welcome to...。
点击确定,出现如下图所示
将该程序用OllyDbg打开
右击-中文搜索引擎-智能搜索
出现中文搜索引擎,向下滑动,可以找到welcome to...等字符串
1、双击第一个Try again!向上找可以找到一条跳跃语句,跳-失败,不跳-成功
爆破右:击用nop填充
向上找到函数头并下断
2、返回中文搜索引擎找到第二个Try again!双击
向上找到函数头,下断
3、双击第三个Try again!向上找可以找到一条跳跃语句,跳过正确的直接到错误的
右击用nop填充
向上找发现第二个和第三个是同一个函数头
4、返回中文搜索引擎找到welcome to双击在函数头下断,点击运行,断下
第一行,右键,反汇编窗口中跟随
将JE改为JMP,永远跳过NEG
5、保存
再右键保存文件
打开保存的文件,不弹出NEG
二、Name/Serial:
POJIE:
将上一步得到的程序用od(管理员身份)再次打开,点击运行,点击Name/Serial
右击-中文搜索引擎-智能搜索,找到该语句,发现有两条
一条一条验证,先点击第一条,左边跳到该地址,向上翻,找到调用该函数的起始位置,0042F9A9 push ebp下断点,运行程序,多次F8步入,发现跳过了第一条,说明不是这一条,那就说明是第二条,点击第二条Sorry位置,可以看到上面有一个注册成功的位置,同样找到起始位置,0042F9A9 push ebp下断点,运行程序,多次F8步入,发现一条jnz XAcid_bur.0042F81F跳过语句
方法一:右边z标识位是0,将它设置为1,运行,单步注入,会发现成功了。
方法二:不让跳转执行,nop填充jnz语句,在上一句call语句下断点,运行,下断点,会发现无论输入什么都会成功,成功。
找到正确的注册码:
打开一个程序,在jnz上面语句下断点,运行,输入信息check
发现上面两条语句,EDX是自己输入的,EAX可能是真正的注册码:CW-4018-CRACKED
发现CW和CRACKED都是固定的,只有4018是运算出来的
到上面找到起始位置,设置断点,运行,点击check。F8单步注入,在调试的过程中发现
Call地址是计算出4018的地方,下断点,运行,check
到了起始位置,点运行,到了call断点,进入函数体,发现只有一个函数,进入,
这6个函数,其中有一个会计算出4018
逐步尝试这6个函数是哪个输出了4018(进入函数,单步注入,观察结果)
经验证发现,当用户名是以123456开头的,注册码都是CW-4018-CRACKED
三、Serial
同Name/Serial一样,找到提示语句,将其Nop掉,就不会调到Failed这