首页
社区
课程
招聘
[原创]PE感染&ShellCode编写技术补充
发表于: 2013-6-4 22:45 23876

[原创]PE感染&ShellCode编写技术补充

2013-6-4 22:45
23876
 
int _tmain(int argc, TCHAR *argv[])
{
    char szStr[] = {"Shell Code."};
 
    printf(szStr);
 
    return 0;
}
 
    jmp run_code
szStr:
    db 'Shell Code',0
run_code:
    push szStr
    call printf
 
int _tmain(int argc, TCHAR *argv[])
{
    __asm
    {
        jmp run_code
szStr:
        _emit 'S'
        _emit 'h'
        _emit 'l'
        _emit 'l'
        _emit ' '
        _emit 'C'
        _emit 'o'
        _emit 'd'
        _emit 'e'
        _emit '.'
        _emit 0
 
run_code:
        push szStr
        call printf
    }
 
    return 0;
}
 
int _tmain(int argc, TCHAR *argv[])
{
    __asm
    {
        call run_code
szStr:
        _emit 'S'
        _emit 'h'
        _emit 'e'
        _emit 'l'
        _emit 'l'
        _emit ' '
        _emit 'C'
        _emit 'o'
        _emit 'd'
        _emit 'e'
        _emit '.'
        _emit 0
 
run_code:
        call printf
    }
 
    return 0;
}
 
    call run_code
szStr:
    db 'Shell Code',0
run_code:
    ;push szStr   感谢 38楼alvasli同学指出这里的手误。 
    call printf
 
            call _push_text
            db "Back Door Opend!", 0
        _push_text:
            pop edi
            call _push_caption
            db 'HA...', 0
        _push_caption:
            pop esi
 
            push 00000040h
            push esi
            push edi
            push 0
            call eax ;MessageBoxA

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

上传的附件:
收藏
免费 5
支持
分享
最新回复 (58)
雪    币: 297
活跃值: (120)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
又爆料啦,围观之!
2013-6-4 23:38
0
雪    币: 100
活跃值: (323)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
写的不错,哈哈。不过为何要静态变量?普通成员变量好点感觉
2013-6-4 23:49
0
雪    币: 316
活跃值: (128)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
4
这年代谁还用这破代码去感染,感染了你的计算机有money吗?
2013-6-5 09:20
0
雪    币: 437
活跃值: (78)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
mark一下
2013-6-5 09:31
0
雪    币: 496
活跃值: (286)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
6
要不您写点高级的感染来,MBR,BIOS或者UEFI的感染代码瞧瞧?

明确说了觉得没技术含量就看看代码风格。
2013-6-5 09:44
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
还是支持lz无私分享的精神~
2013-6-5 09:53
0
雪    币: 316
活跃值: (128)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
8
我写不出来,没你牛,我是小菜,楼主饶了我吧......
2013-6-5 09:56
0
雪    币: 2271
活跃值: (2160)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
9
有分享的精神就好
2013-6-5 10:04
0
雪    币: 1103
活跃值: (496)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
发现论坛中总有那么些人说话忒冲,有话好好说,如果在现实生活中,这种人一般情况下混不开的,当然如果是非常牛逼的人说话冲点也能理解,不过貌似比尔或者巴菲特此类牛人现实生活中说话也是很平易近人的。。。
2013-6-5 10:45
0
雪    币: 6
活跃值: (128)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
愿意把自己的东西拿出来分享,心境就比一般人高,支持。
2013-6-5 10:52
0
雪    币: 2781
活跃值: (2573)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
12
顶LZ,123456
2013-6-5 11:05
0
雪    币: 6723
活跃值: (1199)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
mark
2013-6-5 11:15
0
雪    币: 1025
活跃值: (239)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
楼主上一讲是那个啊 ?
2013-6-5 11:43
0
雪    币: 220
活跃值: (711)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
现在貌似感染行不通了,病毒都不用了
2013-6-5 12:02
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
大家都看不见我,看不见我,我是打酱油的,我只是
2013-6-5 12:24
0
雪    币: 496
活跃值: (286)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
17
感染的话要看如何进行了,如果对编译后的exe做了一些PADDING操作,那有些规矩的感染方式确实无法行得通了。
但是对于那种丧心病狂的,直接覆盖exe原有数据的感染型病毒来说,还是可以感染。

但是这一切都是要以过得了杀软为前提的。
2013-6-5 12:34
0
雪    币: 6
活跃值: (1125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
c++写病毒实在太浪费了
2013-6-5 12:35
0
雪    币: 496
活跃值: (286)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
19
2013-6-5 12:35
0
雪    币: 47
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
留个脚印,顺便向楼主学习
2013-6-5 20:20
0
雪    币: 959
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
#define RELEASE_HANDLE(h) do \
{ \
    if (NULL != h && INVALID_HANDLE_VALUE != h) \
    { \
        CloseHandle(h); \
        h = NULL; \
    } \
} while (0);

感觉这样比较好
#define RELEASE_HANDLE(h) do \
{ \
    if (NULL != h && INVALID_HANDLE_VALUE != h) \
    { \
        CloseHandle(h); \
        h = NULL; \
    } \
} while (0)
2013-6-5 20:44
0
雪    币: 496
活跃值: (286)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
22
两个代码一样的。。。。难道是我撸多了?
2013-6-5 21:09
0
雪    币: 959
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
下面那个无”;“
do {} while(0)的使用完全是为了保证宏定义的使用者能无编译错误地使用宏,它不对其使用者做任何假设。

如果有”;“
if(h)
   RELEASE_HANDLE(h);
else
  //...
会出现编译错误,else没有对应的if分支,因为宏中多了一个分号。
2013-6-5 21:20
0
雪    币: 645
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
膜拜大牛 论坛家的温暖啊
2013-6-5 21:39
0
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
25
好贴我是来学习的:)
2013-6-5 22:07
0
游客
登录 | 注册 方可回帖
返回
//