进阶
文章平均质量分 77
aketoshknight
如果找不到人生的意义,活着就是为了死亡
展开
-
X64dbg使用技巧
X64dbg使用技巧前言:各类杂项x64dbg的使用技巧示例1:进出call原创 2021-06-08 20:25:44 · 5271 阅读 · 0 评论 -
反汇编笔记——对象/数组/链表的汇编形态
对象/数组/链表的汇编形态定义:由高级编程语言构筑的程序中往往会出现大量的对象/数组/链表原创 2021-06-08 20:16:55 · 531 阅读 · 0 评论 -
反汇编笔记——64位机寄存器
定义:反汇编涉及到的32位——64位系统中,寄存器发生了些微改变(对于16位系统中的各寄存器,在其名前加上e成为eax/ecx代表其为32位寄存器,其中可存放32位数据;在其名前加上r成为rax/rcx代表其为64位寄存器,其中可存放64位数据)示例1:64位系统寄存器汇总PS1:如上图所示,其中‘易失’意味着当使用call指令等指令进行新代码段的调用时,其值有可能发生改变(该性质同16位时代的各寄存器,在call内使用前应当对其进行入栈以保证其内原本存放的数值不发生丢失)PS2:如上图所示原创 2021-06-05 18:36:20 · 2547 阅读 · 0 评论 -
学习笔记---文件基础
概述文件读写读/写指定格式以字符为单位从文件读入fscanf(文件指针,格式字符串,输入表列);int fgetc(FILE *fp);写到文件中fprintf(文件指针,格式字符串,输出表列);int fputc(int ch,FILE *fp);概念:指存储在外部介质上的数据原创 2017-06-08 21:40:50 · 1311 阅读 · 0 评论 -
学习笔记---动态规划
动态规划(多阶段决策)意义:求解决策过程最优化的数学方法基本思想:将待求解的问题分为若干个阶段,即若干个互相联系的子问题,在求解子问题的过程中逐步推导出原问题的解。核心:在求解子问题的过程中,存储子问题的解。注1:动态规划的思想实际上和递归相似。都是通过逐步推导,得到答案。而用它们解题时的核心也都是求出“递推公式”。但动态规划和递归的一大区别是:动态原创 2017-04-25 10:13:23 · 437 阅读 · 0 评论 -
学习笔记---位运算
位运算位运算符优先级运算符功能结合方式2~按位取反由左向右5>左移 右移由左向右8&按位与由左向右9^按位异或由左向右10|按位或由左向右左移、右移运算符:运算规则:将变量的二进制原创 2017-05-02 20:30:07 · 609 阅读 · 0 评论 -
学习笔记---枚举类型、联合体、自定义类型
枚举类型定义:将变量的值一一列举出来,变量的值只能在列举出来的值的范围内的数据类型。作用:使用户能够自己定义标识符表示变量的值。(类似宏定义中定义常量的作用,但枚举类型是批量的,整合的。且在代码中而非编译中执行的)语法:声明:enum 枚举类型名 {枚举常量表列};例如:enum Color {red,black,white};则:Color原创 2017-05-01 19:43:11 · 443 阅读 · 0 评论 -
学习笔记---回溯算法与贪心算法
回溯意义:编程解决问题时,常遇到需要例遍所有可能性来求解问题的情况。此时,回溯将是不错的选择。代码示例:#include #include #include /*这个程序用来测试回溯算法在解决问题中的应用*//*八皇后问题:经典的八皇后问题,即在一个8*8的棋盘上放8个皇后,使得这8个皇后无法互相攻击( 任意2个皇后不能处于同一行,同一列或是对角原创 2017-03-12 17:30:20 · 1048 阅读 · 0 评论 -
学习笔记---检索与排序
排序定义:使一组数据有序化的过程分类:比较类算法(冒泡排序法、快速排序法、堆排序法)、非比较类算法(简单计数排序等)快速排序法:简述:1.找序列中的一个数(一般取首元素data[0])作为基数2.首先确定基数在排好序的数组中的位置,将其保存到该位置上(保证比基数小的数都在基数左边,而比基数大的数都在基数右边。则基数就在其该在的位置上了)3原创 2017-03-05 12:20:09 · 644 阅读 · 0 评论 -
学习笔记---大型程序基础
多文件组织概念:当一个完整的程序被存放在多于一个文件中时,称为程序的多文件组织。意义:在设计一个功能复杂的大程序时,为了便于程序的设计和调试,通常将程序分成若干个文件,把实现一个模块的程序或数据放在一个文件中。调用外部函数代码示例:main.c:#include #include int max(int x,int y);//对m原创 2017-02-02 23:36:08 · 563 阅读 · 0 评论 -
学习笔记---链表
链表链表基础定义:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。特点:1.结点地址不连续2.用上一结点中的地址,才能找到下一结点结点:定义:组成链表的基本单元组成:用户需要用的实际数据 下一个结点的地址图示:解析:1.每个正方形代表一原创 2017-02-12 22:25:01 · 545 阅读 · 0 评论 -
学习笔记---结构体
结构体原创 2017-02-09 19:13:00 · 692 阅读 · 0 评论 -
学习笔记---预处理
预处理(编译预处理)预处理命令:C语言中以符号“#”开头的命令示例:#define... #include... #ifdef...含义:1.在对程序进行编译之前,根据预处理命令对程序进行相应处理。2.经过预处理后编译程序才可以对程序进行编译等处理,得到可供执行的目标代码。示意图:解析:如图,源程序经过编译和连接生成可执行文件原创 2017-02-06 22:01:39 · 569 阅读 · 0 评论 -
学习笔记---递归
递归算法举例:数学归纳法证明一个与自然数n有关的命题P(n),有如下步骤:1.证明当n取第一个值a时命题成立(a对于一般数列取值为0或1)2.假设当n=k(k>=a,k为自然数)时命题成立,证明当n=k+1时命题也成立。例:对于求n的阶乘可分为以上两种思路原创 2017-02-04 18:14:26 · 359 阅读 · 0 评论 -
学习笔记---数组初步
数组意义:定义一段连续的内存空间用于保存一组同类型的数据。格式:定义:类型标识符 数组名 [常量表达式];注1:同一个数组的每一个元素都必须属于同一数据类型。注2:一个数组在内存中占用一片连续的存储单元。注3:当定义数组时,中括号内的常量表达式换成变量时,数组的大小将变成动态的。但这种定义方法是C99中新增的,在C89中不被允许。引用:数组名原创 2016-12-26 19:14:05 · 537 阅读 · 0 评论 -
学习笔记---几种基本的算法于几种优化程序的方法
辗转相除法原创 2016-12-14 20:37:05 · 747 阅读 · 0 评论