240 发简信
IP属地:上海
  • Resize,w 360,h 240
    函数栈帧与IP寄存器

    接着上篇文章内容 函数栈帧与BP寄存器[https://juejin.cn/post/7402058032651665462] 我们继续构造两个...

  • Resize,w 360,h 240
    函数栈帧与BP寄存器

    让我们写一段简单的代码来分析 通过GDB调试,我们可以查看寄存器和汇编代码,方便我们理解这里我们在main,foo函数加上断点 通过layout...

  • Resize,w 360,h 240
    inline hook 原理

    主要思路是找到被hook函数地址,并将被hook函数地址执行指令替换成jmp <地址偏移量>,这个地址由hook函数地址和target函数地址相...

  • Resize,w 360,h 240
    Debugger底层原理

    弄清楚GDB的底层原理,首先需要了解一下ptrace这个系统调用: ptrace 是一个用于在 Unix 和 Unix-like 操作系统上进行...

  • MMKV修改数据源码

    大家都知道MMKV性能好,因为是直接操作内存。内存其实就是一个数组结构,根据地址去寻址查找数据的,就跟数组通过index查找数据一样,但是数组修...

  • 使用libunwind获取堆栈

    Ubuntu安装libunwindapt-get install libunwind8-dev编译命令:gcc unwind.c -lunwind

  • AspectJ基本语法和意义

    AspectJ是一种面向切面编程(AOP)语言,它可以用于在Java代码中定义和使用切面。下面是AspectJ的基本语法和意义: 下面是Aspe...

  • Resize,w 360,h 240
    程序的构造和解释

    1. 构造函数抽象 先思考一个问题,如何计算平方根?最常用的方法就是牛顿逐步逼近法, 比如我们要计算2的平方根,假定初始猜测值是1 猜测商平均值...

  • Android识别管道文件

    Java的File类提供的接口仅限于判断目录和文件,有时候在复制某些数据的时候,还需要判断其它的文件类型,比如管道文件,需要过滤掉,不然IO操作...