自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Heart的博客

信仰与心,追求完美

  • 博客(72)
  • 收藏
  • 关注

原创 传奇M数据目录

数据分析 dump数据 逆向分析 汇编学习 架构分析

2022-09-09 20:45:14 766

原创 【迪大学院】X64X86游戏安全逆向分析相关所有视频链接

全面讲解X64X86X游戏安全逆向分析 数据分析 辅助架构全套体系流程 专注与C++各类型框架研发

2022-08-24 11:38:52 1741

原创 X86X64游戏安全逆向分析之选择排序

选择排序

2022-08-24 11:30:13 685

原创 91 92 93 94 95 96 97.C++学员作业

1.应用题1.1 根据前面的作业,把业务记录和图书记录保存到文件中1.2 业务记录保存为文本文件类型,图书记录保存为二进制文件类型1.3 需要有保存和读取的节课1.4 当图书管理系统刚开始加载的时候需要读取当前的图书馆中图书的情况...

2022-03-31 18:48:49 939

原创 88 89 90.C++学员作业

1.应用题1.1 之前由于小明只关注了如何管理图书1.2 但是又出现了一个问题,由于人太多出现了插队的现象1.3 先如今按上了防护栏 ,实现必须排队,规定按照排队顺序办理业务原则1.4 请用合理代码和容器来模拟客户排队现象,对每个客户的不同业务类型进行合理的办理1.5 业务类型有:租借 (办理业务)购买(办理业务) 归还(办理业务) 离场(就是免费看书不需要钱) 进场(直接放行) 等等 (目前就一个队伍,出口)1.6 实现一个业务处理逻辑和图书管理系统的交互1.7 举例:

2022-03-31 18:45:20 740

原创 85 86 87.C++学院作业

1.应用题要求1.1. 小明开了一家图书馆,里面有很多类型的图书1.2 有的时候由于看图的人很多,会对图书进行严格的管理,比如:租借 买卖 回收 等等情况1.3 租借会记录人员信息,偿还信息,金额信息等等1.4 其他也根据自定义合理添加属性1.5 请合理选择容器和逻辑,描述上面的情况写一个图书管理系统...

2022-03-31 18:31:12 986

原创 81 82 83 84.C++学员作业

1.应用题1.1 请自定义同一个接口函数名的多个函数(全局函数),并传入对应的参数(逻辑操作自定义)1.2 给这些接口函数定义一个统一的命名空间 ,并调用2.应用题2.1 给图书类添加一个标准库的字符串类型的成员变量2.2 给图书定义一个构造函数,要求只有一个字符串类型的参数,在构造函数种对字符串进行拆分解析出来图书的各个属性并赋值给图书的各个成员变量。PS:举例:类似传入字符串:"C++辅助是如何锻炼的-001-迪大学员-[迪大出版社]-电子书"请自定义属性个数和含义,可任

2022-03-27 15:53:01 603 3

原创 76 77 78 79 80.C++学员作业

1.应用题要求1.1 现在图书的种类越来越多,小张学员到图书店买了多本图书,请定义多种图书类和学员信息类。1.2 小张妈妈每周会把新的图书给小张阅读,并收回上一周的图书,请自行编写逻辑随着天数的增加打印当前正在观察的图书信息。(最少不能小于3本书)1.3 突然有一天,某图书的出版社说要召回图书,原因仅是图书的某些页面有错误,需要修改后然后寄回给小张, 请用代码来解决这种场景。2.回答题2.1 虚函数表的首地址在对象的多少偏移处?2.2 父类指定了AAA成员函数,子类也有一样类型的AA

2022-03-26 14:32:43 1082 8

原创 73 74 75.C++学员作业

1.问答题1.1 子类是如何调用父类的构造函数的?1.2 如果不显示调用父类构造函数那么会调用父类的什么类型的构造函数?1.3 在继承下 子类 和父类 的构造函数和析构函数的调用顺序?请举例说明(可以为伪代码表明继承关系)1.4 在多继承下 子类 和父类 的构造函数和析构函数的调用顺序?请举例说明(可以为伪代码表明继承关系)2.应用题要求2.1 请根据实际情况,电子书类显示的去调用纸质图书类的构造函数并传递参数...

