C语言入门,基本数据类型及外挂原理

一、概述

开始学习c语言征程,把学习的知识点记录下来,顺便加以回顾。

二、开发工具的介绍

开发工具使用Visual Studio
截图

C语言入门,基本数据类型及外挂原理_第1张图片
开发工具截图.PNG

Visual Studio下载

Visual Studio的安装就是按照导向一步一步的安装就行了,这里不过多的介绍了。

三、输入输出,及占位符,基本数据类型

3.1输出
#include ; 1
void main(){
    printf("holle world\n"); 2
    system("pause"); 3
}

1处代码,引入stdio.h文件,类似Java里面的导包
2处代码,打印输出,配合3处代码调用windows的API,等待用户输入
main函数可以有返回值。
打印结果:

C语言入门,基本数据类型及外挂原理_第2张图片
输出.PNG
3.2占位符

代码:

void main(){
    int i = 30;
    printf("%d\n",i); 1
    short k = 8;
    prinf("%d\n", k);2
    sysytem("pause");
}

1,2两处都是通过占位符输出变量i和k,%d就是占位符,其他类型数据的占位符为:
long %ld
float %f
double %lf
char %c
%x 十六进制
%o 八进制
%s 字符串
这段代码的打印结果为:

C语言入门,基本数据类型及外挂原理_第3张图片
占位符示例.PNG
3.3基本数据类型

int short long float double char

四、指针

指针是用来存储变量的内存地址的
看代码:

void main(){
int i = 90;
//指针变量,创建一个int类型的指针
int* p = &i; //p的值就是i这个变量的内存地址 1
printf("%#x\n",p); 2

float f = 89.5f;
//创建一个float类型的指针
float *fp = &f;
printf("%#x\n", fp); 4

system("pause");
}

1处代码,就是用p来存储i的指针,2和4处把变量的地址打印出来

C语言入门,基本数据类型及外挂原理_第4张图片
用指针存储变量地址.PNG

示意图

C语言入门,基本数据类型及外挂原理_第5张图片
指针存储另外一个变量的地址.PNG

i存储的是90,p存储的是i的内存地址,通过内存地址可以修改这个地址上的数值
代码:

void main(){
int i = 90;
//指针变量,创建一个int类型的指针
int* p = &i; //p的值就是i这个变量的内存地址
printf("%#x\n",p);

*p = 200; 1
printf("%d\n", i);
system("pause");
}

1处通过操作指针变量把i的值变为200

C语言入门,基本数据类型及外挂原理_第6张图片
操作指针改变变量的值.PNG

五、外挂原理

void main(){
    int time = 600;
    printf("%d\n", &time);
    while (time > 0){
        time--;
        printf("游戏时间剩余%d秒\n", time);
        Sleep(1000);
    }
    system("pause");
}

写一个游戏程序,时间是600秒,拿到time变量的内存地址,另外写一个外挂程序,生成dll文件,动态注入游戏程序,通过操作内存地址,修改time的值,从而延长游戏时间。
外挂程序代码:

#include
#include
__declspec(dllexport) void go(){
    //修改time变量的值
    int *p = 0x3bfee0;
    *p = 999999;
}

你可能感兴趣的:(C语言入门,基本数据类型及外挂原理)