0. 试用版生成的雕刻刀图:
1. CopperCAM09/07/2017,可以在www.coppercam.com网站中下载
2. OllyDbg工具
3. 闲话不多说,打开OllyDbg,装载CopperCAM.exe文件:
4. 点击运行按钮,出现CopperCAM窗口:
5. 在CopperCAM中打开一个AD制作的电路板图:
6. 生成雕刻刀图,出现告警框,说明这个软件没有注册:
7. 回到OllyDbg界面,点击M按钮,打开内存窗口,右键菜单选择查找条目:
8. 在查找对话框中输入在告警框中出现的字符串"Demonstration version":
9. 内存中的搜索结果如下图所示:
10. 点击字符串中任意字符,然后右键菜单设置断点-->内存访问:
11. 按Ctrl+F9(执行到返回)
12. 点击CopperCAM中告警框的确定按钮,此时程序中断在系统返回处:
13. 此时的程序中断在系统运行库当中,需要返回到程序本身的领空。连续点击Ctrl+F9(大概30多下)直到返回程序领空,向下移动汇编代码行,可以看到在返回代码前有两个CALL,其中一个call就是调用系统库函数MessageBoxExA的,说明程序中断路径正确。
14. 继续点击Ctrl+F9,回到上一个调用,看看汇编代码有什么变化,如果没有的话,继续返回,直到出现一些可疑信息:
15. 向上回看代码,直到看到头大也没有发现什么特别的,看样子是信息不全,那么先在软件注册窗口中随便填一些信息以增加代码分析的提示:
16. ok,继续Ctrl+F9返回上一级调用,在此下断点重新分析这个模块代码:
17. 重新运行雕刻刀图生成命令,程序在弹出警告框前先断在此处,看样子有戏,点击F7进入,仔细检查这个调用模块,发现先前注册窗口输入的信息出现在这个模块中,哈哈,接近成功了!
18. 仔细检查附近的代码行,看到什么了?对,就是这行:
19. 16进制的0x19,就是10进制的25,难道25个焊盘限制就在这,这么简单,试试看,把下一行的判断跳转命令改成直接跳转命令,看有什么情况发生?
20. 对头,警告框,没了,生成的雕刻刀图也完整了:
21. 选中修改的这行代码,右键菜单-->复制到可执行文件-->所有修改,在弹出窗口选择全部复制,在随后弹出的窗口右键菜单-->保存文件,将文件另存为一个可执行文件:
22. 享受软件的乐趣吧!