2022-03-23 21:15:13 1074 4

原创 12 13 14 15.C++学员作业

1.应用题要求1.1 如今电子产品发展迅猛,电子书也深受很多人的喜爱,现如今需要对之前的纸质图书进行电子化,我们又不能丢失了原有的属性,请用代码来解决?1.2 要求电子书不能拥有纸质图书的某些属性,但是有些属性可以使用,请合理利用限制符号...

2022-03-18 20:14:28 462 3

原创 9 10 11.C++学员作业

1.应用题要求1.1 用printf()直接通过%d和图书对象来打印图书当前阅读的页数,不能用. ->或者成员函数来输出1.2 成员函数会存在对象的所管理的内存区域吗?有存在内存对齐的现象吗?1.3 汇编下,this指针一般是通过什么寄存器来使用的?1.4. 计算并打印出当前阅读过的图书的数量(封装成一个函数打印出来)...

2022-03-17 19:36:38 875 4

原创 6 7 8.C++学员作业

1.应用题要求1.1 图书类中的书名需要用new出来的字符数组保存(注意内存泄漏问题)1.2 给图书类定义一个拷贝构造函数 并调用(自定义应用场景)1.3 定义的同类型图书对象的进行if大小比较(比较依据与所看页数)1.4 实现图书对象可以支持加减的运算(自定义属性的改变)...

2022-03-16 20:22:39 754 5

原创 3 4 5.C++学员作业

1.问答题1.1 在C++中 结构体和类的区别是什么1.2 简明阐述下 3种限制符号的区别1.3 3种限制符号在类中只能各一个是吗?1.4 析构函数的作用是什么?2.应用题要求2.1 给图书类中定义一个指针,在构造函数传入指定大小后指向动态申请内存(类型为char)地址,并赋值2.2 请选择在合适的时刻释放这块内存,以避免内存泄露的问题出现...

2022-03-15 21:26:42 652 6

原创 1 2.C++学员作业

1.应用题要求:1.1 定义一个图书的类,包含图书的成员变量(至少3个信息)和成员函数(至少3个)1.2 同是至少2个构造函数1.3 以不同方式来构造多个对象并调用成员函数来修改齐图书的信息2.问答题2.1 初始化列表的初始化顺序是依据于那个的顺序?2.2 this指针的含义是什么?2.3 构造函数会在什么时候触发?2.4 如果自己写了至少一个构造函数,那么编译器还会为我们自动创建构造函数吗?...

2022-03-14 21:49:48 969 9

原创 三.MFC DLL窗口的创建和注入显示

一、什么是MFC微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量.其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类.我们之前接触到的是控制台,这里我们就可以接触到了窗口.二、DLL动态链接库英文为DLL,是Dynamic Link Library的缩写.D

2022-02-19 16:58:03 2087

原创 二十八.C语言项目(完结)

1.根据需求完成项目2.界面样式美化根据自己需求指定,目前只是在控制台上,大家可以借助控制台命令对控制台做一些美化包括字体颜色等等3.期待大家的作品!4.项目完成后单独发给我5.目的为了让大家对C语言有更好的理解和得到更好的锻炼...

2022-02-16 20:27:39 97

原创 二十六 二十七.20220114学员作业

1.用2个宏(多行用\连接)来组合成一个for循环结构,传入参数为初始化次数,循环次数和叠加步长,for循环的中间代码块不需要在宏中体现出来.

2022-02-14 11:05:49 135 2

原创 二十五.20220213学员作业

1.请参考课上,分析的图,来画图分析以下结构体的内存对齐情况(上传图片),同是用offsetof宏来打印出每个成员的偏移量?typedef struct 学员信息{ bool bSex; double dGrade; int iId; char bC;}学员信息;

2022-02-14 10:56:46 131 3

