| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 923 人关注过本帖, 1 人收藏
标题:一个shellcode的实例---群里某人问的一个问题自己做了下奉献给大家
只看楼主 加入收藏
水哥
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:65
专家分:111
注 册:2012-8-11
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:8 
一个shellcode的实例---群里某人问的一个问题自己做了下奉献给大家
.386
.model flat,stdcall
option casemap:none
include windows.inc
.code
start proc

           
        assume fs:nothing
        xor   ecx,ecx
    mov eax,fs:[30h]
    mov eax,[eax + 0ch]
    mov esi,[eax + 1ch]
next_module:
        mov   eax,[esi+08h]
        mov   edi,[esi+20h]
        mov   esi,[esi]
        cmp  [edi+12*2],cx
        jnz  next_module
;****************************************************************************************        
        mov edx,eax     ;eax保存着KERNEL32基址 ,xp  win7 64位通杀
    mov eax,(IMAGE_DOS_HEADER ptr [edx]).e_lfanew    ;得到IMAGE_NT_HEADERS地址
    mov eax,(IMAGE_NT_HEADERS ptr [edx + eax]).OptionalHeader.DataDirectory.VirtualAddress    ;得到导出表RVA
    add eax,edx                    ;导出表在内存的实际地址
    assume eax:ptr IMAGE_EXPORT_DIRECTORY
    mov esi,[eax].AddressOfNames
    add esi,edx
    push 00007373h    ;在堆栈中构造GetProcAddress
    push 65726464h
    push 41636F72h
    push 50746547h
    push esp
    xor ecx,ecx
    .repeat
        mov edi,[esi]
        add edi,edx
        push esi
        mov esi,[esp + 4]
        push ecx
        mov ecx,0fh ;GetProcAddress的长度,包括0
        repz cmpsb
        .break .if ZERO? ;找到跳出循环
        pop ecx
        pop esi
        add esi,4
        inc ecx
    .until ecx >= [eax].NumberOfNames
    pop ecx
    mov esi,[eax].AddressOfNameOrdinals
    add esi,edx
    movzx ecx,word ptr [esi + ecx*2] ;取出序数
    mov esi,[eax].AddressOfFunctions
    assume eax:nothing
    add esi,edx
    mov esi,[esi + ecx*4]
    add esi,edx ;得到GetProcAddress地址
    mov  edi,edx
        push 00000000
    push 41797261h ;在栈中构造LoadLibraryA
    push 7262694Ch
    push 64616F4Ch
    push esp
    push edx
    call esi ;调用GetProcAddress获取LoadLibraryc地址
    ;mov edx,ebx
        call _user32
        db 'user32',0
_user32:
        pop ebx
        push ebx
        call eax
    ;    mov edi,eax
        call _msg
       db 'MessageBoxA',0
  _msg:
        pop  ebx
        push ebx
        push eax
        call esi
        call _hello
        db 'hello',0
_hello:
        pop ebx
        push 0
        push 0
        push ebx
        push 0
        call eax
        call _exit

       db 'ExitProcess',0
_exit:         
       pop ebx
       push ebx
       push edi
       call esi
       push 0
       call eax

      
start endp
end start

[ 本帖最后由 水哥 于 2012-11-12 13:12 编辑 ]
搜索更多相关主题的帖子: edi nothing 
2012-11-11 22:20
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:5 
膜拜大作! 水哥V5!

梅尚程荀
马谭杨奚







                                                       
2012-11-11 22:22
水哥
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:65
专家分:111
注 册:2012-8-11
收藏
得分:0 
HelloMsg.rar (3.33 KB)
2012-11-12 13:38
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
膜拜大作 膜拜大牛
2012-11-12 14:25
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
加精华加粗加高亮
2012-11-12 14:26
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:5 
膜拜大牛

实现自己既定的目标,必须能耐得住寂寞单干。
2012-11-12 17:30
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:5 
这个真心不错哇
2012-11-12 21:20
dgz333
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-11-10
收藏
得分:0 
谢谢 水哥 水叔有点夸张
2012-11-15 19:46
pediyzhi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-9-7
收藏
得分:0 
感谢楼主无私分享与奉献
2013-09-07 21:07
快速回复:一个shellcode的实例---群里某人问的一个问题自己做了下奉献给大家
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041388 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved