首页
社区
课程
招聘
[求助]缓冲区溢出例程学习疑问
发表于: 2014-2-28 21:16 3914

[求助]缓冲区溢出例程学习疑问

2014-2-28 21:16
3914
代码据网文《打造Windows下自己的ShellCode》修改(无完整原文代码),执行system("start cmd")(Win7环境,没有command.exe),测试内联汇编已经没有问题了,但拷出来的机器码运行会崩溃掉,调试了很久还是没有头绪。望各位大大赐教~
说明:红色代码为硬编码,测试时请修改.
#include<stdio.h>
#include<conio.h>

unsigned char shellCode[] = "\x55"
                            "\x8B\xEC"
                            "\x83\xEC\x0C"
                            "\xC6\x45\xF5\x6D"  
                            "\xC6\x45\xF6\x73"  
                            "\xC6\x45\xF7\x76"  
                            "\xC6\x45\xF8\x63"  
                            "\xC6\x45\xF9\x72"  
                            "\xC6\x45\xFA\x74"  
                            "\xC6\x45\xFB\x2E"  
                            "\xC6\x45\xFC\x64"  
                            "\xC6\x45\xFD\x6C"  
                            "\xC6\x45\xFE\x6C"  
                            "\xC6\x45\xFF\x00"  
                            "\x8D\x45\xF5"
                            "\x50"
                            "[B][COLOR="red"]\xB8\xC6\x4B\x79\x76[/COLOR][/B]"
                            "\xFF\xD0"
                            "\xC6\x45\xF4\x73"  
                            "\xC6\x45\xF5\x74"  
                            "\xC6\x45\xF6\x61"  
                            "\xC6\x45\xF7\x72"  
                            "\xC6\x45\xF8\x74"  
                            "\xC6\x45\xF9\x20"  
                            "\xC6\x45\xFA\x63"  
                            "\xC6\x45\xFB\x6D"  
                            "\xC6\x45\xFC\x64"  
                            "\xC6\x45\xFD\x00"  
                            "\xC6\x45\xFE\x00"  
                            "\x8D\x45\xF4"
                            "\x50"
                            "[B][COLOR="Red"]\xB8\x77\xB1\x72\x76[/COLOR][/B]"
                            "\xFF\xD0"
                            "\x58"
                            "\x58"
                            "\x83\xC4\x04"
                            "\x83\xC4\x0C"
                            "\x8B\xE5"
                            "\x5D";
int main()
{
  ((void(*)(void))shellCode)();

//   __asm{
//         push ebp
//         mov  ebp, esp
// 
//         sub  esp, 0ch
//         
//         mov  [ebp-0bh], 6dh    ;m
//         mov  [ebp-0ah], 73h    ;s
//         mov  [ebp-09h], 76h    ;v
//         mov  [ebp-08h], 63h    ;c
//         mov  [ebp-07h], 72h    ;r
//         mov  [ebp-06h], 74h    ;t
//         mov  [ebp-05h], 2eh    ;.
//         mov  [ebp-04h], 64h    ;d
//         mov  [ebp-03h], 6ch    ;l
//         mov  [ebp-02h], 6ch    ;l
//         mov  [ebp-01h], 0h     ;\0
// 
//         lea  eax, [ebp-0bh]
//         push eax
//         mov  eax, 0x76794bc6   ;LoadLibraryA, _stdcall
//         call eax
//         ;pop  eax
// 
//         mov  [ebp-0ch], 73h    ;s
//         mov  [ebp-0bh], 74h    ;t
//         mov  [ebp-0ah], 61h    ;a
//         mov  [ebp-09h], 72h    ;r
//         mov  [ebp-08h], 74h    ;t
//         mov  [ebp-07h], 20h    ;
//         mov  [ebp-06h], 63h    ;c
//         mov  [ebp-05h], 6dh    ;m
//         mov  [ebp-04h], 64h    ;d
//         mov  [ebp-03h], 0      ;\0
//         mov  [ebp-02h], 0h     ;
//         ;mov  [ebp-01h], 0h     ;
// 
//         lea  eax, [ebp-0ch]
//         push eax
//         mov  eax, 0x7672b177   ;system()
//         call eax
// 
//         pop  eax
//         pop  eax
//         add  esp, 04h
//         add  esp, 0ch
//         
//         mov  esp, ebp
//         pop  ebp
//   }

  return 0;
}

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
2
我貌似也看过这篇文章,这种方式不是很方便,了解原理用这种方式可以...写兼容windows各版本系统通用的shellcode不太靠谱...,有其他方式
2014-2-28 21:20
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
刚入门,小学水平,自然通用是不可能的了,但总算是根据那篇语焉不详的文章弄出来这个,结果又卡在这里了!~
2014-2-28 22:29
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
4
用框架写通用的吧
2014-2-28 23:21
0
游客
登录 | 注册 方可回帖
返回
//