【NJU OS】12 进程的地址空间

进程的地址空间

char *p 可以和 intptr_t 互相转换

  • 可以指向 “任何地方”
    • 合法的地址 (可读或可写)
    • 代码 (main, %rip 会从此处取出待执行的指令),只读
    • 数据 (static int x),读写
    • 堆栈 (int y),读写
    • 运行时分配的内存 (???),读写
    • 动态链接库 (???)
  • 非法的地址
    • NULL,导致 segmentation fault

外挂:攻与防

控制/数据流完整性

  • 保护进程的完整性
    • 独立的进程/驱动做完整性验证
  • 保护隐私数据不被其他进程读写
    • 拦截向本进程的 ReadProcessMemory 和 WriteProcessMemory,发现后立即拒绝执行
  • 例子
    • Denuvo Anti-Cheat, Epic Anti-Cheat Interface

其他解决方法

  • AI 监控/社会工程学:如果你强得不正常,当然要盯上你
  • 云/沙盒 (Enclave) 渲染:“计算不再信任操作系统”

总结

  • 进程的地址空间
    • 能文件关联的、带有访问权限的连续内存段
      • a.out, ld.so, libc.so, heap, stack, vdso
  • 进程地址空间的管理 API
    • mmap
  • Copyrights © 2019-2024 Hxy
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信