07 2019 档案
摘要:参考文献: 《STL源码剖析》 https://blog.csdn.net/qq_38790716/article/details/85042557 ...........................................................................
阅读全文
摘要:一. 理解IPV6的组播地址 IPv6的 组播地址通常是为IPv6的组播服务,而IPv6通信的核心大量的使用了组播,IPv6不再使用广播,这与IPv4的通信不同,然而要理解IPv6的组 播, 首先需要明白三个关键点: 第一、任何节点都能够成为一个多播组成员也叫做组播组成员; 第二、源节点可以发送数据
阅读全文
摘要:举个实例 运行出core 反汇编: main函数在call func之前: 明显的错误,把ebp的下4字节的内容移动到当前esp所指向的内容,实际上做了一个*p的副本,为func函数使用;调用func函数后: movq $test_num, -8(%rbp)于是,func函数操作的只是*p的副本,把
阅读全文
摘要:一. list 实例 二. 源码学习 #ifndef _LIST_H //条件宏编译,避免重复定义 #define _LIST_H#include<assert.h> //断言引入的头文件 #include<malloc.h> //申请空间所引入的头文件 template<class _Ty> //
阅读全文
摘要:((43 .65 / 22 ) + (76.34 * 3.1)) / ( (12.34 * 6 ) - (140.2 / 94.21) ) 错误原因是,在64位系统和32位系统的as命令对于某些汇编指令的处理支持不一样造成的。 在文件.s中,包含指令:pushl %ebp,该指令在64位系统下就编译
阅读全文
摘要:参考文献: 《C++程序设计》 推荐转载博文:https://www.cnblogs.com/xiaokang01/p/9166745.html#_label1 .....................................................................
阅读全文
摘要:参考书籍: 《C++ 程序设计》 .................................................................................................................... 迭代器是一种检查容器内元素并遍历
阅读全文
摘要:参考:https://gcc.gnu.org/ml/gcc/2007-12/msg00503.html 英语水平有限,翻译有些许瑕疵 一. 目标动机 一些局部变量(如uu m128类型或用对齐方式标记)属性)要求堆栈在大于默认值的边界处对齐堆栈边界。当前的GCC部分支持这一点,但有局限性。我们是提出
阅读全文
摘要:一. VLAN 数据报文格式 IEEE 802.1Q标准对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag。 VLAN帧最小帧长为64字节。 图1 VLAN帧格式 ·Type:长度为2 bytes,表示帧类型,802.1Q tag帧中Type字段
阅读全文
摘要:参考文献: DPDK官网 ........................................................................................................................................
阅读全文
摘要:DPDK版本19.02 初始化: /* Launch threads, called at application init(). */ int rte_eal_init(int argc, char **argv) { ... /* rte_eal_cpu_init() -> * eal_cpu_
阅读全文
摘要:利用复杂的堆溢出的时候,ltrace 是最好的工具,碰到比较复杂的堆溢出的时候,则必须经历几个重要的步骤 (1) 使其标准化。这是指如果进程生成并调用execve,那么就简单地连接到这个进程;如果本地攻击,将使用execve() 启动这个进程,重要的是了解堆怎样被初始化的 (2) 为攻击设置堆。这是
阅读全文
摘要:一. 实现原理 首先变长参数的实现依赖于cdecl调用,因为其规定了出栈方为函数调用方,从而解决被调用函数无法确定参数个数,其次cdecl规定参数入栈顺序为从右到左。所以第一个不定参数位于栈顶 二. 宏源码讲解 (va > variable-argument(可变参数)) 头文件 stdarg.h
阅读全文
摘要:参考文献:dpdk中的librte_malloc库 《深入浅出DPDK》 一. librte_malloc 库 dpdk中的librte_malloc库提供了能够分配任意大小内存的API。 该库的目标是提供类似malloc的函数从hugepage中分配内存,以及帮助应用程序移植。通常情况下,这种类型
阅读全文
摘要:参考文献 《系统攻防技术-系统实战》 https://bbs.pediy.com/thread-217613.htm https://www.cnblogs.com/gm-201705/p/9901548.html 一. 堆是什么? 程序运行过程中,需要更多的内存时,如果使用brk() 和 mmap
阅读全文
摘要:转:http://blog.csdn.NET/rosetta 64KB-4GB-64TB? 我记得大学的汇编课程、组成原理课里老师讲过实模式和保护模式的区别,在很多书本上也有谈及,无奈本人理解和感悟能力实在太差,在很长一段时间里都没真正的明白它们的内含,更别说为什么实模式下最大寻址空间为1MB?段的
阅读全文
摘要:这个也是比较经典的问题,在这里需要多花点时间研究透彻。出现格式化串漏洞的原因是在C语言中没有处理带有可变参数的函数。因为用C语言编写的程序都可能有格式化串的漏洞,所以它影响所有的带C编译器的操作系统 一. 什么是格式化串?为什么用格式化串 举个简单的栗子,我们在写程序的时候会输出字符串,里面包含数字
阅读全文
摘要:1.大凡高度的概括,总带有想象的成分。 2.通常的方式是一家之内创业的祖先不断地劳作,自奉俭约,积铢累寸,首先巩固自己耕地的所有权,然后获得别人耕地的抵押权,由此而逐步上升为地主。这一过程常常需要几代的时间。经济条件初步具备,子孙就得到了受教育的机会。 3.因为所谓“自己”,不过是一种观念,不能作为
阅读全文
摘要:Mempool 库 内存池是固定大小的对象分配器。 在DPDK中,它由名称唯一标识,并且使用mempool操作来存储空闲对象。 默认的mempool操作是基于ring的。它提供了一些可选的服务,如per-core缓存和对齐帮助,以确保对象被填充, 方便将他们均匀扩展到DRAM或DDR3通道上。 这个
阅读全文
摘要:参考文献: 《深入浅出DPDK》 linux 阅马场 公众号 .............................................................................................................. 一. PCIe
阅读全文
摘要:参考文献: 《汇编语言程序设计》 .....................................................................................................................................
阅读全文

浙公网安备 33010602011771号