2013-04-08 2 views
-2

누구나 간단한 Intel 어셈블리 언어를보고 C 코드로 변환하는 방법에 대한 전문적인 힌트가 있는지 궁금합니다. 어떤 도움이라도 좋을 것입니다. 감사!Intel 어셈블리 언어의 C 코드를 수동으로 작성 하시겠습니까?

+2

reverseengineering.stackexchange.com 공개입니다.이 질문은 해당 네트워크에 더 적합합니다. 여전히 베타 버전입니다. –

+0

최근 업데이트 된 [Decompiling wiki entry] (http://stackoverflow.com/tags/decompiling/info)를 참조하십시오. Isnt '이 질문은 중복! 여러 번 표현 된 개념을 보았 기 때문에이 항목을 작성했습니다. –

+0

가능한 중복 : [오픈 소스 decompiler (http://stackoverflow.com/questions/711220/opensource-cc-decompiler), [좋은 decompiler 무엇입니까] (http://stackoverflow.com/questions/193896/whats) -a-good-c-decompiler), [거기에 AC 디 컴파일러가있다] (http://stackoverflow.com/questions/205059/is-there-ac-decompiler) –

답변

3

시도한 디 컴파일러는 Google에서 쉽게 찾을 수 있지만 결과는 다양하며 대부분 컴파일러가 원래 컴파일러에서 만든 최적화에 대해 눈이 멀었 기 때문에 결과가 다소 다르고 일관성이 없습니다. 일반적으로 유틸리티 라이브러리의 축소 버전 만 보는 것은 원래 포함 경로를 찾는 것을 거의 불가능하게 만듭니다.

또한 디 컴파일러는 대부분의 소스 언어와 마찬가지로 C에서 주어진 함수를 작성하는 데 약 백만 가지 방법이 있다는 것을 보여줍니다. 간단히 말해, x86과 원본 간의 1-1 변환은 거의 불가능합니다.

가장 좋은 방법은 x86을 읽는 것뿐입니다. 결국 특정 코드 세그먼트 (switch 문, if-else 블록, while 루프 등)에 대한 패턴을 알아 채기 시작할 것이고, 주어진 청크의 목적에 대한 기본 아이디어를 생각해 볼 수 있습니다.

+1

나는 이것을 jus와 함께해야한다고 덧붙이고 싶다. 이전 ARM 어셈블러 소스. 나는 과정을 위해 더 잘 끝내었다! –