You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在启用ASLR的Linux进程中用Python监控未修改二进制的struct值?

问题:监控Linux下C程序栈上结构体变量的值

我在Linux机器上编译并运行了一个C二进制程序,程序中定义了名为Location的结构体:

typedef struct 
{
    size_t x;
    size_t y;
} Location;

主函数代码如下:

int main(void)
{
    srand(0);
    Location loc;
    while (1)
    {
        loc.x = rand()%10;
        loc.y = rand()%10;
        sleep(2);
    }
    return 0;
}

我希望监控loc的x和y成员的值,需满足以下限制:

  • 无法修改二进制代码
  • 必须使用Python进行监控
  • 始终启用ASLR(地址空间布局随机化)

我已尝试的方法:

  • 读取/proc/pid/maps获取栈区域后读取/proc/pid/mem,但未找到目标数据
  • 使用gdb查找loc的地址,但该地址不在maps中的栈范围内(大概率是ASLR导致)

内容的提问来源于stack exchange,提问作者Weed Cookie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 14:47:02