문제

누군가가 방금 프로그램의 디 컴파일을 C로 보냈습니다. 매우 좋은 디 컴파일이었고, 주로 readabe c 코드를 생산했습니다 (변수 나 함수 중 어느 것도 사람이 읽을 수있는 이름을 가지고 있지 않다는 사실을 간과하는 경우). 실제로 컴파일 할 것입니다.

그래도 한 가지 큰 문제가있었습니다. 나는 그가 소집하고있는 프로그램이 Delphi로 작성되었다는 것을 알고 있습니다. 이것은 C로 번역하기 어려운 개념으로 가득 차 있습니다. 그러나 나는 디 컴파일러의 출력에 깊은 인상을 받았으며, 그것은 궁금해했습니다. 델파이를 위해 그렇게 할 수있는 일이 있습니까?

내가 델파이에서 본 최고의 디 컴파일 도구는 Dede입니다. 그것은 많은 일을 할 수 있지만, 객체 파스칼 코드를 출력으로 생성하려고 시도조차하지 않으며 델파이 6 이후로 업데이트되지 않았습니다. 더 좋은 것이 있습니까?

도움이 되었습니까?

해결책

파스칼 코드를 생성하는 기계 코드 디 컴파일러가 있다고 생각하지 않습니다. 대부분의 "Delphi Decompilers"양식 및 RTTI 데이터를 구문 분석하지만 실제로 기계 코드를 디 컴파일하지는 않습니다. Dede (또는 비슷한 소프트웨어)) C 디 컴파일러와 함께 기호 정보를 추출한 다음, 컴파일 된 C 코드를 Delphi로 변환합니다 (많은 소스 코드 변환기가 있습니다).

다른 팁

당신이 사용할 수있는 IDR Delphi를 디 컴파일하는 훌륭한 프로그램이며 현재 Delphi 버전으로 업데이트되며 많은 기능이 있습니다.

다음은 목록입니다. http://delphi.about.com/od/devutilities/a/decompiling_3.htm (그리고이 페이지는 몇 가지 더 언급합니다. http://www.program-transformation.org/transform/delphidecompilers )

나는 때때로 Dede를 사용했지만 실제로는 강력한 전부는 아니며 현재 Delphi 버전으로 최신 정보가 아닙니다 (최신 버전이 지원하는 최신 버전은 Delphi 7입니다).

Delphi, C 및 C ++와 같은 언어는 프로세서 네이티브 머신 코드에 컴파일하며 출력 실행 파일에는 메타 데이터가 거의 없거나 전혀 없습니다. 이는 객체 지향 플랫폼 독립적 인 바이트 코드로 컴파일하는 Java 또는 .NET와 대조적으로 메소드, 메소드 매개 변수, 클래스 및 네임 스페이스 및 기타 메타 데이터의 이름을 유지합니다.

따라서 Delphi 또는 C 코드에서 수행 할 수있는 유용한 디 컴파일이 훨씬 적습니다. 그러나 Delphi는 일반적으로 프로젝트의 모든 양식에 대한 양식 데이터 ($ r *.dfm 라인에 의해 생성 됨)에 포함되어 있으며 게시 된 모든 속성에 대한 메타 데이터가 있으므로 Delphi 특정 도구 가이 정보를 추출 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top