关于学习NDK基础知识这些就够了(一)

一、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 大家再下载一个注入文件的程序就可以了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值