详细代码就不贴了,网上可以下载到,书上的代码不全,但核心的代码都有,剩下一些结构体和常量的定义,作者公布的源码中都有。
代码可以正常运行,但是出现了错误。提示如下:
回看代码,原因是DebugActiveProcess调用不成功,如下:
if kernel32.DebugActiveProcess(pid): self.debugger_active = True self.pid = int(pid) self.run() else: print "Unable to attach to the process."
查看msdn开发文档:https://msdn.microsoft.com/zh-cn/library/ms679295,使用GetLastError (https://msdn.microsoft.com/zh-cn/library/ms679360)获取错误代码,改后的代码如下:
if kernel32.DebugActiveProcess(pid): self.debugger_active = True self.pid = int(pid) else: print "Unable to attach to the process." print 'because this error: ', kernel32.GetLastError()
输出的错误代码为:because this error: 50
查看msdn关于错误代码的解释(https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx),如下:ERROR_NOT_SUPPORTED
50 (0x32)
The request is not supported.
显示请求不支持。
解决方法:
书上让调试计算器的进程,发现DebugActiveProcess出错,不知道什么原因,后来换了个进程,就好了。。。