阅读笔记&&实现代码_of_Python灰帽子(二)

本文探讨了Python调试中遇到的问题,特别是DebugActiveProcess调用失败的情况。文章提供了错误代码及解决方法,并分享了调试不同进程的经验。

详细代码就不贴了,网上可以下载到,书上的代码不全,但核心的代码都有,剩下一些结构体和常量的定义,作者公布的源码中都有。

代码可以正常运行,但是出现了错误。提示如下:
183917_A1Sy_2843142.png

回看代码,原因是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出错,不知道什么原因,后来换了个进程,就好了。。。

转载于:https://my.oschina.net/yup1612/blog/803364

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值