首页
社区
课程
招聘
[原创]自己写的魔兽1.24 Helper 的代码
发表于: 2010-5-10 22:47 27196

[原创]自己写的魔兽1.24 Helper 的代码

2010-5-10 22:47
27196
今天有空把以前写的1.20e的MH改了一下,支持1.24.

具体功能见下图:


原理很简单,就是改内存。
没用直接编码地址,先获取Game.dll的基地址,然后找内存地址Patch
原因是一些平台会改变动态Game.dll的基地址,导致直接编码地址失效。

实现了:
+大/小地图开全图
+分辨幻象
+显示隐身
+显示神符
+屏蔽左win
+可以给队友给钱(之前发帖忘记写了,界面上也忘记写了)
+改键是把Q改成Num7(有其他需求的自己改代码)

注:没有提供去除迷雾,以及视野外选中。因为会被检测到MH,但是可以看到迷雾中的单位。

显血代码里面有我注释掉了,因为1.24自己带了显血
至于网上流传的自动喊话之类的很多是将字符先转为UTF-8编码,然后将其复制到剪贴板,然后模拟键盘发出去。
有兴趣的朋友可以去试一下。

发出来供大家学习,欢迎各位大牛拍砖,欢迎大家测试。(建议用小号测试)

Src+bin下载: WarCraftHelper1.24.rar

运行不了的请下载Microsoft Visual C++ 2008 Redistributable Package (x86) 1.7MB

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 8
支持
分享
最新回复 (49)
雪    币: 291
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
注:没有去除迷雾但是可以看到单位,不去是因为会被检测到MH
2010-5-10 22:57
0
雪    币: 88
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
此贴感觉会火!!!!!!!!占位
2010-5-10 23:04
0
雪    币: 72
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
果断回帖,此帖必火。
有SRC就是好,就是好,不用CE下走来走去了。支持支持。
2010-5-10 23:07
0
雪    币: 291
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
我也在用CE的,很好用
2010-5-10 23:19
0
雪    币: 236
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
看上去很不错..

加点ANTI 去VS 玩玩
2010-5-11 04:23
0
雪    币: 94
活跃值: (445)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
请问楼主,那些对战平台的挤房原理请问是什么啊?能介绍介绍么?
2010-5-11 08:39
0
雪    币: 291
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
我觉得是对平台主程序进行内存补丁,实现了自动点击进入按钮的功能。不知道对不对~~
2010-5-11 09:34
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
那些地址是如何找到的.求大神讲解下.
2010-5-11 09:43
0
雪    币: 291
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
我一般用的定位方法有两种:
一种方法是用上面提到的CE。
另外一种是运行魔兽后,内存中查找相关Jass函数名
2010-5-11 10:03
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
11
很棒,能不能改钱?
2010-5-11 11:27
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
12
mark!!!
2010-5-11 11:58
0
雪    币: 72
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
我感觉,你闲了可以把这个帖子完善一下,讲一下某个模块,从开始是如何实现的。
其实我不会,想听你讲讲。
2010-5-11 12:01
0
雪    币: 234
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
不错...很久以前就想了解一下了...
2010-5-11 13:24
0
雪    币: 291
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
单机可以改,联机改钱就会掉线
2010-5-11 16:19
0
雪    币: 291
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
过段时间,等有空可以简单些一下,最近在忙论文
2010-5-11 16:21
0
雪    币: 1787
活跃值: (340)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
17
那个改键能改改,识别聊天状态吗,最好不是全局钩子~~~
2010-5-11 18:13
0
雪    币: 94
活跃值: (445)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
楼主你好,在网上找了个VS平台的挤房器
http://www.war3fans.com/?p=2179
请问您可以看看,教教我们它挤房的原理么?
2010-5-11 19:44
0
雪    币: 291
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
呵呵~~网上挤房工具很多,建议你去下个HFLoader然后用IDA逆一下就知道原理了~
HFLoader比较简洁,无关代码很少~~
PS:IDA装了插件后F5很方便的
2010-5-11 20:31
0
雪    币: 412
活跃值: (30)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
20
做一些辅助工作还是不错的
这些作弊的就算了
2010-5-11 20:37
0
雪    币: 94
活跃值: (445)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
哦,好的,谢谢楼主,我下来去看看.不大懂逆向,呵呵
2010-5-12 08:08
0
雪    币: 51
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
很牛啊, 哈哈
2010-5-12 09:09
0
雪    币: 94
活跃值: (445)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
楼主你好,我尝试用CE找关战争迷雾的的内存地址,我用的是窗口化开启的魔兽,但是鼠标一移动开魔兽,魔兽就卡住了,导致无法抓数据啊。而且有几十万个地址,根本无法准确的找到。请问楼主可以说一说你是如何用CE抓的这些地址么?
2010-5-15 12:47
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
24
发个我那阵子写的在商店购买物品的函数。可能是1.23版吧,具体忘了,不过不能过检测,只能本地用

