这通常被描述为"将汉堡包变回奶牛".
反编译器将生成在功能上等同于原始代码的C源代码,但它不具有任何原始符号名称,并且可能不是相同的结构.它可能甚至不是非常"可读".
您无法从已编译的程序中恢复原始源.
您无法从已编译的二进制文件中获取原始C源代码 - 在C中有许多方法可以生成相同的最终结果,因此没有唯一的源.
该过程称为反编译
如果我误解了你的问题,你想知道如何查看编译器从C代码生成的汇编程序,那么这取决于特定的编译器,但他们都可以这样做.请参阅如何查看由gcc(任何风格)编译器为C/C++程序生成的汇编代码?
使用ollydbg并在disassebly中找到你的代码:)
例如编译的代码
int main()
{
system("PAUSE");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在disassebly的所有行中很难找到但是如果你填充它你会发现它更容易例如...编译这段代码
int main()
{
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
//mycode
system("PAUSE");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在在反汇编中,我将能够看到"nops"的行,并且在它们之间是我的二进制形式的代码
CPU Disasm
Address Hex dump Command Comments
004013F8 |. 90 NOP
004013F9 |. 90 NOP
004013FA |. 90 NOP
004013FB |. 90 NOP
004013FC |. 90 NOP
004013FD |. 90 NOP
004013FE |. 90 NOP
004013FF |. 90 NOP
00401400 |. 90 NOP
00401401 |. 90 NOP
00401402 |. 90 NOP
00401403 |. 90 NOP
00401404 |. 90 NOP
00401405 |. 90 NOP
00401406 |. 90 NOP
00401407 |. 90 NOP
00401408 |. 90 NOP
00401409 |. 90 NOP
0040140A |. 90 NOP
0040140B |. 90 NOP
0040140C |. C70424 004044 MOV DWORD PTR SS:[LOCAL.6],OFFSET 004440
00401413 |. E8 D8500100 CALL <JMP.&msvcrt.system>
00401418 |. 90 NOP
00401419 |. 90 NOP
0040141A |. 90 NOP
0040141B |. 90 NOP
0040141C |. 90 NOP
0040141D |. 90 NOP
0040141E |. 90 NOP
0040141F |. 90 NOP
00401420 |. 90 NOP
00401421 |. 90 NOP
00401422 |. 90 NOP
00401423 |. 90 NOP
00401424 |. 90 NOP
00401425 |. 90 NOP
00401426 |. 90 NOP
00401427 |. 90 NOP
00401428 |. 90 NOP
00401429 |. 90 NOP
0040142A |. 90 NOP
0040142B |. 90 NOP
Run Code Online (Sandbox Code Playgroud)
所以你可以看到我的系统调用被编译成了
C70424004044E8D8500100
Run Code Online (Sandbox Code Playgroud)
我希望这就是你的意思:)