首页
社区
课程
招聘
[原创]The Headless Horsemen Engine v1.01
发表于: 2007-11-28 16:42 6532

[原创]The Headless Horsemen Engine v1.01

2007-11-28 16:42
6532
; ---------------------------------------------------------------------------
;
; The Headless Horsemen Engine v1.01
;
; (x) forgot 2k7
;
; input:                esi = input buffer
;                       edi = output buffer
;                       edx = virtual address delta
;
; output:               eax = count of output bytes
;
; ---------------------------------------------------------------------------

hhe                     proc

                        pushad

                        lodsb
                        cmp     al, 0E8h
                        jz      __long

                        cmp     al, 0E9h
                        jz      __long

                        cmp     al, 0Fh
                        jnz     __0

                        lodsb
                        and     al, 0F0h
                        cmp     al, 80h
                        jnz     __exit

                        dec     esi
                        dec     esi
                        movsb
                        lodsb

__long:                 stosb
                        lodsd
                        jmp     __fixup

; ---------------------------------------------------------------------------

__0:                    cmp     al, 0EBh
                        jnz     __1

                        mov     al, 0E9h
                        stosb
                        dec     edx

__extend:               lodsb
                        movsx   eax, al
                        add     edx, 4
                        jmp     __fixup

; ---------------------------------------------------------------------------

__1:                    mov     bl, 75h
                        cmp     al, 0E2h
                        jz      __loop

                        cmp     al, 0E0h
                        jz      __lxxp

                        cmp     al, 0E1h
                        jz      __lxxp

                        cmp     al, 0E3h
                        jnz     __2

__jecxz:                mov     bl, 74h

__testjxx:              mov     ax, 0C985h
                        stosw
                        inc     edx
                        inc     edx
                        jmp     __shortjxx

; ---------------------------------------------------------------------------

__lxxp:                 and     eax, 1
                        shl     eax, 18h
                        or      eax, 74FF498Dh
                        stosd
                        mov     al, 8
                        stosb
                        add     edx, 5
                        jmp     __testjxx

; ---------------------------------------------------------------------------

__loop:                 mov     al, 49h
                        stosb
                        inc     edx
                        jmp     __shortjxx

; ---------------------------------------------------------------------------

__2:                    mov     bl, al
                        and     al, 0F0h
                        cmp     al, 70h
                        jnz     __exit

__shortjxx:             mov     ax, 0F00Fh
                        xor     ah, bl
                        stosw
                        jmp     __extend

; ---------------------------------------------------------------------------

__fixup:                sub     eax, edx
                        stosd

__exit:                 sub     edi, [esp]
                        mov     [esp+1Ch], edi
                        popad
                        retn

hhe                     endp

; ---------------------------------------------------------------------------

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

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
太邪恶了,还要选专题

如果看不懂,就不要来掺和了。。。
2007-11-28 16:43
0
雪    币: 287
活跃值: (102)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
干什么用的 .....
2007-11-28 16:54
0
雪    币: 1746
活跃值: (287)
能力值: (RANK:450 )
在线值:
发帖
回帖
粉丝
4
不掺和...
2007-11-28 17:51
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
5
无头的骑手,枪打出头鸟,围观即参与,秋后要算帐
2007-11-28 17:59
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
6
这样不太好奥 还是用反汇编器好点的说~ 我喜欢列一张表~^_^用在我的易花指令重组工具上
struct TRelIns
{
        DWORD Type;
#define TYPE_REL32 1
#define TYPE_REL16 2
#define TYPE_REL8 3
        BYTE OpCode[16];
        SIZE_T szOpCode;
};
const TRelIns TRelInsTable[] =
{
        {/* Type */ TYPE_REL32,/* OpCode */{0xE9     },1 },
        {/* Type */ TYPE_REL32,/* OpCode */{0xE8     },1 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x87},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x83},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x82},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x86},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x84},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x8F},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x8D},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x8C},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x8E},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x85},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x81},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x89},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x80},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x8A},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x8B},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0x88},2 },
        {/* Type */ TYPE_REL32,/* OpCode */{0x0F,0xE9},2 },
};
对易的指令足够了  咯
其实本来还有  prefix 和  short jxx
2007-11-28 18:15
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
7
forgot是29A的粉丝么,病毒里是不会有固定的表的
2007-11-28 20:59
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
8
@foxabu:

你没明白我在干啥

@softworm:

我是z0mbie铁杆粉丝,“病毒里是不会有固定的表的”在说啥?
2007-11-28 22:02
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
9
我是想起原来MentalDriller那篇文章,提到绝对的Meta,所以不使用查表的方式来实现反汇编。BTW我也木明白你在干啥
2007-11-28 22:50
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
10
Driller实现的不好,可能需要的人才明白。

不知有人看过大米的那个 jmp 乱序么。

http://bbs.pediy.com/showthread.php?t=49923
2007-11-28 23:01
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
11
明白了。
我拿CV试试
2007-11-29 12:26
0
游客
登录 | 注册 方可回帖
返回
//