exe 上的字符串命令透露了太多
Strings command on exe revealing too much
我在VC++ 2010 Express中创建了一个应用程序,我想看看搜索字符串会揭示我的可执行文件。正如预期的那样,我看到了很多字符串,但引起我注意的是,我看到了 VS 为每个项目生成的.pdb文件的确切位置。
C:Users...myappDebugmyapp.pdb
这真的让我感到困扰,因为我认为不应该透露这么多信息(例如我的用户名)。除此之外,我还看到了很多错误消息,例如
Stack memory around _alloca was corrupted
A local variable was used before it was initialized
Stack memory was corrupted
A cast to a smaller data type has caused a loss of data. If this was intentional, you should mask the source of the cast with the appropriate bitmask. For example:
char c = (i & 0xFF);
Changing the code in this way will not affect the quality of the resulting optimized code.
The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
Stack around the variable ' ' was corrupted.
The variable ' ' is being used without being initialized.
我真的不明白为什么它们会出现(我的程序工作正常,它们都不适用),但我想我可以忍受。我的问题是我如何避免出现这种数据(尤其是当我说 pdb 位置时)?我尝试在项目属性中查找某些内容,但没有成功。
> 您想要的第一个选项是/PDBALTPATH:%_PDB%
- 这将保留 PDB 名称但删除其路径。
错误消息是由默认选项/GS
和/RTC
引起的。不过,后者不是发布版本的默认版本。 /GS-
会关闭第一个,但这是一个安全风险。
相关文章:
- 在没有太多条件句的情况下,我如何避免被零除
- 错误:字符数组的初始值设定项太多
- 对象实例化调用构造函数的次数太多
- Levenshtein 两个文件的距离花费了太多时间
- 我有三个 getline,但是一旦编译,输入就太多了
- 将使用太多的纹理插值器 - 带旋转的着色器
- C/C++:socket() 创建在循环中失败,打开的文件太多
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- C++:数组<>初始值设定项太多
- GLib-ERROR:为GWakeup创建管道:打开的文件太多
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 我会导致太多内存泄漏,以至于我的计算机无响应吗?
- ZeroMq:打开的文件太多.在同一对象上连续增长的fd使用数
- 读取串行命令花费太多时间
- 为什么 Boost unordered_map 在第一次插入时需要太多时间?
- BRK(0) 花费的时间是否太多?
- Valgrind 声称内存释放中的自由空间太多
- 如果分支太多C++
- 压缩太多文件
- exe 上的字符串命令透露了太多