硬核黑科技:如何在Go语言中实现运行时函数重写与热替换
这篇文章深入探讨了在Go这种静态语言中实现运行时代码修改的极限技巧。作者利用反射和unsafe包获取函数内存地址,通过直接修改机器码并插入JMP跳转指令,实现了类似于动态语言的“猴子补丁”功能。文章详细演示了如何处理内存保护权限以及x86和...
标签索引 / 第 2 页
这个标签下有 14 篇文章。按时间回看相关判断与实践记录。
标签精选
这篇文章深入探讨了在Go这种静态语言中实现运行时代码修改的极限技巧。作者利用反射和unsafe包获取函数内存地址,通过直接修改机器码并插入JMP跳转指令,实现了类似于动态语言的“猴子补丁”功能。文章详细演示了如何处理内存保护权限以及x86和...
这是一个关于 CPython 解释器源码深度解析的开源项目。项目基于 Python 3.8 版本,详细阐述了从对象模型、内存管理、垃圾回收(GC)到全局解释器锁(GIL)等底层实现细节。内容涵盖字典、列表、元组等核心数据结构,以及 C 扩展...
一名韩国高中生为了解浏览器渲染原理,耗时8周使用C++从零构建了一个微型浏览器引擎。该项目基于Qt6,完整实现了HTML分词、DOM树构建、CSS样式计算、布局排版及图形渲染五大核心流程。作者通过Claude AI辅助学习复杂逻辑,深入解决...
本文深入探讨了 Rust 编程语言中的闭包机制。作者从基础语法讲起,详细解释了闭包如何捕获环境变量(共享引用、可变引用和值传递),并揭示了编译器如何通过生成结构体来实现 FnOnce、FnMut 和 Fn 这三个核心 Trait。文章还分析...