gpt4 book ai didi

Python打印环境变量内存地址

转载 作者:IT王子 更新时间:2023-10-28 23:33:16 31 4
gpt4 key购买 nike

是否可以打印我的环境变量内存地址?

使用 gdb-peda 我有一个看起来像 0xbffffcd6searchmem 的内存地址,我知道这是正确的形式。 (0xbfff????) 但 gdb 使用其他一些环境变量移动了堆栈。

我想用我的 python 脚本来获取这个地址,然后做我的伎俩并包含我的 shellcode。

我尝试过(使用 Python):

print hex(id(os.environ["ENVVAR"]))
print memoryview(os.environ["ENVVAR"])

# output :
# 0xb7b205c0L
# <memory at 0xb7b4dd9c>

使用 ruby :

puts (ENV['PATH'].object_id << 1).to_s(16)
# output :
# -4836c38c

如果有人有想法,用 python 或 ruby​​。

最佳答案

cpython 内置函数 id() 为任何对象返回一个唯一的 id,这并不完全是它的内存地址,而是尽可能接近。

例如,我们有变量 x。 id(x) 不返回变量x的内存地址,而是返回x指向的对象的内存地址。

“变量”和“内存对象”之间有严格的区分。在标准实现中,python 分配了一组本地变量和一个堆栈供虚拟机操作。所有本地插槽都是不相交的,因此如果您将本地插槽 x 中的对象加载到堆栈上并修改该对象,则 x 插槽的“位置”不会改变。

enter image description here http://docs.python.org/library/functions.html#id

关于Python打印环境变量内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37725945/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com