结合ida和od结合效果最好。
打开程序,首先是一个nag窗口(去除nag)
常用方法,一寻找字符串,
发现和以往的 不同,不是对话框句柄的形式。
只能第二种方法,单步找到对话框出现的位置。
0042fd97-->00429fc2-->0042563d-->0042f797-->0042a191(随着程序执行,数据进栈,有趣的会发现每次都会调用这一个对话框但压入的数据不一样,所以对话框也不一样,后来就会发现)。
在调试过程中,细心的会发现
这个地方很有趣,假如这个je跳转实现了,就会跳过这个nag窗口。重要的就是上面的cmp语句了。这里我们就简单的把cmp修正为and。就可以了。
有人也许会说怎么不找到对话框出现的位置,把call给nop了。原因在于这个程序用的都是那一个对话框模式,nop了程序其他的提示框就不会出现了,所以不能nop.
第一个序列号的破解
先看下程序有没有什么提示
有一个字符串,这个也许就是切入点查找下。用IDA
黄色字体的是引用数据的地方,点击进入
把程序加载进来
进入往下走
关键地方,有必要进入
惊喜发现
发现了什么,Hello Dude!这个不就是字符串么,通过一系列赋值比较,判断。所以Hello Dude!就是这个框所需要的序列号
第二个序列号的破解
用OD加载进来,弹出对话框,随意输入信息。看看会出现什么提示。
这时,我们再打开IDA看相应的信息。shift+F12,查找字符串
有内容吧,还是那个关键的跳转。
其实,这个应该是可以写出注册机的,每输入一个名字,就会有相应的码对应,例如1234 CW-4018-CRACKED。就是正确的,但这里我们直接用暴力破解。
进入到关键函数4039FC,会发现和上面一样
简单的就把cmp 换成and 就可以了。这样爆破成功
来自为知笔记(Wiz)