前言
C++通过虚函数来实现多态,从而在运行时动态决定要调用的函数。那么虚函数的调用过程具体是怎样的呢?本文将基于Arm汇编,剖析C++虚函数的调用过程。本文涉及到的代码采用ndk-r10d进行编译。由于水平有限,理解不到位的地方,还请各位指正。
ManyFace
最近学习了堆的管理,如何进行unlink利用。发现大多数文章在讲解利用unlink进行任意地址写时没有解释得很透彻(也可能是我比较愚钝吧(╯﹏╰)),看得是云里雾里:-(。。。。。直到看到了shellphish团队在github上的项目how2heap,才弄明白了利用unlink进行任意地址写的原理。于是自己在Android4.4模拟器上设计了一个Demo,用于练习unlink利用。下面基于这个Demo来具体分析unlink利用的原理。在继续阅读之前,可以先看一下这一篇博文。由于水平有限,不对的地方还请各位大牛赐教。