Board logo

标题: [其他] 求问批处理不影响程序本身批量多开窗口如何做? [打印本页]

作者: qianjiaren    时间: 2024-3-12 23:09     标题: 求问批处理不影响程序本身批量多开窗口如何做?

游戏本身是有账号登录的,
因为本身我并没有影响游戏,就是为了多开窗口,方便做任务,不需要一个一个账号切换来点击做任务,因为某些不能跳过的动态时间很耗费时间,而这个时间我可以去做其他号任务,游戏叫以闪亮之名,结果我多开了窗口,但是提示我检测还是有窗口存在然后自动关闭,
  1. @echo off
  2. echo Starting QQ...
  3. start "" "C:\LifeMakeoverLauncher_ob_zh_20\LifeMakeoverGame_ob_zh_20\Azure\Binaries\Win64\Azure-Win64-Shipping.exe"
  4. echo Starting WangWang...
  5. reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\LifeMakeoverLauncher_ob_zh_20\LifeMakeoverGame_ob_zh_20\Azure\Binaries\Win64\Azure-Win64-Shipping.exe" /t REG_SZ /d RunAsInvoker
  6. start "" "C:\LifeMakeoverLauncher_ob_zh_20\LifeMakeoverGame_ob_zh_20\Azure\Binaries\Win64\Azure-Win64-Shipping.exe"
复制代码
求问,以上如何改?

我只是想绕过他的恶心事前检测,也并没有更改他的程序本身,毕竟这是联网的游戏,就是想多开两个窗口,毕竟她这里面动态不能跳过太耗费时间了,然后还占用我电脑,,因为是64位程序,互联网常见的甚至大佬分享的多开软件全部都不能使用
作者: qianjiaren    时间: 2024-3-12 23:19

戏多开检测只是对游戏的进程数进行限制,分为事前检测、事中检测、和事后检测。

事中检测和事后检测往往没有提示,是游戏公司封号、处罚的手段,事前检测即禁止游戏多开
枚举进程的多开检测
基本原理就是枚举所有系统进程,如果发现游戏进程名已经存在则无法继续打开新的进程
————————————————
bool isMulOpenByProcess()
{
        HANDLE hProShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
        if (hProShot == INVALID_HANDLE_VALUE) return false;
        PROCESSENTRY32 pw{ sizeof(pw)};

        int count = 0;
        BOOL  bRet = Process32First(hProShot, &pw);
        if (!bRet) return false;
        do{

                _wcslwr_s(pw.szExeFile, wcslen(pw.szExeFile) + 1);
                if (wcscmp(pw.szExeFile, L"muldectection.exe") == 0) count++;
                //wprintf(L"%s\n", pw.szExeFile);
        } while (Process32Next(hProShot, &pw));

        if (count > 1) return true;

        return false;
}
参考破解方法—程序运行时修改进程名

互斥对象多开检测
互斥对象是内核对象,当创建带名称的互斥对象时,如果该互斥对象存在,则创建失败。可以利用这一点实现躲开检测。
bool isMulOpenByMutex()
{
        HANDLE hMutex = CreateMutexA(NULL, FALSE, "MulDectection");
        if (ERROR_ALREADY_EXISTS == GetLastError()) return true;
       
        return false;
}
考破解方法—可以在PE文件结构中删除互斥对象的句柄;hook CreateMutexA函数 等

信号量多开检测
信号量是内核对象,同互斥对象的原理类似,创建信号量时可以指定信号量的最大数量,程序运行时,可以让信号量加一,如果没法加一,说明信号量数量达到了设置最大值,以此来进行躲开检测
————————————————
bool isMulOpenBySemaphore()
{
        HANDLE hSema;
        hSema  = OpenSemaphoreA(SEMAPHORE_ALL_ACCESS, FALSE, "MulDectection");
        if (!hSema)
                hSema =  CreateSemaphoreA(NULL, 0, 3, "MulDectection");

        if (!ReleaseSemaphore(hSema, 1, 0)) return true;
        return false;
}
参考破解方案——可以调用WaitForSingleObject减少信号量数量

