首页
社区
课程
招聘
[求助]對某遊戲的多開(HS)求助
发表于: 2014-9-23 23:12 8884

[求助]對某遊戲的多開(HS)求助

2014-9-23 23:12
8884
首先話說前面:這個遊戲的多開已經是免費的到處都有了。研究僅僅是作為技術部分在研究,而且也不會存在商業利益。

//-------------------------------------------------------

首先,該遊戲會在廣告窗口 創建一個名為:“WvsClintMtx” 的互斥體多開,來防止二次開啟…如果存在該互斥體,就自動跳到第一個上面並且退出第二個進程。

對此,我用劫持的方法HOOK了CreateFileMutexA,並且成功開啟第二個遊戲廣告界面。代碼如下:
  if (lpName && !lstrcmpiA(lpName,"WvsClientMtx"))//检查传递进来的参数里是不是WvsClientMtx
  {
    //如果是
    DWORD Timer;
    int RandTimer;
    char ChangeName[254];
    Timer = GetTickCount();//随机一组数字
    srand(Timer);//置随机种子
    RandTimer = rand();//随机一个数字
    sprintf(ChangeName,"%s_%d",lpName,RandTimer);//格式化为WvsClientMtx_1123 这样
    MyDbgPrintA("[+] 名称为: %s 修改名字尝试为:%s",lpName,ChangeName);
    lpName = ChangeName;//更改
  }
  MyDbgPrintA("[+] 名称为: %s 创建",lpName);


這樣雖然可以開啟更多的廣告界面的遊戲,但是第一個登入遊戲後,會發現第二個的時候就會提示
HS遊戲運行中…這樣這樣…

然後後面還有其他的。例如會創建一些Mapping這樣。 針對某多開逆倒是逆出了一點東西。不過很明顯,不完全。
  if (!lpName || lstrcmpiA(lpName,"MultiProcessor__"))
  {
    if (lpName && strstr(lpName,"Global\\{D843DD7B-FD87-4027-98A6-5B5869D753E1}"))
    {
      MyDbgPrintA("[+CreateFileMappingA+] 开始控制 %s",lpName);
      DWORD Timer = GetTickCount();
      srand(Timer);
      DWORD RandTimer = rand();
      sprintf(TempMappingA,"%s_%d",lpName,RandTimer);
      MyDbgPrintA("[+CreateFileMappingA+]  %s -> %s",lpName,TempMappingA);
      lpName = 0;
    }
  }


Event我則只是以這個處理的。“if( !strstr(lpName,"Global\\DEA74738")”

處理一些之後依然沒有弄明白“HS”的206 檢測出現在哪個地方。


也希望各路大神能夠指點一下……
以下是我寫的部分源代碼,如果對大家有用了還請收下。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 2
支持
分享
最新回复 (11)
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
hs多开不是要算号的吗?
2014-9-23 23:18
0
雪    币: 2479
活跃值: (1660)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我記得之前是無需算號的。 5.5系列吧…5.6的不明。
2014-9-23 23:20
0
雪    币: 101
活跃值: (157)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
5.7 也不用..关键是要找到方法..
2014-9-24 02:26
0
雪    币: 2479
活跃值: (1660)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
能否指點一下呢?...?
2014-9-24 05:02
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
{D843DD7B-FD87-4027-98A6-5B5869D753E1} 修改这个,就可以了。
2014-9-24 13:33
0
雪    币: 2479
活跃值: (1660)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
  if (!lpName || lstrcmpiA(lpName,"MultiProcessor__"))
  {
    if (lpName && strstr(lpName,"Global\\{D843DD7B-FD87-4027-98A6-5B5869D753E1}"))
    {
      MyDbgPrintA("[+CreateFileMappingA+] 开始控制 %s",lpName);
      DWORD Timer = GetTickCount();
      srand(Timer);
      DWORD RandTimer = rand();
      sprintf(TempMappingA,"%s_%d",lpName,RandTimer);
      MyDbgPrintA("[+CreateFileMappingA+]  %s -> %s",lpName,TempMappingA);
      lpName = 0;
    }
  }


我是這麼處理的,但是發現第二窗口出不來?
2014-9-25 08:56
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
不是这样改的。
2014-9-25 12:06
0
雪    币: 2479
活跃值: (1660)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
已經很久了。研究2個月了… 實在沒啥頭緒,求最後幫助…。。能進入第二界面就可以了…
2014-9-25 12:36
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
难道要Hook ZwCreateSection 和ZwOpenSection ?
2014-12-14 17:55
0
雪    币: 2479
活跃值: (1660)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
Zw不行的,在R0下可以看到,HS重载了NTDLL
2014-12-15 04:33
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我可以开第2个窗口,但是一会1分钟左右,后开的游戏就会消失,不知道怎么回事。没有任何提示
2015-2-3 16:49
0
游客
登录 | 注册 方可回帖
返回
//