原创 二十二 二十三 二十四.20220211学员作业

1.自定义一个结构体(取别名)变量并初始化 (至少包含 字符串 整数 浮点数 布尔类型 各一个),通过某个值得不同(自定义场景),给结构体赋不同的值,并(用指针版本)打印出来2.请问如下结果为多少?说明原因?#include <stdio.h>#include "string.h"typedef union 工作情况{ char name[10]; int flag;}工作情况;int main(){ 工作情况 工作状态变量; strcpy_s(工作状态变量.nam

2022-02-11 19:12:51 414 10

原创 二.非模态窗口结束流程

非模态窗口结束流程1.对于非模态需要注意的比模态的多创建模态窗口资源和添加类1.创建一个新对话框资源和右键添加类2.使得对话框资源和类绑定3.非模态不是堵塞 最好用NEW对象或者一个全局变量 if (pCDialog非模态 == NULL) pCDialog非模态 = new CDialog非模态(); pCDialog非模态->Create(IDD_DIALOG2,this); pCDialog非模态->ShowWindow(SW_SHOW);3种关闭流程第一种:点X

2022-02-11 16:49:12 421

原创 一.模态窗口和结束流程

模态窗口和结束流程1.对于模态窗口是很简单的创建模态窗口资源和添加类1.创建一个新对话框资源和右键添加类2.使得对话框资源和类绑定3.模态是堵塞 可以用局部变量或者NEW对象 if (pCDialog模态 == NULL) pCDialog模态 = new CDialog模态(); pCDialog模态->DoModal(); //CDialog模态 cDialog模态; //cDialog模态.DoModal();3种关闭流程第一种:点XOnClose()->On

2022-02-11 16:44:17 201

原创 一.Win32窗口坐标

窗口坐标指定的窗口大小为600*500除去左右下的边框标题栏+客户区大小为592 * 4691.客户端坐标RECT rc;GetClientRect(hwnd, &rc);2.屏幕坐标RECT rc1;GetWindowRect(hwnd, &rc1);3.坐标之间的转换ClientToScreenRECT rc;POINT pi;GetClientRect(hwnd, &rc);pi.x = rc.left;pi.y = rc.top;Clie

2022-02-08 17:03:37 826

原创 二十 二十一.20220209学员作业

