2010-12-04 12 views
1

나는 원래의 C 코드로 다시 변환하고자하는 PPC 코드가 있는데, 이것을 수행하는 방법이 있습니까? 아마도 사람 (예 : PPC를 알고 C 코드를 재구성하는 사람)이나 프로그램입니까?PPC 어셈블리를 C로 변환 할 수 있습니까?

+0

PowerPC에서와 마찬가지로 PPC? – ruslik

+0

예, PowerPC 어셈블리. – user330416

+5

기계 코드로 컴파일하는 것이 손실이 많은 프로세스이기 때문에 * 원본 * C를 얻을 수 없습니다. 1 : 1 대응은 없습니다. Power의 디스어셈블러/디 컴파일러는 내 전문 기술 밖에 있습니다. – SingleNegationElimination

답변

0

Boomerang은 PPC 디 컴파일을 지원합니다.

+0

IDA는 해체를 지원합니다. C 코드로 디 컴파일하는 것은 먼 길입니다. – ruslik

+0

아, 알았어요. 그때 그 주장을 삭제합니다. –

+0

부메랑은 꽤 멋져 보입니다.소스 코드 복구에 대한 기사는 가치가 있습니다. – RBerteig

1

예 아니요.

원칙적으로 모든 언어의 프로그램을 다른 언어로 번역 할 수 있습니다. 결과는 예쁘지 않을 것이다.

현존하는 코드가 실제로 너무 영리한 최적화가없는 컴파일의 결과라면, 공정한 프로세스 프로세스로 다시 C로 되돌릴 수 있습니다. 이것은 소량의 코드에 대해 직접 손쉽게 할 수 있습니다 ,하지만 지루하고 오류가 발생하기 쉬운 대규모 코드베이스.

야생에서 역 컴파일에 대한 소유권을 주장하는 일부 역 엔지니어링 도구가 있습니다. 일반적인 경우에는 쉬운 문제는 아닙니다.

이 문제를 자동화하는 한 가지 방법은 이미 C 언어 백 엔드를 지원하는 컴파일러 용 PPC 어셈블리 (또는 바이너리) 프런트 엔드를 만드는 것입니다. 그 결과 PPC 코드를 읽고 매우 모호한 C 코드를 생성하는 크로스 컴파일러가 생성됩니다. 예를 들어, GCC의 C 백엔드가 있다는 것을 알고 있습니다.

당신이 취하는 접근 방식에 관계없이, 번역본이 동등하다는 것을 증명할 수있는 수단을 갖기 위해 기존 바이너리에 대해 좋은 테스트 슈트 (그리고 그것을 실행할 수있는 능력)를 갖는 것이 중요합니다.

편집 : 당신이 원래의 의견을 얻을하지 않습니다, 단지 심볼 테이블 또는 유사한 디버그 정보로 만들어 원래의 변수와 함수 이름에 액세스 할 수 있습니다 참고.

+0

내가 뭘 하려는지는 원래 실행 파일에 저장된 암호화 키를 복구하려고 시도하는 것입니다. IDA를 사용하여 나는 그것을 PPC로 가져 왔고 PPC에는 직접 암호를 해독하는 기능이 있으며 암호화 키를 저장한다고 가정합니다. 그게 말이된다면. – user330416

+0

@user : 당신은 단지 그것을 위해 전체 실행 파일을 "C로 디 컴파일"할 필요가 없습니다. 질문을 업데이트하십시오. – ruslik

+0

그러면 큰 도전에 직면 해 있습니다. 그게 내 코드 였어. 열쇠를 쉽게 공개하는 것을 피하기 위해 내가 찾거나 발명 할 수있는 모든 트릭을 사용하여 손으로 함수를 작성했다. 디 컴파일하기가 쉽지 않습니다. 가장 좋은 방법은 작동중인 시뮬레이션을 수행하고 라이브 코드를 단계별로 실행 한 결과 키 값을 추론하는 것입니다. – RBerteig

0

아니요. 디 컴파일은 c를 다시 얻는 것과 같지 않습니다. 결코 다시는 돌아올 수 없습니다. 리버스 엔지니어링을 시도해보고 무엇을하는지 이해하려고 시도하지만 일부 정보는 영구적으로 손실됩니다.

이 부메랑 프로젝트입니다 :

그러나, 일반적인 디 컴파일러는, 디 컴파일러의 모든 행동을 반대하지 않는 결과가 높은 수준의 소스 코드가 될 때까지 오히려 반복 입력 프로그램을 변환합니다. 따라서 은 원본 소스 파일을 다시 만들지 않습니다. 아마 그것 같이 아무것도.

는 그래서 될 수있다 (그러나 결코 알지 못할 것이다) 몇 가지 C 코드를 C 소스를 만듭니다.

+0

물론 많은 경우에 충분합니다. 예를 들어 레거시 바이너리를 새 플랫폼으로 이동하는 데 사용할 수 있습니다. 레거시 플랫폼의 시뮬레이터가 더 나은 선택 일 수도 있지만 .... – RBerteig

1

IDA Pro 6.95에는 PPC decompiler가 포함됩니다. 하지만 조금 비싸다 ($ 2350)

관련 문제