当前位置: 代码迷 >> 汇编语言 >> 为什么VS2010创建的C++应用程序dumpbin数据段后看不到数据?该怎么解决
  详细解决方案

为什么VS2010创建的C++应用程序dumpbin数据段后看不到数据?该怎么解决

热度:7384   发布时间:2013-02-26 00:00:00.0
为什么VS2010创建的C++应用程序dumpbin数据段后看不到数据?
最近在学习反汇编,用了一个很小的例子:
C/C++ code
#include <iostream>using namespace std;#define pwd "mypassword"void main(){    char userPwd[100];    cout<<"crackme1"<<endl<<"enter password:";    cin>>userPwd;    if(strcmp(pwd,userPwd))        cout<<"wrong password\n";    else        cout<<"password OK!\n";}

用VS2010命令行工具输入:dumpbin /SECTION:.data /RAWDATA test.exe >.data
生成的.data文件中没有代码里写的数据,用VC++6.0生成的程序却可以看到!
而且用VS2010生成的程序.data文件是4KB,而VC6的有80KB!
请高手解惑!

------解决方案--------------------------------------------------------
和编译设置有关,你在VC6里和VC10一样动态链接多线程版的CRT的话,这些字符串也在rdata里面。
VC6默认连的是单线程版的CRT,这个在VC2005里面去掉了。
  相关解决方案