문제

C ++ 소스 코드를 잃어버린 프로그램이 있습니다. 좋은 C ++ 디 컴파일러가 있습니까?

나는 이미 가로 질러 달렸다 부메랑.

도움이 되었습니까?

해결책

당신이 사용할 수있는 아이다 프로 ~에 의해 16 진전. 디버깅 정보를 컴파일하지 않으면 일반적으로 바이너리에서 좋은 C ++가 얻지 못합니다. a 많은 코드를 뒤집는 수동 노동.

바이너리를 벗기지 않았다면 Ida Pro가 당신과 함께 일할 수있는 c- 유사 코드를 생산할 수 있기 때문에 희망이 있습니다. 하지만 적어도 몇 년 전에 사용했을 때는 일반적으로 매우 거칠다.

다른 팁

컴파일 프로세스에서 정보가 폐기됩니다. 디 컴파일러가 클래스 및 모든 것을 사용하여 논리적 동등한 코드를 생성 할 수 있더라도 (아마도 할 수 없음) 자체 문서화 부분은 최적화 된 릴리스 코드로 사라졌습니다. 변수 이름, 일상적인 이름, 클래스 이름이 없음 - 주소 만 주소.

그렇습니다. 그러나 그들 중 누구도 노력할 가치가있는 충분한 코드를 작성할 수 없습니다. 기존 앱을 처음부터 다시 작성하는 것보다 어셈블러 블록 내부에서 디 컴파일 된 소스를 읽는 데 더 많은 시간을 할애합니다.

C ++ 코드를 생성하는 디 컴파일러를 보지 못했습니다. 나는 C 코드를 생성하는 데 합리적인 시도를하는 몇 가지 실험적인 것을 보았지만 특정 컴파일러의 코드 생성 패턴과 일치하는 데 의존하는 경향이있었습니다 (변경되었을 수도 있습니다. 마지막으로 조사한 이후로 잠시가되었습니다. ). 물론 모든 상징적 정보가 사라질 것입니다. "디 컴파일러"를위한 Google.

원래 코드가 얼마나 크고 잘 작성되었는지에 따라, 좋아하는 언어 (여전히 C ++ 일 수 있음)에서 다시 시작하고 마지막 버전에서 발생한 실수로부터 학습 할 가치가있을 수 있습니다. 누군가가 버리기 위해 하나를 쓰는 것에 대해 한 번 말하지 않았습니까?

NB 분명히 이것이 거대한 제품이라면 시간이 가치가 없을 수도 있습니다.

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