Burp Suite入门
Burp Suite 入门 Burp Suite 简介 Burp Suite 是一款用于 Web 应用程序安全测试的软件应用程序。它由 PortSwigger 开发,广泛用于安全专业人员、渗透测试员和 Web 开发人员中,用于识别和利用 Web 应用程序中的漏洞。Burp Suite 提供了一个全面的工具集,包括代理服务器、扫描器、入侵者、重复器、排序器、解码器等。这些工具可以用于拦截和...
Burp Suite 入门 Burp Suite 简介 Burp Suite 是一款用于 Web 应用程序安全测试的软件应用程序。它由 PortSwigger 开发,广泛用于安全专业人员、渗透测试员和 Web 开发人员中,用于识别和利用 Web 应用程序中的漏洞。Burp Suite 提供了一个全面的工具集,包括代理服务器、扫描器、入侵者、重复器、排序器、解码器等。这些工具可以用于拦截和...
手写 std::array #include <iostream> // 不使用模板定义数组 class MyArray0 { private: // int m_Data[]; int *m_Data; public: MyArray0(int size) { // m_Data = new int[size]; ...
常见关键字 关键字是 C++ 中预先保留的单词(标识符),在定义变量或者常量时候,不要用关键字 asm do if return typedef auto double inline short typeid ...
C++ 的结构化绑定 (Structured Binding) 结构化绑定 struct binding 是C++17的新特性,能让我们更好地处理多返回值。可以在将函数返回为tuple、pair、struct等结构时且赋值给另外变量的时候,直接得到成员,而不是结构。 对于多个返回值,之前是用结构体去处理,而这个结构化绑定就是在这个的基础上拓展的一种新方法,特别是处理元组,对组(pairs...
clang-tidy
重写 new 和 delete 操作符 我们知道一个 class 的 new 是分为三步:operator new(其内部调用 malloc)返回 void*、static_cast 转换为这个对象指针、构造函数。而 delete 则分为两步:构造函数、operator delete。 new 和 delete 都是表达式,是不能重载的;而把他们行为往下分解则是有 operator ne...
移动语义 移动语义来优化按值传递的性能 移动语义是 C++11 引入的一项特性,它允许资源(如动态内存)的所有权从一个对象转移到另一个对象,从而避免昂贵的资源拷贝操作。使用移动语义可以显著优化按值传递的性能,特别是对于那些包含大型资源或动态分配资源的对象。 通过使用移动语义,你可以在函数参数传递、返回值和局部对象赋值时避免不必要的拷贝。这对性能至关重要,特别是在处理大型数据结构和拥有独...
C++ 的可视化基准测试 1.利用工具: chrome://tracing (Chrome 浏览器自带的一个工具,将该网址输入即可) 2.基本原理: cpp 的计时器配合自制简易 json 配置写出类,将时间分析结果写入一个 json 文件,用 chrome://tracing 这个工具进行可视化 。
C++ 内存模型 C++ 程序在执行时,将内存大方向划分为4 个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 C/C++ 内存布局 程序运行前 在程序编译后,生成了可执行程序,未...
C++ 左值、右值和右值引用 在 C++ 中,左值(lvalue)、右值(rvalue)和右值引用(rvalue reference)是与对象存储、对象身份及其可移动性相关的三个概念。 Lvalue 左值是表达式的结果,它指向一个明确的内存位置,可能是变量、数组的一个元素或者一个对象的引用。左值的特点是它们可以持续存在超出单个表达式的生命周期。你可以将左值看作是一个可以被赋值的实体。例...