接着上篇文章内容 函数栈帧与BP寄存器[https://juejin.cn/post/7402058032651665462] 我们继续构造两个...
让我们写一段简单的代码来分析 通过GDB调试,我们可以查看寄存器和汇编代码,方便我们理解这里我们在main,foo函数加上断点 通过layout...
主要思路是找到被hook函数地址,并将被hook函数地址执行指令替换成jmp <地址偏移量>,这个地址由hook函数地址和target函数地址相...
弄清楚GDB的底层原理,首先需要了解一下ptrace这个系统调用: ptrace 是一个用于在 Unix 和 Unix-like 操作系统上进行...
大家都知道MMKV性能好,因为是直接操作内存。内存其实就是一个数组结构,根据地址去寻址查找数据的,就跟数组通过index查找数据一样,但是数组修...
Ubuntu安装libunwindapt-get install libunwind8-dev编译命令:gcc unwind.c -lunwind
AspectJ是一种面向切面编程(AOP)语言,它可以用于在Java代码中定义和使用切面。下面是AspectJ的基本语法和意义: 下面是Aspe...
1. 构造函数抽象 先思考一个问题,如何计算平方根?最常用的方法就是牛顿逐步逼近法, 比如我们要计算2的平方根,假定初始猜测值是1 猜测商平均值...
Java的File类提供的接口仅限于判断目录和文件,有时候在复制某些数据的时候,还需要判断其它的文件类型,比如管道文件,需要过滤掉,不然IO操作...