您的位置:首页 > 编程语言 > Python开发

灰帽子python 读书笔记 2

2016-05-13 13:18 495 查看
今天的学习点是调用ctypes的createProcess函数来启动程序。

主要包括数据类型的映射和结构的映射等。

按书中的代码边抄边理解了之后,调用calc.exe,出现结果:

[*] Error: 0x00000002.

查了错误表,说是没找到文件。

机智的我把path_to_exe打出来:

C:\Windows\WinSxS\amd64_microsoft-windows-calc_31bf3856ad364e35_10.0.10586.0_none_36439993c5132b2e\calc.exe

[*] Error: 0x00000002.

发现有的反斜杠转义了,有的没有呢。

突然想到上一篇的宽字符问题,于是把my_debugger里的CreateProcessA改成CreateProcessW,来来来,给你宽宽宽。

这下路径倒是对了,但是又出了新的错误:

C:\Windows\WinSxS\amd64_microsoft-windows-calc_31bf3856ad364e35_10.0.10586.0_none_36439993c5132b2e\calc.exe

[*] Error: 0x00000032.

楞尼玛。。查这个32错误说是不支持的网络之类的。但是这个计算器程序根本不需要网络啊。

后来在stackoverflow上发现,说这个调64位程序就会异常,要调32位的,也就是在syswow64里面的那个计算器。

果然调那个就返回正确的样子了:

[*] We have successfully launched the process!

[*] PID: 8888

然而该怎么调64位的程序呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: