首页
社区
课程
招聘
[原创]由手动变自动:魔兽争霸助手的附加(附原代码及说明)
发表于: 2010-9-17 21:09 11118

[原创]由手动变自动:魔兽争霸助手的附加(附原代码及说明)

2010-9-17 21:09
11118
收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
http://bbs.pediy.com/showthread.php?t=82841手动PEDIY魔兽Game.dll让warkey与其生死相依
结合看才看懂楼主要说啥意思
2010-9-17 23:30
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
3
心有多大 舞台就有多大 逆向无解
2010-9-17 23:31
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
4
植物大战僵尸 和 DOTA   被PEDIY的最惨了
2010-9-17 23:32
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
5
呵呵,代码段的注入代码还能再精简,这个好像是88字节,有点大,我试了下能精简到62字节。

__start:
        __asm
        {
                pushad
                        //得到本模块的模块基址,本来是esp+4,但pushad 8*4=32字节内容,所以是36 (0x24)
                        mov eax, [esp+0x24]  
                        xchg eax, edi   
                        call lb0
                        __emit 'w'
                        __emit 'a'
                        __emit 'r'
                        __emit 'k'
                        __emit 'e'
                        __emit 'y'
                        __emit 0
lb0:
                pop esi
                        push esi   //FindWindowA(NULL, "warkey")
                        push 0
                        call [edi+0x11111111]  //FindWindowA函数地址 函数地址 = (基址+RVA(FirstThunk))
                        or eax, eax
                        jnz lb1
                        push SW_SHOWNORMAL  
                        push esi
                        call [edi+0x33333333] //WinExec函数地址
                        jmp lb3
lb1:
                push 0
                        push 0
                        push WM_CLOSE
                        push eax
                        call [edi+0x22222222]   //SendMessageA(hWnd, WM_CLOSE, NULL, NULL);
lb3:
                popad      //恢复所有寄存器,并跳往原OEP
                        __emit 0xE9
                        __emit 0x44
                        __emit 0x44
                        __emit 0x44
                        __emit 0x44
        }       
       
__End:
2010-9-17 23:52
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
6
另外输入表依靠.rdata节间隙如果采用复制的方法好像浪费比较大,如果能向后调整体挪动一点,再添加输入表就非常棒了,嘿嘿
2010-9-17 23:57
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
7
看了一下,似乎难度非常大,可能会破坏掉输出表内容和输入表的OriginFirstThunk/IAT,这些值都可能需要修正。
2010-9-18 09:00
0
雪    币: 125
活跃值: (161)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
winexec        函数的地址还是手动添加进去的么?
2010-9-18 17:50
0
雪    币: 125
活跃值: (161)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
对不起 刚没仔细看代码  看完后发现了个 AddFunc2IDT函数。
2010-9-18 18:00
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
貌似我中午的回帖被删了...
2010-9-18 18:16
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
11

进行了改进:
    1、对SHELLCODE和输入表都用间隙优先的方式进行附加。
    2、如果节间隙空间不足,再增加新节的方式进行添加代码或输入表。
    3、保持OEP处于.text节段,防止变态的卡巴大叔。
    4、增加了错误处理和类代码整理。
    5、对SHELLCODE进行了简化。

优点:
    适用于魔兽争霸的所有版本!
上传的附件:
  • g.JPG (98.57kb,531次下载)
2010-9-19 22:09
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
这个会报作弊。。。。
2010-9-20 09:18
0
雪    币: 249
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
看到魔兽呗吸引来了  

刚编译了。。 先运行看下效果
2010-9-20 23:00
0
雪    币: 126
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
没看懂,但还是顶一个
2010-9-27 10:33
0
游客
登录 | 注册 方可回帖
返回
//