12-14_C基础(指针)
ptr + n = (int)ptr + sizeof(type)*n //运算结果为同类指针的常量 数组名是数组第0个元素的地址常量 type ary[M] = ptr = ary; ptr[n] = (type 8const)((int)ptr + sizeof(type)*n) ary[n]
03_Canary保护
gdb基本命令复习 基本调试控制 s / step:单步执行,进入函数内部。 si:单步执行一条汇编指令,进入函数内部。 n / next:单步执行,不进入函数,直接执行下一条语句。 ni:单步执行一条汇编指令,不进入函数。 c
02_保护与溢出
保护机制 1. NX (No-eXecute) 简介:NX保护指的是将内存分为可执行和不可执行区域,从而禁止在数据区域(如栈或堆)上执行代码。 防护目的:防止代码注入攻击(如栈溢出时执行shellcode)。 绕过方式: 利用ROP (Return Oriented Programming),通过调
01_基础理论
汇编 AT汇编和Intel汇编通常指的是用于编写x86架构处理器汇编语言的两种不同的语法风格。 AT&T汇编语法: AT&T语法起源于Unix系统的汇编器,它的标志之一是操作数的顺序:源操作数在左,目标操作数在右。 操作数大小由操作码的后缀指明,例如movl表示移动一个长整数(32位)。 内存操作数
Pwn入门基础理论
1. 首先进入vi编辑器,查看源码
11_C基础(宏定义)
宏定义 类似的宏名称通常用于表示不同的状态码、错误码或特定的常量值。以下是一些常见的宏名称示例,通常用于各种系统或应用程序中: 文件操作相关的宏 FILE_OPEN_SUCCESS:文件打开成功 FILE_READ_ERROR:文件读取错误 FILE_WRITE_ERROR:文件写入错误 FILE_
10_C基础(变量与宏定义)
全局变量和局部变量 全局变量 (Global Variable) 定义和作用域: 全局变量是在函数外部定义的变量,它的作用域(Scope)覆盖整个程序,也就是说,在定义全局变量的文件中,所有的函数都可以访问该变量。 如果一个变量需要在多个函数之间共享数据,那么定义为全局变量是一个可行的选择。 生命周
08、9_C基础(数组与字符串)
数组 在C语言中,数组中的元素默认情况下是对齐的。对齐是指编译器在内存中存储数据时,会将数据存储在符合其数据类型大小的内存地址边界上,以提高访问速度和性能。 例如,对于一个整数数组,由于每个整数通常占用4个字节(在32位或64位系统上),编译器会尝试将每个整数存储在可以被4整除的地址上。如果数组中的
07_C基础(回车换行、栈结构与函数调用)
函数的机制调用约定及栈细节,包括函数的调用过程、栈结构的形成与利用、以及如何通过栈结构实现函数递归调用。讲解中详细分析了函数调用时参数的传递、返回地址的保存、局部变量的申请与释放等关键步骤,并通过走迷宫的例子展示了递归调用在解决复杂问题中的应用。此外,还提及了函数调用约定的几种类型及其在不同编程环境