x64dbg-硬件编码序列号寻踪三
9unk Lv5

目标程序

程序下载:crackme1.0

解压密码:9unk

任务目标:寻找正确序列号

观察程序

1.jpg

序列号寻踪

同样运行程序到主模块,然后使用 “Ctrl+N” 快捷键查看主模块使用的 API。这里理由三个重要的 API :GetWindowsTextA(获取用户输入的序列号);lstrcmpA(用于字符串比较);MessageA(用于显示一条消息)

2.jpg

我们把这 3 个 API 设置断点并运行程序

3.jpg

“Ctrl+F9” 运行程序到返回,可以看到此时的程序获取到了 password。

4.jpg

继续按 “F9” 运行程序到下一个断点处

5.jpg

lstrcmpA 比较两个字符串(区分大小写),如果 “lpString1” < “lpString2” 返回值是负数;如果 “lpString1” > “lpString2” 返回值是正数;如果 “lpString1” = “lpString2” 返回值是 0

可以看到 lstrcmpA 有两个字符串参数,我们按 “Ctrl+F9” 运行到返回,可以看到此时 EAX 的返回值是负数。

6.jpg

继续单步步过可以看到下面的关键判断和跳转

7.jpg

继续 “F9” 运行,可以看到它的报错信息参数。

8.jpg

9.jpg

我们重新输入 “cannabis” 进行测试,可以看到 lstrcmpA 的返回值是 0

10.jpg

继续运行可以看到此时的 ZF 标志位为 1。
11.jpg

最后 MessageBoxA 参数值提示已经 password 正确

12.jpg

13.jpg

  • 本文标题:x64dbg-硬件编码序列号寻踪三
  • 本文作者:9unk
  • 创建时间:2020-12-17 14:18:28
  • 本文链接:https://9unkk.github.io/2020/12/17/x64dbg-ying-jian-bian-ma-xu-lie-hao-xun-zong-san/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!