《Python灰帽子》 构建自己的Windows调试器中的一个问题

       这本书貌似有挺多小错误的,而且针对的是Python 2.x版本以及32位操作系统,所以要用Python 3.x 学习起来会略有麻烦(我的开发环境是WinXP+python 3.3)。

       因为python 3.x默认是Unicode编码,所以在对Windows API传参时就有可能遇到麻烦。比如,CreateProcessA函数的第一个参数要求的是ascii编码的字符串,如果直接传python字符串那么就会导致那章的第一个程序产生错误代码为“2”的错误。

       解决方法有两个(参考自:http://www.programlife.net/python-gray-hat.html):

             1):改用CreateProcessW函数

             2):把python 3.x字符串的编码方式改为ascii码,具体为 str.encode("ascii")

       此外,书中代码关于CreateProcessA函数还存在缺少参数的问题。鉴于书中代码小错误很多,大家可以去那本书的外国出版社网站下载源码。

       在补充一下,如果你用python3,那么你要注意程序中的进程号选python.exe对应的那个,而不是py.exe对应的那个;如果是python2就不会遇上这个问题,因为运行python脚本根本没有py.exe。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值