이글은 컴파일된 프로그램(BinaryCode)만을 갖고 원래 소스를 만들어 낼 수 있는가에 대해서 토론 하는데 목적이 있습니다.


제 생각에는 거의 불가능 한 일이 아닌가 합니다. 일단 다음과 같은 코드를 Windows 2000에서 VC를 이용해서 컴파일 해봤습니다.

   1 #include <stdio.h>
   2 void main()
   3 {
   4  printf("hi");
   5 }

그리고 컴파일된 BinaryCode를 disassemble 했을 때 다음과 같은 정보를 얻을 수 있었습니다. Disassembler는 Win32 Program Disassembler를 사용했습니다. ( http://www.geocities.com/~sangcho/disasm.html )

Print_Release.txt

단편적인 예에 지나지 않지만 (윈도우 2000에서 콘솔 프로그램을 짰기 때문에 오히려 BinaryCode가 늘어났을 것입니다.) C로 몇줄의 코드를 짰을 뿐인데도 엄청난 양의 AssemblyCode가 생성됩니다. 즉 C 코드와 AssemblyCode가의 대응이 1:1 이 아니라 1:N의 관계를 갖고 있기 때문에 BinaryCode를 갖고 원래 소스를 유추하는 일은 힘이 들것입니다. [destine], 2003-05-16

WhyCannotWeUnderstandAWholeCode (last edited 2011-08-03 11:00:46 by localhost)

web biohackers.net