一、C语言的概述
百度百科:
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
二、C语言的基础
我们在使用C语言的时侯,每次需要导入头文件,这样才能找到我们的方法名称,导入方法:
#define _CRT_SECURE_NO_WARNINGS //宏定义
//引入头文件
//只有函数的声明,编译时会去找到函数的实现
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
//基本数据类型
//int short long float double char
/*
int %d
short %d
long %ld
float %f
double %lf
char %c
%x 十六进制
%o 八进制
%s 字符串
三、C语言中的指针
指正:
指针存储的是变量的内存地址
内存地址:
内存地址,系统给数据分配的编号(门牌号)
void main(){
int i = 90;
//指针变量,创建一个int类型的指针
int* p = &i; //p的值就是i这个变量的内存地址
printf("%#x\n",p);// %#x 表示十六进制打印
float f = 89.5f;
//创建一个float类型的指针
float *fp = &f;
printf("%#x\n", fp);
system("pause");
}
指针的替换
void change(int* p){
*p = 300;
}
//变量名,对内存空间上的一段数据的抽象
void main(){
int i = 90;
//i = 89;
//创建一个int类型的指针
int *p = &i;
//输出地址
printf("p的地址:%#x\n",&p);
printf("i的地址:%#x\n",&i);
printf("i的值为:%d\n", i);
//间接赋值 i = 200;
//对p存的地址指向的变量进行操作
//*p = 200;
//change(p);
change(&i); // int *p = &i;
printf("i的值为:%d\n",i);
system("pause");//可以让我们在打印台上看到我们的信息
}
注意这段代码的格式,当我们写一个方法去替换我们变量时要用到“ * ”这个字符
根据今天学到的,我们可以写一个简单的外挂
void main(){
int time = 600;
printf(“time:%#x\n”,&time);
while (time > 0){
time–;
printf(“游戏时间剩余%d秒\n”,time);
//睡眠
Sleep(1000);
}
system(“pause”);
}
当这个程序正在运行时我们给他注入一个dll文件
__declspec(dllexport) void go(){
//修改time变量的值
int *p = 0x2ff9d8;
*p = 999999;
}
生成dll文件的方法,我使用的是visual_studio适用这个软件敲代码,生成特别方便
下载地址https://pan.baidu.com/s/1pLLAsUf 大家再下载一个注入文件的程序就可以了