摘要: 因为堆(二叉堆)是一个完全二叉树,所以一般使用数组来存放 堆的性质 一句话来说就是 父节点比子节点的数据要小 (小顶堆,大顶堆反之) 为方便描述,以下皆以小顶堆为例进行说明 建立一个堆 假设表示堆的数组size为n,从最后一个非终端节点(即n/2)到根节点不断地 根据堆的性质进行调整 根据堆的性质进 阅读全文
posted @ 2017-08-18 11:18 luzhlon 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 壳代码在一开始会使用PUSHAD指令将所有的寄存器入栈, 此时ESP所指向的内存记录着某一个寄存器的值 。 然后我们ESP指向的内存处下一个硬件内存访问断点 执行完壳代码后会将所有的寄存器值出栈以平衡堆栈POPAD,CPU需要访问原ESP记录的值,壳代码解压完程序代码后,最后 平衡堆栈 时必然要从E 阅读全文
posted @ 2017-08-18 11:11 luzhlon 阅读(612) 评论(0) 推荐(0) 编辑