窗口多开检测
程序运行时寻找是否有同名窗口,如果已经存在则为程序多开。
HWND hWnd=FindWindowA(NULL,"ConsoleWindowClass");
        if (hWnd != NULL) return true;
考破解方案——修改窗口名

共享内存检测多开
通过进程间共享内存段的方式来检测多开
#pragma data_seg("_hdata")
int g_count = 0;
#pragma data_seg()
#pragma comment(linker,"/SECTION:_hdata,RWS")

bool isMulOpenByMemory()
{
        g_count++;
        if (g_count > 1)return true;

        return false;
}
参考破解方案——修改共享内存段的变量的值
作者: qianjiaren    时间: 2024-3-12 23:23

我只是想绕过他的恶心事前检测,也并没有更改他的程序本身,毕竟这是联网的,就是多开两个窗口,毕竟她这动态不能跳过太耗费时间了,然后还占用我电脑,,因为是64位程序,互联网常见的多开软件全部都不能使用
作者: Batcher    时间: 2024-3-13 08:28

回复 3# qianjiaren


    使用VMware或VirtualBox创建几个虚拟机,每个虚拟机开一个游戏试试。
作者: czjt1234    时间: 2024-3-13 09:58

还是虚拟机走起
作者: qianjiaren    时间: 2024-3-13 11:53

本帖最后由 qianjiaren 于 2024-3-13 12:06 编辑

回复 4# Batcher


    这个游戏和阴阳师一样的电脑桌面,等于我要先隔离安装一个新系统,然后再在这个新系统里面安装这占内存gpu超大的破游戏,然后等于我要切换新系统,在运行该游戏,,,,,然后原来桌面哪个游戏我又要切换系统运行游戏,,,,我的天,,,就没办法隔离软件操作吗?批量开窗口代码是能用,还没进登录界面就强制性的弹出窗口把窗口关闭,,,所以我就卡在这一步,不知道用批量处理如何绕过
作者: qianjiaren    时间: 2024-3-13 11:57

还是虚拟机走起
czjt1234 发表于 2024-3-13 09:58




这是和阴阳师差不多的电脑桌面,而且他是64位,不能隔离软件开虚拟要隔离系统,切换起来特别麻烦,所以我才来求助的
作者: czjt1234    时间: 2024-3-13 12:39

虚拟机就是你说的隔离软件,而不是要切换系统
作者: qianjiaren    时间: 2024-3-13 13:05

回复 8# czjt1234


    不行啊,这里我无法发送图片什么鬼,打开另外一个窗口就自动弹出一个小窗口,说已存在请关闭
作者: Batcher    时间: 2024-3-13 13:47

回复 9# qianjiaren


如果需要上传文件,请用使用网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: Batcher    时间: 2024-3-13 13:54

回复 6# qianjiaren


2楼前4行描述的非常清楚,相信是你搜索到的内容。但是你可能没有理解它的含义。
简单来说,BAT脚本自身无法突破某些游戏多开的强检测机制(判断进程数或其它)。不必在这条路上浪费时间。
顶楼代码使用start命令只能应付微信等这种弱检测机制。
作者: qianjiaren    时间: 2024-3-13 13:57

https://ibb.co/MsjfNQ2
查看https://ibb.co/MsjfNQ2
作者: qianjiaren    时间: 2024-3-13 13:58

回复 11# Batcher
就是弹出这个我无法关闭,想知道如何关闭
作者: czjt1234    时间: 2024-3-13 14:55

程序员想不让你多开,如果一个简单的批处理都能绕开程序员的限定,那这个程序员是不是该下岗?

再说,就算你找到办法多开了,一旦程序员发现了,他发布个更新就可以再把这个办法禁掉

所以说,最保险的还是VMware虚拟机




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2