首页
社区
课程
招聘
为什么在debug中的数据段找不到定义的数组字符?
发表于: 2010-1-17 22:07 4324

为什么在debug中的数据段找不到定义的数组字符?

2010-1-17 22:07
4324
将下面代码编译成.exe文件,然后在debug中加载,但是在数据段中找不到定义的字符数组?
char a[6]="BaSiC";
char b[6]="MinIX";
int main(int argc, char *argv[])
{
return 0;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 546
活跃值: (1616)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
因为你的程序根本就没有对
char a[6]="BaSiC";
char b[6]="MinIX";

进行访问,所以编译器在编译的时候发现你没有用到它们,就把没有用的东西给删掉了。不编译,从而来优化程序。

-----------------------------------------------------
char a[6]="BaSiC";
char b[6]="MinIX";
int main(int argc, char *argv[])
{

char  *p;
p=a;
return 0;
}
-----------------------------------------------------

如果你这么写,你就会在数据段发现 a的内容, 但是你找不到b的内容。
2010-1-17 22:23
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
按照您的说法,我测试,我的机器ds=13E3
但是还是没有找到a的内容?
2010-1-17 22:31
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没有找到,界面:
上传的附件:
2010-1-17 22:37
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
哈哈,debug不能调试windows程序
2010-1-17 22:39
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
你用winhex编辑吧
2010-1-17 22:40
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
用winhex打开搜索一下,就能找到了
2010-1-17 22:40
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
debug中不能在数据段找到定义的数据吗???
2010-1-17 22:45
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我最近看王爽的书,masm编译源代码之后,然后在debug中都可以找到数据段中定义的数据,
难道c语言编译的.exe在debug中就不行?
2010-1-17 22:47
0
雪    币: 546
活跃值: (1616)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
10
楼主写好程序,用Ollydbg载入,用查找字符串插件观察,一目了然。
2010-1-17 22:49
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
好的。我试一试。
ps:难道windows下的debug真就不能查找出c源程序编译后的字符吗?
2010-1-17 22:51
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
12
现在没有什么工具能直接查到c源程序,至少我没有见过,最好用OD反汇编  然后自己逆向出源程序 呵呵
2010-1-18 08:54
0
游客
登录 | 注册 方可回帖
返回
//