首页
社区
课程
招聘
[求助].data区段问题???
发表于: 2014-10-6 20:04 3949

[求助].data区段问题???

2014-10-6 20:04
3949
#include "stdafx.h"

unsigned char mycode[100]={0x90,0x90,0x90,0x90,0xc3};

int _tmain(int argc, _TCHAR* argv[])
{
  ((void (*)(void))&mycode[0])();
  return 0;
}
这个全局数组变量mycode是在.data区段里吧?
.data区段里没有可执行属性,怎么也是可执行的呢???

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (38)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
[QUOTE=wmhnq;1321724]unsigned char mycode[100]={0x90,0x90,0x90,0x90,0x3c};

((void (*)(void))&mycode[0])();
这个全局数组变量mycode是在.data区段里吧?
.data区段里没有可执行属性,怎么也是可执行的呢???[/QUOTE]

如果是局部变量的话,会被放到栈上
2014-10-6 20:16
0
雪    币: 120
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是全局数组,lordpe看了下变量mycode确实是在.data区段,.data区段里没有可执行属性,怎么也是可执行的呢???
2014-10-7 09:24
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
4
会不会是程序运行后修改了data段的内存保护属性?
2014-10-7 11:16
0
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
5
跟一下 看看,eip执行到shellcode的时候是不是在data段
感觉不会啊,是不是在栈中有一份拷贝

看了下eip确实在data段....
内存映射,项目 14
地址=00407000
大小=00004000 (16384.)
宿主=qweqweqw 00400000
区段=.data
类型=Imag 01001002
访问=R
初始访问=RWE

是可执行的,loadpe看确实是只是可读写,会不会是加载到内存的时候被赋予了可执行属性
2014-10-7 11:26
0
雪    币: 120
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
#include "stdafx.h"

unsigned char mycode[100]={0x90,0x90,0x90,0x90,0xc3};

int _tmain(int argc, _TCHAR* argv[])
{
        ((void (*)(void))&mycode[0])();
        return 0;
}
// 就是个简单代码,没有其他地方修改。lordpe看了下变量mycode确实是在.data区段,.data区段里没有可执行属性,怎么也是可执行的呢???
2014-10-7 11:43
0
游客
登录 | 注册 方可回帖
返回
//