IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Heap Corruption

共 2 篇相关文章

IT 累计浏览 1,937

Android libcutils库中整数溢出导致的堆破坏漏洞的发现与利用

文章从研究Android图形子系统时发现的一个整数溢出漏洞讲起,这个漏洞存在于libcutils库的native_handle_create函数中。作者龚广(@oldfresher)揭示了,当传入精心构造的numFds和numInts参数时,会导致堆内存分配大小计算溢出,进而引发堆破坏。具体来说,这个漏洞可通过Android图形系统的Binder接口(如IGraphicProducer的setSidebandStream)被低权限进程跨进程触发。 更巧妙的是,作者构建了一条清晰的提权路径:从普通应用出发,必须按顺序依次注入mediaserver、surfaceflinger,最终目标是获得system_server的“半神”权限。摘要中点明了这一“三步走”策略的必要性——每一步获取的权限是攻击下一步的门票。文中还提及了攻击过程需克服的ASLR、SELinux以及je_malloc堆管理器等现实障碍,并以mediaserver注入为例,详细拆解了从控制Binder服务线程到最终代码注入的五个步骤。整篇文章不仅定位了漏洞根源,更完整呈现了从漏洞发现到实现高权限提权的复杂工程化利用全貌。

IT 累计浏览 7,278

内存越界的概念和调试方法

这篇讲的是作者在最近的项目中,与一个棘手的内存越界问题缠斗了整整两天,最终定位并修复后,将整个排查过程和心得记录下来的经验。内存越界是C/C++等语言中经典的疑难杂症,它往往不会立即崩溃,而是悄无声息地破坏其他数据,导致程序行为完全不可预测,调试起来如同大海捞针。 文章从这次实战出发,很可能详细复盘了问题的现象、如何通过工具(比如Valgrind、ASAN或调试器)逐步追踪到异常内存地址的写入源头,并最终揭示了根因(例如数组下标计算错误、使用已释放的指针或缓冲区大小不足)。对于开发者而言,这类“踩坑”记录极具价值,因为它不仅分享了概念,更重要的是提供了鲜活的调试思路和实用的排查路径。 如果你也曾被这类隐蔽的bug困扰过,或者想为自己的调试工具箱增加一些方法,那么作者这两天的攻坚经验,或许能为你下次遇到类似问题时提供一份清晰的“排雷”参考。