栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

FPS中的cs游戏g制作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FPS中的cs游戏g制作

1工欲善其事必先利其器
FPS游戏安装包 链接:https://pan.baidu.com/s/1YGm45EoplPgB9r3_bKkxlA?pwd=pxsi 提取码:pxsi
FPS游戏逆向工具 链接:https://pan.baidu.com/s/1PftO4QAfLBTvfH-OQQkZNA?pwd=aka4 提取码:aka4
 CE 7.4版本:https://www.cheatengine.org/downloads.php 

CS1.6 3248 写代码的工具 visualstudio https://visualstudio.microsoft.com/
2 游戏的操作

`打开作弊窗口

H 打开作弊菜单

G 扔掉武器 bot_stop 1 停止机器人

+ 增加机器人

bot_add_ct 反恐精英

bot_add_t  添加恐怖分子

bot_add_t 在T方增加BOT

bot_add_ct 在CT方增加BOT

3--用ce扫描人物名字 注:扫描类型选:字符串 
搜自己的名字得到

cstrike.exe+90F3DA:
01D0F3D6 - 84 C9  - test cl,cl
01D0F3D8 - 74 30 - je cstrike.exe+90F40A
01D0F3DA - 8A 88 C8A6F502  - mov cl,[eax+cstrike.exe+1B5A6C8] <<
01D0F3E0 - 84 C9  - test cl,cl
01D0F3E2 - 74 26 - je cstrike.exe+90F40A

EAX=00000000
EBX=00000000
ECX=00000063
EDX=019C5BCC
ESI=00000000
EDI=00000001
ESP=0019FAEC
EBP=01A3486C
EIP=01D0F3E0
搜敌人的名字得到:

cstrike.exe+90F3DA:
01D0F3D6 - 84 C9  - test cl,cl
01D0F3D8 - 74 30 - je cstrike.exe+90F40A
01D0F3DA - 8A 88 C8A6F502  - mov cl,[eax+cstrike.exe+1B5A6C8] <<
01D0F3E0 - 84 C9  - test cl,cl
01D0F3E2 - 74 26 - je cstrike.exe+90F40A

EAX=0000024C
EBX=00000000
ECX=00000057
EDX=01A34DB8
ESI=00000000
EDI=00000002
ESP=0019FAEC
EBP=01A3486C
EIP=01D0F3E0
第一个队友的名字得到:

cstrike.exe+1B5AB60
cstrike.exe+90F3DA:
01D0F3D6 - 84 C9  - test cl,cl
01D0F3D8 - 74 30 - je cstrike.exe+90F40A
01D0F3DA - 8A 88 C8A6F502  - mov cl,[eax+cstrike.exe+1B5A6C8] <<
01D0F3E0 - 84 C9  - test cl,cl
01D0F3E2 - 74 26 - je cstrike.exe+90F40A

EAX=00000498
EBX=01A34868
ECX=00000054
EDX=01A353D0
ESI=00000002
EDI=00000003
ESP=0019EFDC
EBP=00000000
EIP=01D0F3E0
注意:这个游戏分配就是第一人,第二个人是敌人,第三个认识队友
分析:第一个人    第二个人  第三个人
            eax=0          24C           498            

得出结论:24c+24c=498,这样就形成了个数组
4---window中的api的操作
 

#include 
#include 
#include 
int main()
{
	//获取桌面窗口   FindWindowA(“类名”,“窗口标题”)   利用窗口获取窗口句柄
  HWND  game_hwnd= FindWindowA(nullptr,"Counter-Strike");
  printf("Counter-Strike的窗口句柄:%xn", game_hwnd);
  //根据窗口句柄,获取进程id。俗称pid

  DWORD proc_id = 0;
  DWORD thread_id=GetWindowThreadProcessId(game_hwnd, &proc_id);
  printf("Counter-Strike的进程ID:%dn", proc_id);
  printf("Counter-Strike的线程ID:%dn", thread_id);
  //根据进程id返回进程句柄 OpenProcess(访问权限,是否继承句柄,进程id)  PROCESS_ALL_ACCESS所有权限

 HANDLE g_hprocess = OpenProcess(PROCESS_ALL_ACCESS,FALSE, proc_id);
 printf("Counter-Strike的线程句柄:%dn", g_hprocess);
 //ReadProcessMemory (远程进程句柄,远程进程中的内存地址,本地进程中的内存地址,要写入的字节数,实际读取的字节数)

 DWORD address = 0x1400000;
 DWORD value;
 DWORD nSize = 4;
 DWORD read_Size;
 ReadProcessMemory(g_hprocess,(LPCVOID)address, &value,nSize,NULL);
 printf("Counter-Strike在0x1400000的值是:%xn",value);

 //CreateToolhelp32Snapshot 建立一个快照  CreateToolhelp32Snapshot(“指定系统获取进程快照类型”,指定要获取进程快照的id,获取系统内所有进程快照id时是0)这个函数包含在中,

 HANDLE snap= CreateToolhelp32Snapshot(TH32CS_SNAPALL, proc_id);//TH32CS_SNAPALL  指进程的所有模块
 printf("Counter-Strike的进程快照是:%dn", snap);

 //Module32First(用CreateToolhelp32Snapshot函数返回的快照句柄,  MODULEENTRY32结构的指针用来返回数据)

 MODULEENTRY32 module_info; //指针
 ZeroMemory(&module_info,sizeof(module_info));//格式化指针 ZeroMemory(内存区域的开始地址,内存区域的大小)
 module_info.dwSize = sizeof(module_info); //dwSize 这个结构的长度,以字节为单位,初始化一个实例以后调用Process32First函数,设置成员的大小sizeof(PROCESSENTRY32).如果你没用PROCESSENTRY32中的成员dwSize初始化,pricess32First将会失败。)

BOOL state= Module32First(snap,&module_info); //Module32First(快照句柄,指针)

 printf("Counter-Strike第一个模块的基地址:%xn", module_info);

 state= Module32Next(snap, &module_info);
 printf("Counter-Strike下一个模块的基地址:%xn", module_info);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013960.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号