摘要:
什么是可变参数 在C语言编程中有时会遇到一些参数可变的函数、例如printf()、scanf(),其函数原型为: int printf(const char *format,...) int scanf(const char *format,...) 它除了有一个参数format固定以外,后面的参数 阅读全文
摘要:
HWND(R3窗口句柄) HWND是线程相关的,你可以通过HWND找到该窗口所属进程和线程 HWND hWnd = FindWindow(NULL, L"无标题 - Notepad"); Handle(R0内核对象句柄) Handle 是代表系统的内核对象,如文件句柄,线程句柄,进程句柄。 Crea 阅读全文
摘要:
环境 win10 vc6.0 debug 代码 关于求阶层问题:n!=n(n-1)!;(n-1)! = (n-1)(n-2)! 例如5!=5(4)! 4!=43! 3!=32! 2!=21 函数递归的出口是1,所以函数递归最重要的条件是去寻找递归的出口 int fun(int i) { int su 阅读全文
摘要:
概述 本章主要描述boot/目录中的三个汇编代码文件,见列表6-1所示。正如在前一章中提到的,这三个文件虽然都是汇编程序,但却使用了两种语法格式。bootsect.s和setup.s是实模式下运行的16位代码程序,采用近似于Intel的汇编语言语法并且需要使用Intel 8086汇编编译器和连接器a 阅读全文
摘要:
SHL(Shift Left),SAL(Shift Arithmetic Left) 逻辑左移和算术左移,运行结果是一样的,都是数据往左移动,然后在右边补零,高位进CF; SHR (Shift Right) 逻辑右移,数据往右移动,在左边补零。如1000 0000->0010 0000(逻辑右移两位 阅读全文
摘要:
寻址方式 CPU的操作模式 1.实地址模式 简称实模式,即模拟8086处理器的工作模式。此模式下的IA-32处理器相当于高速的8086处理器。实模式提供一种简单的单任务环境,可以直接访问物理内存和I/O空间,由于操作系统和应用软件运行在同一个内存空间中和同一优先级上(就是他们的权力是一样的),应此操 阅读全文
摘要:
CANARY(栈保护溢出标志) 这个选项表示栈保护功能有没有开启。 栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖站上的返回地址来让shellcode能够得到执行。当启动栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当但会真正返回的时候会验证co 阅读全文
摘要:
什么是柔性数组 柔性数组也称为变长数组,是一种动态数组的实现方式。 与普通数组不同的是,柔性数组在定义时不需要明确指定数组大小,在程序运行时可以动态地分配和扩展数组大小,在程序运行时可以动态地分配和扩展数组大小 柔性数组是通过C99标准中提供的结构体成员为未知长度的数组的特性来实现的,它需要一个结构 阅读全文