郁金香灬老师 游戏安全  驱动 逆向调试 C/C++编程  脚本 UE4/UE5

找回密码
立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
发新帖
课程大纲和价格
官方联系方式2024在线课大纲QQ咨询

34万

积分

131

好友

145

主题
发表于 2024-7-17 19:02:45 | 查看: 925| 回复: 1

//如果需要 联网对战 则双方客户端 需要做相同修改 打补丁
//如果需要 联网对战 则双方客户端 需要做相同修改 打补丁,否则联网对战会掉线

// 星际争霸修改资源.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include<Windows.h>

/*
窗口过程=004D1D70
句柄=82174C
标题=Brood War
窗口类名=SWarClass
线程=主线程
风格=B4080000
扩展风格=8
父=0
大小=(-32000,-32000);6x28
启用=已启用


*/

HWND GetGameHwnd()
{
        return FindWindowA("SWarClass", "Brood War");
}

void W4(UINT_PTR base, DWORD v)
{
        HWND h=GetGameHwnd();
        DWORD pid = 0;
        GetWindowThreadProcessId(h, &pid);
        HANDLE hp = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
        WriteProcessMemory(hp, (PVOID)base, &v, 4, NULL);
        CloseHandle(hp);
}

UINT32 R4(UINT_PTR base)
{
        HWND h = GetGameHwnd();
        DWORD pid = 0;
        GetWindowThreadProcessId(h, &pid);
        HANDLE hp = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
        UINT32 v = 0;
        ReadProcessMemory(hp, (PVOID)base, &v, 4, NULL);
        CloseHandle(hp);
        return v;
}

UINT32 GetPlayerIndex()
{
        //512684
        return R4(0x512684);
}

void 一键修改所有资源()
{
        UINT32 i = GetPlayerIndex();
        //油数组
        UINT_PTR 钱地址 = 0x57F0F0 + 4 * i;
        UINT_PTR 油地址 = 0x57F120 + 4 * i;

        UINT_PTR 人数上限1 = 0x5822C4 + 4 * i;//??  0x582264 + 4 * 6  860*2
        UINT_PTR 人数上限2 = 0x582234 + 4 * i;//??  0x582234 + 4 * 6  860*2
        UINT_PTR 人数上限3 = 0x5821A4 + 4 * i;//??  0x5821A4 + 4 * 6  860*2

        UINT_PTR 角色当前房子数量1 = 0x582264 + 4 * i;//??  0x582264 + 4 * 6  860*2
        UINT_PTR 角色当前房子数量2 = 0x5821D4 + 4 * i;//??  0x5821D4 + 4 * 6  860*2
        UINT_PTR 角色当前房子数量3 = 0x582144 + 4 * i;//??  0x582144 + 4 * 6  房子数量*2

        W4(钱地址, 338866);
        W4(油地址, 338866);

        W4(人数上限1, 1600+  20 * i);
        W4(人数上限2, 1600 + 20 * i);
        W4(人数上限3, 1600 + 20 * i);

        //W4(角色当前房子数量1, 1600 + 20 * i);
        //W4(角色当前房子数量2, 1600 + 20 * i);
        //W4(角色当前房子数量3, 1600 + 20 * i);

        UINT_PTR 角色当前人口1 = 0x582204 + 4 * i;
        UINT_PTR 角色当前人口2 = 0x582294 + 4 * i;

        UINT32 角色当前人口数量1 = R4(角色当前人口1);
        UINT32 角色当前人口数量2 = R4(角色当前人口2);

        printf("角色当前人口数量1=%d\r\n", 角色当前人口数量1);
        printf("角色当前人口数量2=%d\r\n", 角色当前人口数量2);

}

int main()
{
        while (1)
        {
                一键修改所有资源();
                Sleep(1000 * 10);
        }

  
        getchar();
}

//如果需要 联网对战 则双方客户端 需要做相同修改 打补丁,否则联网对战会掉线

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

游戏安全课程 学员办理咨询联系QQ150330575 手机 139 9636 2600  免费课程 在 www.bilibili.com 搜 郁金香灬老师
发表于 2024-7-17 19:03:40
//如果需要 联网对战 则双方客户端 需要做相同修改 打补丁,否则联网对战会掉线

回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ咨询

QQ|Archiver|手机版|小黑屋|郁金香游戏技术

GMT+8, 2024-11-23 06:17 , Processed in 0.096374 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表