DWORD pShop;

struct ItemStruct
{
    DWORD con1;
    DWORD con2;
    DWORD ItemType;
    DWORD substu;
    DWORD un1;
    DWORD un2;
    DWORD con3;
} Item_Buy;

char *pMapBuild;
DWORD pCurBuild;

//购买物品
int BuyItem(DWORD ShopName, DWORD ItemType)
{

    DWORD substu;
    DWORD pBuild;

    if (!pGui)
    {
        printf("pGui is null!\n");
        return 0 ;
    }

    Item_Buy.con1 = 0x6F87A950;
    Item_Buy.con2 = 0;
    Item_Buy.con3 = 0;
    Item_Buy.ItemType = ItemType;

    _asm
    {
        pushad

        push 0
        mov  ecx, ItemType

        mov  eax, 0x6F295430
        call eax                //6F2CD934    call    6F295430
        mov  substu, eax        //04ED3C0C

        popad
    }

    Item_Buy.substu = substu;

    _asm
    {
        pushad
        mov     eax, pGui
        lea     eax, dword ptr [eax+0x5A8]
        mov     eax, dword ptr[eax]
        mov     pMapBuild, eax
        popad
    }

    //枚举地图上的建筑物,获取到商店的指针
    pShop = 0;
    for (int i = 0; i < 974; i++)
    {

        pCurBuild = *(DWORD*)pMapBuild;

        if (pCurBuild)
        {
            _asm
            {
                pushad

                mov     ecx, pCurBuild
                push    1
                push    1
                push    0
                push    1
                mov     eax, ShopName              //商店名称: 0x416d6169
                push    eax

                mov     eax, 0x6F079340
                call    eax                         //6F35C55F    call    6F079340      !!!!!!!
                mov     pShop, eax                  //返回的eax,设为 pShop

                popad
            }
        }else
            break;

        if (pShop)
        {
            printf("Get pShop : %x , i is :%d\n", pShop, i);
            break;
        }
        pMapBuild = pMapBuild + 4;
    }

    if (!pShop)
    {
        printf("Cannot get pshop!\n");
        return 0;
    }

    _asm
    {

        pushad

        lea     eax, Item_Buy
        push    eax
        mov     ecx, pShop

        mov     eax, 0x6F04FE10
        call    eax

        popad
    }

    return 1;

    _asm
    {
        pushad

        mov     eax, pGui
        lea     eax, dword ptr [eax+0x5A8]
        mov     eax, dword ptr[eax]

        mov     ecx, dword ptr [eax+ 9 * 4]       ; 以前是edi = 9,即 1*4

        //ecx为上面得到的ecx
        push    1
        push    1
        push    0
        push    1
        mov     eax, ShopName              //商店名称: 0x416d6169
        push    eax

        mov     eax, 0x6F079340
        call    eax                         //6F35C55F    call    6F079340      !!!!!!!
        mov     pShop, eax                  //返回的eax,设为 pShop

        lea     eax, Item_Buy
        push    eax
        mov     ecx, pShop

        mov     eax, 0x6F04FE10
        call    eax

        popad
    }

}
2010-5-15 13:55
0
雪    币: 435
活跃值: (1212)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
25
support!
呵呵,我非常想知道这些地址究竟是怎么找的,希望楼主有空能整理一些通用的游戏逆向方法
期待。。。。
至于挤房,我所知道的是找平台窗口句柄,然后postmessage但愿对你有用
2010-5-15 14:30
0
游客
登录 | 注册 方可回帖
返回
//