本文介绍了一个制作注册机的工具——KeyMake,其界面如图1所示。图1KeyMake工具界面KeyMake有很多功能,这里主要介绍下的功能“Others”菜单,如图2所示。图2“Other”菜单下的功能KeyMake菜单主要有三个功能,分别是“内存注册机”、“制作文件补丁”和“制作内存补丁”。分别用三个程序实例制作了三个补丁程序。首先,让我们制作一个“记忆登记机”。在KeyMake的“Others”菜单下选择“MemoryKeygen”,出现“SetKeygenInformation”界面,如图3所示。图3“设置注册机信息”界面在“ProgramName”中选择前面编写的CrackMe程序”如图3所示,然后点击“添加”按钮,出现“添加数据”界面,添加相应的数据,如图4所示。图4“添加数据”界面图4中,首先添加中断地址,在“中断地址”中输入“00401E9E”,在“中断次数”中输入“1”,在“第一个字节”E8中输入“”,在“CommandLength”中输入“5”,为什么要这样填写呢?对于“中断地址”、“首字节”、“指令长度”的填写方法,可以参考图5理解.“中断次数”是指中断地址被中断读取数据的次数,由于正确的“密码”在内存中,所以在“将以下信息保存为注册码”窗口中选择“MemoryMode”,“Register”选择“EDX”,这里也可以参考图5理解。填写完以上内容后,点击“添加”按钮,返回“设置注册机信息”界面,然后点击“生成”按钮,将“记忆注册机”放到与CrackMe相同的目录下。然后运行生成的注册机,会出现CrackMe程序界面,只要输入一个“账号”和“密码”,点击“确定”按钮即可显示正确的注册码,如图6所示。图5调用strcmp()函数地址图6“内存注册机”提示正确注册码制作“文件补丁”比“内存注册机”简单多了。制作“文件补丁”的KeyMake界面如图7所示。图7“制作文件补丁”界面图7中,在“原始文件”中选择破解前的文件,在“破解文件”中选择破解后的文件,然后点击“Make”按钮生成A文件补丁。这里需要说明的是,之所以选择“原始文件”,是因为生成的文件补丁在对未破解的文件打补丁之前,需要计算文件的CRC校验和,以防止造成文件损坏。最后介绍一下“内存补丁”。“内存补丁”的制作也比较容易,打开“内存补丁”的制作界面,然后如图8所示进行设置。图8“MakeMemoryPatch”界面在“AddData”中进行相应的设置“MakeMemoryPatch”界面中的窗口,请参考图9进行设置。图900401EAE地址反汇编