//外挂
//改变一个数据,需要数据的地址,也就是指针,int需要int*
//改变一个指针变量,需要指针的地址,二级指针,int*需要int **
//改变一个二级指针,需要二级指针的地址,三级指针,int**需要int ***
//改变一个指针,指针指向数组,需要指针的地址,数组的首地址
//函数指针,找到地址,进行类型转换,调用函数。
#include<stdio.h>
#include<stdlib.h>
//调用游戏内部函数
_declspec(dllexport ) void go()
{
void(*p) () = ( void(*) ())0xf610f5;
p();
}
//调用游戏内部函数
_declspec(dllexport )void go1()
{
int(*p) ( int, int) = ( int(*) ( int, int))0xf6109b;
int t = p(100, 200);
system( "color 0a");
printf( "----t----:%d\n", &t);
}
//修改游戏中变量
_declspec(dllexport ) void go2()
{
int* pa = ( int*)0x2710;
*pa = 777777;
int* pb = ( int*)0x4e20;
*pb = 888888;
}
//修改游戏中一级指针
_declspec(dllexport ) void go3()
{
int** p1 = ( int**)0x2710;
*p1 = ( int*)0x2222;
int** p2 = ( int**)0x4e20;
*p2 = ( int*)0x22223;
}
//修改游戏中二级指针
_declspec(dllexport ) void go4()
{
int*** pp = ( int***)0x2710;
*pp = ( int**)0x3333;
}
//修改游戏中数组
_declspec(dllexport ) void go5()
{
char** pp = ( char**)0x22;
*pp = ( char*)0x223 + 0x1;
}