摘要:
反序列化漏洞 PHP反序列化漏洞也叫PHP对象注入,是一个非常常见的漏洞,这种类型的漏洞虽然有些难以利用,但一旦利用成功就会造成非常危险的后果。漏洞的形成的根本原因是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列不可控的后果。反 阅读全文
摘要:
shellcode shellcode 是一组可注入的指令,可以在被攻击得到程序内运行,因为shellcode要直接操作寄存器和程序函数,所以通常用汇编语言编写并被翻译为十六进制操作码,因此不能用高级语言编写shellcode, 即使细微的差别有可能导致shellcode无法准确执行,这些导致编写s 阅读全文
摘要:
LEA LEA是微机8086/8088系列的一条指令,取自英语Load effective address——取有效地址,也就是取偏移地址。 指令格式如下: LEA reg16,mem LEA指令将存储器操作数mem的4位16进制偏移地址送到指定的寄存器。 这里,源操作数必须是存储器操作数,目标操作 阅读全文
摘要:
问题: 当对象生成时, 编译器会自动产生调用其类构造函数代码,在编码过程中可以为类中的数据成员赋予恰当的初始值,在某些情况下,编译器会提供默认的构造函数和析构函数 1)在何种情况下编译器会提供默认的构造函数和析构函数? 2)编译器如何调用?? 构造函数时机 对象生成时会自动调用构造函数。只要找到了定 阅读全文
摘要:
前言: 虚函数是面向对象程序设计的关键部分,对象的多态性需要通过虚函数表和虚函数指针来完成,虚函数表指针被定义在对象首地址前四个字节地方,因此虚函数必须作为成员函数使用,由于非成员函数没有this指针,无法获得虚表指针,进而无法获得虚表,也就无法访问虚函数 这次学习主要解决认识几个问题: 1. 为什 阅读全文
摘要:
VPP初始化 VLIB_INIT_FUNCTION用来定义构造函数,注册函数到vlib_main_t->init_function_registrations,这个链表在main()函数之前创建。 vlib_main()-> vlib_call_all_init_functions()注册的函数在这 阅读全文
摘要:
应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的。 在TCP协议中RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送 阅读全文
摘要:
动态追踪技术原因 当碰到内核线程的资源使用异常时,很多常用的进程级性能工具,并不能直接用到内核线程上。这时,我们就可以使用内核自带的 perf 来观察它们的行为,找出热点函数,进一步定位性能瓶颈。不过,perf 产生的汇总报告并不直观,所以我通常也推荐用火焰图来协助排查。 其实,使用 perf 对系 阅读全文
摘要:
前言: 对于rcu平时写代码用到不是特别的多,可能是自己对rcu的理解不够深入透彻,不能发挥其强大的特性,写个博客学习一下,以便更深入的理解RCU的机制 rcu简述: RCU(Read-Copy Update),是 Linux 中比较重要的一种同步机制。更新数据的时候,需要先复制一份副本,在副本上完 阅读全文
摘要:
问题: 一台客户现场机器,运行一周左右偶然发生一次应用段错误或者double free问题,cpu可能是arm、mips、x86等架构,有什么好的方法捕捉异常日志? 困难点: 1. 研发环境常使用gdb+coredump技术解决此类问题,客户现场等非研发环境的偶现应用异常问题,不方便使用,操作起来有 阅读全文