第一期 17 F12 暂停法寻找注册码

查壳, 没壳

软件基本流程

打开软件, 发现有注册项, 并且有错误提示弹窗, 直接 OD 载入

载入后 F9 运行, 我们注册, 输入 123

程序会弹出错误提示框, 这时候我们不要关闭这个提示框

我们回到 OD 并按下 F12, 也就是暂停快捷键

F12 暂停

然后我们 Alt+F9, 这时候 OD 显示 返回到用户代码, 我们关闭提示框

回到程序领空

现在 OD 回到了程序领空, 我们往上寻找关键跳

跳转来自两个地方

发现两个跳转都能来到这里, 我们先去第一个看看, 第二个也就在下面不远

为什么这两个跳转都没有实现, 从而跳过错误提示呢 ? 不难发现这有个跳转来源, 跳过了这两个跳转

跳转来源

我们跟过去看看, 下断然后运行

程序断在这里, 并且跳转已经实现, 我们修改标志位测试下, 发现注册成功

测试成功

我们改代码右键保存, 不过很明显这是个重启验证

关键 call

这时候我们就用到关键 call 了, 下个断, 等会 F7 跟进去

进去之后我们 F8, 并注意寄存器和堆栈窗口的变化

断在关键 call

现在已经出现我们刚才输入的 123 假码了

出现假码 123

机器码也出现了

机器码出现

下面就该真码出场了(也许是真码, 我们先复制下来) :

0012EBFC 0FB35C94 ASCII "DEPw-1303245d5-0303"

真码

我们测试下这个码 (记得用没破解的那个), 提示注册成功, 我们重启程序, 发现 OK 了, 至此我们大功告成

OK