首页
社区
课程
招聘
[原创]那些年我曾今玩过的魔兽外挂(一)
发表于: 2019-3-6 12:30 22006

[原创]那些年我曾今玩过的魔兽外挂(一)

2019-3-6 12:30
22006

本系列文章的发布顺序并非按照外挂功能复杂程度排序,这点请各位看官注意。

  另外,亲爱的大手子们,你以为不封你们真的是因为没检测到你们吗?

  那么,接下来要说的这个,应该是我目前玩过的在思路上最巧妙的,涉及到的点也是个检测的盲点,在长达10年(毫不夸张)的对抗过程中被双方都忽略点。

  文件名:jasstools.zip

  包含文件:jasstools.m3d,globals.txt,function.txt,main.txt,Game.dll

  MD5:

  jasstools.m3d: f55f15eb7a6c5b962df6a32c40d09372

  game.dll:267861a0dfd416dbad13e7ee3ec7794a

  OK,依照惯例从DllMain()开始:


  DllMain()非常清晰没什么好看的,当 ul_reason_for_call == DLL_PROCESS_ATTACH,即dll挂靠的时候执行 InitHack()函数

  显然这个“InitHack()”函数才是我们要关注的重点。


  就一份外挂来说,这个流程是写得非常符合“war3的规范的”,甚至比一些商业代码都要规范,当然还有更规范的外挂代码。其中有一句代码是我要吐槽的:

  这种代码在这份显得“非常正规”的代码中简直是神一样的存在,因为正常做法大概是:

  虽然这样要多写一点代码,但是看起来更符合这份代码的风格不是吗?

  当然这句话我在很多易语言源码中见过比如:“game.dll”、““Game.dll” 、“GAME.DLL”比较三次的,实际上根本不用比较。

  其流程图大致如下:


  吐槽完毕,显然通过观察流程我们发现样本做了一个非常关键的操作,即hook g_game_module_handle + 0x1FAB34 也就是compline_jass_script()这个函数。
  不得了啦!偷梁换柱嘞!不被发现的那种~~~
  好,那么我们看下这个回调函数DetourGameComplineJassScript()

  就截图了上半部分,下半部分不是关键,所以省略了。
  那么这一大串东西,到底做了些什么?其实很简单,看以下伪代码:
while(编译的脚本 != nullptr)
{
    if(v_当前编译的脚本名称 == "war3map.j")
    {
        ......
        v_修改后的脚本大小 == 向原地图脚本中插入作弊脚本();
        将脚本使用暴雪字符串处理规范进行处理();
        覆盖原脚本Buffer();
        ...... 
    }
}
调用原ComplineJassScript();
  看以下流程图:
while(编译的脚本 != nullptr)
{
    if(v_当前编译的脚本名称 == "war3map.j")
    {
        ......
        v_修改后的脚本大小 == 向原地图脚本中插入作弊脚本();
        将脚本使用暴雪字符串处理规范进行处理();
        覆盖原脚本Buffer();
        ...... 
    }
}
调用原ComplineJassScript();
  看以下流程图:

  所以,这个外挂的核心功能流程已经被我们分析清晰了,当然这个关键函数里还有一个关键点:InsertCheatScriptToMapOrginJassScript()
这个函数负责向内存中的原地图脚本插入作弊脚本,那么我们跟进去看看它是怎么实现这个操作的:

  哇!这密密麻麻的一坨是啥?看着好恐怖啊!实际上一点都不恐怖,你只需要关注我画红框的地方。这些就是这个函数的关键,你只要关心它们就好了。
再给出流程图之前,我们要引入一个前置知识,Jass2语言:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-3-6 12:35 被黑洛编辑 ,原因:
上传的附件:
收藏
免费 8
支持
分享
最新回复 (27)
雪    币: 180
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持~~~
2019-3-6 13:25
0
雪    币: 688
活跃值: (3660)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
3
打魔兽吗?我人族贼菜
2019-3-6 13:45
0
雪    币: 29182
活跃值: (63621)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
4
感谢分享~
2019-3-6 14:11
0
雪    币: 592
活跃值: (192)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
占个楼 你算是比较有牌面的  至少比那个大黄狗 好多了 我就看他很不舒服
2019-3-6 14:13
0
雪    币: 9217
活跃值: (1901)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
等老哥下一篇!
2019-3-6 14:30
0
雪    币: 403
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
aabiaobiao 占个楼 你算是比较有牌面的 至少比那个大黄狗 好多了 我就看他很不舒服
吐槽千万条,文明第一条。用语不规范,四楼两行泪。
2019-3-6 14:59
0
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
8
aabiaobiao 占个楼 你算是比较有牌面的 至少比那个大黄狗 好多了 我就看他很不舒服
你看外挂相关帖子应该都会觉得很舒服,很有排面
2019-3-6 15:06
0
雪    币: 545
活跃值: (257)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
9
感谢分享~
2019-3-31 14:56
0
雪    币: 4793
活跃值: (4484)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
呦西检测手段收藏了
2019-4-8 02:28
0
雪    币: 0
活跃值: (150)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
妈呀
2019-4-8 17:49
0
雪    币: 0
活跃值: (168)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
只看到了喊话功能,没有变态功能
2019-4-8 22:45
0
雪    币: 6124
活跃值: (4721)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
13
pengrui 只看到了喊话功能,没有变态功能
那说明你没看懂,再看一遍,没看懂就再看10遍,看到看懂为止。
2019-4-9 00:14
0
雪    币: 334
活跃值: (92)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
14
对于电脑游戏几乎从不感兴趣。但开阔了眼界。谢谢
2019-4-9 08:51
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
网易平台 对抗图 无效。 自定义脚本 能开起来, 不过跟平台玩家不同步,看不到任何一个人。 可以聊天。
2019-11-22 15:48
0
雪    币: 347
活跃值: (44)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
16
注入类型的都是垃圾外挂,外挂功能全驱动内核操作才是正确姿势。
最后于 2019-11-23 13:37 被mb_qkotfqiz编辑 ,原因:
2019-11-23 13:36
0
雪    币: 6124
活跃值: (4721)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
17
mb_qkotfqiz 注入类型的都是垃圾外挂,外挂功能全驱动内核操作才是正确姿势。
山总说的对,山总开发个 全内核的挂开源啊。
2019-11-24 20:17
0
雪    币: 347
活跃值: (44)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
18
黑洛 山总说的对,山总开发个 全内核的挂开源啊。
开源是不可能的,这辈子是不可能开源的。
2019-11-24 21:17
0
雪    币: 0
活跃值: (168)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
你说这句话我就觉得你很无知,愚昧
2020-1-7 16:01
0
雪    币: 224
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
老哥麻烦您能加我一下联系方式吗我的qq1255165501  想请教您几个问题 高价回报
2020-3-7 16:02
0
雪    币: 33
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
请问下大佬子啊官方对战调试过没 用od断下来魔兽就崩溃了
2020-6-30 18:39
0
雪    币: 6124
活跃值: (4721)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
23
wx_洛溪 请问下大佬子啊官方对战调试过没 用od断下来魔兽就崩溃了
写个驱动把那个反调试过了吧,r3也能搞,但是r3要处理的东西太多了。具体看我git吧,有例子
2020-6-30 21:06
0
雪    币: 33
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
大佬git ID是啥或者给个链接
2020-6-30 21:36
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
はつゆき 你看外挂相关帖子应该都会觉得很舒服,很有排面
大黄狗每一个帖子都在叫什么入狱喝茶什么的 然而他一直干的就是这个事
2022-12-9 06:28
0
游客
登录 | 注册 方可回帖
返回
//