我有一个小程序,我希望将 shellcode 作为参数传递。在shellcode中,需要传递\x00。我尝试了以下命令:
./program `python -c 'print "\x01\x00\x00\x00\x9c\xd8\xff\xbf"'`
但 \x00 根本没有被注册!传递给程序的参数是“\x01\x9c\xff\xbf”。
我不认为这是 python 的问题,而是传递参数的 shell 的问题。我正在使用 bash shell。
现在,如何强制 shell 传递参数“\x00”?
感谢致敬,
赫里希凯什·穆拉里
一点也不。 Unix 使用 C 样式字符串作为调用命令的参数,并且它们是以 NUL 结尾的字符序列。
您可以做的是重写您的程序(或找到调用变体)以接受其标准输入中的参数。 NUL 字节在那里工作得很好,而且事实上被广泛使用,通常用作文件名的分隔符,因为它们几乎是文件名中唯一不能包含的内容。看find
's -print0
开关和xarg
的开关-0
对于可以说是最受欢迎的例子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)