首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入解析Linux新系统调用mseal的内存密封机制

    Linux新系统调用mseal深度解析mseal的定位与特性内存密封机制允许开发者在程序运行时将内存区域标记为不可变,防止攻击者通过代码执行原语修改虚拟内存区域(VMA)的权限或布局。...防护典型攻击链:喷射shellcode到非可执行区域通过ROP调用mprotect添加PROT_EXEC权限跳转执行shellcode使用mseal后:void *exec_offset = (void*)((int64...等关键节区实践应用建议glibc 2.41+将自动密封二进制代码和动态库映射#define SEAL_FRAME(frame) \do { \ void* frame_page = (void*)((int64...frame_page, getpagesize()); \} while(0)开发者可手动密封已知静态的mmap分配区域堆栈防护需注意动态扩展特性,建议采用分帧密封策略:随着glibc集成的完善,mseal将成为Linux

    12900

    动态调试elf文件的几种方法

    动态调试elf文件的几种方法 最近在刷题的时候遇到了很多elf文件,虽然可以通过ida分析伪代码解出来,但是发现有些通过动态调试的方式可以直接找到flag,这样简单了不少,因为之前接触的linux下的逆向题目比较少...0x01 ida动态调试 ida不光可以静态分析函数伪代码,也可以通过动态调试的方式来分析linux下的elf文件。...首先将ida/dbgsrv/路径下的linux_server/linux_serverx64文件复制到linux下,两个文件分别是调试32位和64位程序使用的: 在linux下启动对应的文件: 把我们要调试的文件放到相应的文件夹中...是指传递的参数,如果程序运行需要传参的话可以在这填入,Hostname就是linux的ip地址,Port一般都是默认的23946,如果设置了password在下方填入,没有就空着: 进入ida动态调试界面...; var int64_t var_24h @ rbp-0x24 │ ; var int64_t canary @ rbp-0x18 │ 0x00400756

    5.1K20

    20种不同并发模型示例,带你深入理解并发模型

    1.缘起 最近看了好友推荐的一本新书《Linux后端开发工程实践》 ,该书RPC框架和微服务集群的部分甚是不错,其中的“第10章-I/O模型与并发”中介绍了 17 种不同的并发模型,看完之后更是感觉受益匪浅...在Linux下多路I/O复用的系统调用为select、poll、epoll。...5.2.2 Poll 为了解决select函数文件描述符数量和值的限制,Linux 系统后续新增了poll函数。...参考 《Linux后端开发工程实践》 抽奖送书 欢迎大家留言,聊聊你和Linux的故事。我们会抽8位同学,送出下面的《Linux后端开发工程实践》一本。...初学者可以通过阅读本书快速掌握Linux C/C++后端研发的核心技能。提升技术水平,完善自身的技术知识体系,并在实践中掌握后端研发的最佳实践。

    1.4K12

    微信程序员压测20种并发模型,性能最强的竟是?

    在 Linux 下多路 I/O 复用的系统调用为 select、poll、epoll。...5.2.2 Poll 为了解决 select 函数文件描述符数量和值的限制,Linux 系统后续新增了 poll 函数。...06、参考 《Linux 后端开发工程实践》该书将从实践出发,提供具体的案例和实现代码,帮助读者了解后端研发的实际工作流程和常用工具,以及如何在实践中掌握 Linux C/C++ 后端研发的核心技能。...初学者可以通过阅读本书快速掌握 Linux C/C++ 后端研发的核心技能,并直接从事相关岗位的研发工作。...无论您是想要入门 Linux 后端研发,还是想要深入了解这个领域的读者,本书都将为您提供有价值的学习资源。 也欢迎大家关注作者公众号 -End- 原创作者|lionleeli

    85231

    深入理解多级缓存必备知识--线程局部变量

    EaGvq6T88 cpu指令完成,非内核或者其他框架完成 mov edx, DWORD PTR fs:a@tpoff fs: 是 x86_64 架构下用于访问 线程局部存储(TLS)区域的段寄存器(Linux...::local_alloc_size_ = 0; void *ObTenantTxDataOpAllocator::alloc(const int64_t size) { void * buf...return buf; } //查询:不考虑那个线程事情 int64_t get_local_alloc_size() { return local_alloc_size_; } 如果声明全局变量,需要维护...POSIX pthread 设计理念 面向对象,类型安全,RAII(自动资源管理) 函数式编程风格,需显式管理资源(如手动创建/销毁线程、锁) 可移植性 跨平台(标准 C++ 支持,如 Windows、Linux...、macOS) 主要在类 Unix 系统(Linux、macOS)原生支持;Windows 需第三方库(如 pthreads-win32) 错误处理 通过异常机制抛出错误(如 std::system_error

    22410
    领券