Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪些编译器开关使逆向工程的工作变得更困难/更容易? 让我们考虑VC++ 2013编译器。哪些编译器开关使逆向工程的工作变得更困难/更容易?编译器是否添加了任何元信息来帮助确定可执行文件的来源?_C++_Visual C++_Compilation - Fatal编程技术网

哪些编译器开关使逆向工程的工作变得更困难/更容易? 让我们考虑VC++ 2013编译器。哪些编译器开关使逆向工程的工作变得更困难/更容易?编译器是否添加了任何元信息来帮助确定可执行文件的来源?

哪些编译器开关使逆向工程的工作变得更困难/更容易? 让我们考虑VC++ 2013编译器。哪些编译器开关使逆向工程的工作变得更困难/更容易?编译器是否添加了任何元信息来帮助确定可执行文件的来源?,c++,visual-c++,compilation,C++,Visual C++,Compilation,不特定于Visual C++:任何增加代码转换概率的开关都会降低反向工程能力。最特别的是,这些都是优化开关(但请注意,对于g++,开关的-O-family实际上是许多其他开关的集合) 例如,如果你有 int foo() { return 3; } int main () { std::cout << (foo()*foo()) << '\n'; } intfoo(){ 返回3; } int main(){ std::cout文档如何?不要只依赖于开关。

不特定于Visual C++:任何增加代码转换概率的开关都会降低反向工程能力。最特别的是,这些都是优化开关(但请注意,对于g++,开关的
-O
-family实际上是许多其他开关的集合)

例如,如果你有

int foo() {
    return 3;
}

int main () {
    std::cout << (foo()*foo()) << '\n';
}
intfoo(){
返回3;
}
int main(){

std::cout文档如何?不要只依赖于开关。混淆器等。不提供程序的调试版本可能是一个好的开始。每个听起来像“剥离”“删除”“优化”的开关etcDon不提供.pdb。它们提供了大量有关程序的信息。重新生成可执行文件-您可以在.rc文件中添加版本属性。如果在可执行文件上使用dumpbin/all,您可以看到可用的信息。
int main () {
    std::cout << (3*3) << '\n';
}
int main () {
    std::cout << 9 << '\n';
}