1.判断题1.1 在C语言中字符串可以使用关系运算符==比较相等 (?)1.2 strcpy_s()函数中第二个参数指的是缓冲区字节的数量 (?)1.3 strlen()函数计算的是字符的长度而不是字节的大小 (?)1.4 sprintf()和printf() 都是把格式化的字符串输出到控制台上 (?)2.回答题2.1 setlocal(LC_ALL,"chs')的用处?需要包含那个头文件?2.2 如果需要输出宽字符版本中文字符串到控制台上,需要用到那个函数输出?2.3 wc

2022-02-08 12:52:52 440 5

原创 十八 十九.20220208学员作业

1.用循环语句初始化(使用数组指针)一个二维数组(备注:使用 * 和 [] 各一个)2.请计算出最后结果? 同时说明原因? float array2[5][6] = { {1,2,3,4,5,6}, {7,8,9,10,11,12}, {13,14,15,16,17,18}, {19,20,21,22,23,24}, {25,26,27,28,29,30} }; int array1[5] = { 0 }; for (int index=0;index<5;in

2022-02-08 12:29:35 181 5

原创 六.结构体数组的由来以及演变优化

结构体指针数组的由来1.我们前面几节课讲到了结构体2.并讲了结构性数组3.如果记忆力还好的同学肯定记得我们提及过一个弊端4.就是当结构性数组的元素过多 会显得数组整个字节大小非常的大5.同是我们定义数组的时候 大小是固定的 也就是当定义数组就已经申请了固定大小的内存了6.也就是说 这么大的一片连续的内存 有可能申请失败的7.那么怎么解决呢?结构体指针数组1.这里就要想到 如果我们用数组只存我们结构的地址 不存实体2.那么 比如1000个元素 结构大小为123.存实体 那么就是12000

2022-02-02 12:46:57 775

原创 五.汇编下数组和步长的本质关系

数组1.经过我们之前的讲解 我们知道数组地址+1 指的是步长2.那么这里我们就围绕下 汇编是怎么表示的我们的+1 这个意思呢?3.首先我们代码:#include <stdio.h>#include "windows.h"int g_iNum[100] = { 0 };int main(){ for (int index=0;index<100;index++) { printf("%d\n", g_iNum[index]); } printf("Hello He

2022-02-02 12:44:20 762

原创 四.结构体性数组在内存的表现形式

结构体性数组在内存的表现形式1.上节课我们讲解了单纯的一个结构性变量在内存的排列方式2.这节课我们来看看如果是结构性数组会是什么排列方式呢3如下:#include <stdio.h>#include "windows.h"typedef struct INFO{ char flag; int id; float fd;}INFO;INFO info[2] = { {'H',1001,666.66f} ,{'E',8201,-999.88f} };int main()

2022-02-02 12:40:24 825

原创 三.结构体在内存的表现形式

结构体在内存的表现形式结构体1.我们在之前讲过结构体struct 都知道struct 可以存放很多不同数据类型的数据2.这必将导致一个问题出现3.我们的结构体需要内存对齐4.如果不对齐 会导致内存排列很错乱(除非一些特殊需求 比如:我们在逆向找数据的时候 变得有些困难 不能一眼看出是什么类型的数据)5.好 这里我们给大家举个例子看一下举例1.我们在之前讲过 默认是8字节#include <stdio.h>#include "windows.h"typedef struct

2022-02-02 12:35:51 792

原创 二十三.函数的调用约定

函数的调用约定结合逆向反汇编讲解__cdecl1.__cdecl 右到左压栈 然后调用方平衡栈2.这种一般是C/C++语言的默认的调用约定3.由于是调用方平栈那么会导致一个问题就是,不同的编译器产生栈的方式不尽相同,那么调用者能否正常的完成清除工作呢?答案是不能。4.同时如果是调用方平衡栈那么会导致以产生的可执行文件大小会比调用_stdcall函数的大__stdcall1.__stdcall 主要用于调用Win32 API函数 右到左压栈 然后函数内部平衡栈 ret 8__fastcal

2022-01-31 12:15:17 31

原创 二十二.递归函数和函数指针

递归函数和函数指针递归函数通俗点讲就是自己调用自己但是可不是无限哦int TotalNum(int a){ printf("a=%d\n", a); if (a <= 1) { return 1; } return a * TotalNum(a-1);//注意这里如果是--a 或者a--会影响结果}int main(){ int sum = TotalNum(5);//5!5的阶乘 printf("sum=%d\n", sum);}注意:1.递归必须有一

2022-01-31 12:13:22 513

原创 二十一.函数的参数几种使用

函数的参数几种使用指针参数 普通参数 引用参数 缺省参数 可变参数区别普通参数1.也就是我们平常见到的一些最简单的int ADD(int a,int b){ return a+b;}//int a,int b 这种类型 + 变量 指针参数1.参数类型包含了指针int ADD(int *a,int *b){ return *a+*b;}引用参数1.参数类型包含了引用int ADD(int &a,int &b){ return a+b;

2022-01-31 12:11:50 134

原创 二十.引用类型

引用类型什么是引用1.可以理解成给一个已有的变量名,取一个别名格式1.类型名 &引用名 = 同类型的某变量名;2.此时的 “&”就不是之前我们讲到的取地址的意思了,而是引用一个变量的意思案例11.先看如下代码int iNum=0;int &iPhoneNum=iNum;2.发现我们的变量名iNum被iPhoneNum给引用了3.什么意思呢?4.也就是此时iPhoneNum和iNum 都指的是同一个内存地址,也就相当于iPhoneNum是变量名iNum的另外一

2022-01-31 12:09:10 172

原创 十九.指针的本质和使用

指针的本质和使用一、地址概念我们首先来看看地址 是个什么概念每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址。画图简单说明:二、 什么是指针?指针也就是内存地址,指针变量是用来存放内存地址的变量。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。int a=3;int *pa=&a;画图简单说明:指向一个变量2.1 指针变量声明的一般形式指针类型 *变量名关键 " * " 符

2022-01-31 12:07:55 919

原创 十八.局部 全局 局部静态 静态全局变量

局部 全局 局部静态 静态全局变量在前面的课中 我们讲了常量和变量这里我们讲下变量的作用域 和 局部变量 全局变量 全局静态变量 局部静态变量在讲到这些之前 还需要了解下程序的内存分配问题一、程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回

2022-01-31 12:01:56 81

原创 十七.函数的基本写法

函数的基本写法一.函数的介绍1.1什么是函数及其函数的作用函数是一组一起执行一个任务的语句.每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数.您可以把代码划分到不同的函数中,如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的.而我们等会要将到得函数声明是告诉编译器函数的名称、返回类型和参数等信息。而函数定义提供了函数的实际主体.1.2 库函数C 标准库提供了大量的程序可以调用的内置函数.例

2022-01-31 11:58:14 1401

原创 十六.跳转语句和Switch

跳转语句一、break continue在讲到上面的循环后,有没有同学会有疑问.如何提前结束当前循环或者只执行循环体的某个部分代码下面我们讲讲如何操作5.1 breakbreak:中文解释“休息 打断”意思一般在循环体内配合if条件判断来实现当达到某个条件就跳出循环int a=10;while(a>0){ printf("a=%d\n"); a--; if(a==5)//当a==5的时候 就 { break; }}syst

2022-01-31 11:56:31 53

原创 十五.循环语句

循环语句一、while1.1 whilewhile 中文解释有一个 "在…期间"的意思也就是说当满足某个条件 一直处于某个期间我们首先来看看一段代码1.2 例如int a=10;while(a>0){ printf("a=%d\n"); a--;}system("pause");1.首先看到定义了一个int类型的变量a, 同时赋值为10.2.这时候进入循环语句while,判断a是否大于0.当瞒住这个条件.3.进入循环语句块并执行相应的代码块,也就是{}里面

2022-01-31 11:54:30 289

原创 十四.if判断语句

15.if判断语句一、if else 及其嵌套首先我们从最简单的if开始讲1.1 ifif翻译成中文就是 :如果顾名思义就是用来判断某个条件是否为真 还是假如果为真就执行我们制定的代码块如果不为真就执行另外一块代码块注意{}一定要限制住代码块的范围!!好了 这里用代码说明 具体的用法int a=1;int b=2;if(a<b){ printf("结果:a<b \n");}1.2 流程图二、if…elseint a=1;int b=2;if(a&lt

2022-01-31 11:51:19 877

原创 十三.作用域

14.作用域1.首先我们从名字“作用域”就能联想到,有一个“域”字 ,应该是什么区域之类的东西.2.好,我们继续.3.确实没错,C语言里面的作用域就是用来限制某些变量、代码块、以及一些函数等等的起作用的范围.4.那么一旦脱离这个范围就会失效,也就是C语言我们叫做回收/释放.书写规范1.首先我们作用域大多说情况是以{}左右个一个“花括号”,把我们的某些变量、代码块、以及一些函数等等限制在这个区域.局部作用域-举例说明11.在我们第一节课就遇到了main函数,紧接着就是{},在花括号中就是我们的

2022-01-31 11:46:50 117

原创 十二.运算符

一、运算符1.首先我们来看看C语言有哪几种运算符,先了解下2.算数运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符(sizeof 三目运算符)3.这些运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。4.是不是想迫切的知道这些运算符怎么使用呢?5.下面我们先介绍算数运算符 关系运算符 逻辑运算符 ,其他运算符我们后面的章节再讲二、算数运算符+ - * / % ++ –2.1.+ 加号int i1 = 1;int i2 = 2;int i3 = i1 + i2;pri

2022-01-31 11:43:56 55

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除