我编写了这个小型 C++ 程序并构建了它(发布)
#include<iostream>
int main(){
std::cout<<"Hello World";
return 0;
}
当我反汇编它时,它有很多额外的代码(安全cookie等..)。我相信 Visual Studio 正在添加所有这些。如何在没有任何额外信息的情况下编译该程序,以便轻松理解其反汇编代码?
我知道汇编相对更难,但我的意思是从 hello world c++ 程序中获取 hello world asm 代码。这可能吗?
最佳答案
您将从一个巨大的代码库开始 <iostream>
。您可能想要做的是完全避免使用运行时库。尝试这样的事情:
#include <windows.h>
int main() {
HANDLE stdout = GetStdHandle(STD_OUTPUT_HANDLE);
WriteFile(stdout, "Hello world\n", 12, NULL, NULL);
return 0;
}
在打开程序集列表的情况下进行编译,这应该会为您提供一些“原始”Win32 代码。
关于c++ - 反汇编简单的Hello World程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882267/