首页
社区
课程
招聘
[求助]shellcode 入门问题
发表于: 2008-12-29 16:09 5305

[求助]shellcode 入门问题

2008-12-29 16:09
5305
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以在od中反汇编,然后再把机器指令考出来就可以了
2008-12-29 16:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
说实话不懂 - -!!
2008-12-29 17:43
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
4
试试这样(没做实验验证,只是突然想到的一个方法):

struct descriptor
{
    void * address;
    void * length;
};

descriptor GetShellCodeDescriptor()
{
    descripter d={0};
    __asm
   {
        push eax
        call ll
ll:     pop eax
        add eax, (shellcode-ll)
        mov d.address, eax
        mov d.length,   (shellcode_end - shellcode)
        jmp shellcode_end
shellcode:
         // 这里用汇编语言写shellcode
shellcode_end:
         pop eax
    }
    return d;
}
2008-12-29 17:56
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
winhex
2008-12-29 18:05
0
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我觉得还是直接asm写的好,用VC++写出来在提取,好像很麻烦
2009-5-11 15:07
0
雪    币: 339
活跃值: (10)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
7
根据需求用内嵌asm的方式把其功能实现,接着反汇编去取这段shellcode,接着对于出现0指令码的位置做相应的替换,再次使用内嵌asm的方式验证,反复修改,直到shellcode中没有0指令码
2009-5-13 10:20
0
游客
登录 | 注册 方可回帖
返回
//