델파이 디컴파일
섹션 1 리버스 엔지니어링에 대하여
디컴파일? 뒤집다? 해독하시겠습니까? (디컴파일? 리버스? 크래킹?)
간단히 말해서 디컴파일은 컴파일 프로세스를 거꾸로 하는 것입니다. 실행 파일을 더 높은 수준의 언어로 번역하는 것입니다. Delphi 프로젝트의 소스 프로그램을 잃어버렸고 실행 파일만 있는 경우: 소스 프로그램을 더 이상 사용할 수 없는 경우 리버스 엔지니어링(디컴파일)이 유용합니다.
네, "소스 프로그램을 사용할 수 없습니다"라는 말은 다른 프로그래머가 개발한 델파이 프로젝트를 디컴파일할 수 있다는 뜻인가요? 뭐, 맞든 틀리든...
진정한 디컴파일이 가능합니까? (진정한 디컴파일이 가능한가요?)
아니요, 물론 그렇지 않습니다. 완전 자동화된 디컴파일은 불가능합니다. 어떤 디컴파일러도 원본 코드를 올바르게 재구성할 수 없습니다.
델파이 프로젝트를 컴파일하고 링크하여 독립형 실행 파일을 생성하면 프로그램에 사용되는 대부분의 이름이 주소로 변환됩니다. 이름이 손실된다는 것은 디컴파일러가 모든 상수, 변수, 함수 및 프로시저에 대해 고유한 이름을 만들어야 함을 의미합니다. 디컴파일이 어느 정도 성공하더라도 결과 "소스 코드"에는 여전히 변수 및 함수 이름의 원래 의미가 부족합니다.
원래 프로그래밍 언어의 구문이 실행 파일에 더 이상 존재하지 않는다는 것은 분명합니다. 따라서 디컴파일러가 실행 파일의 연속된 기계어 명령어를 번역하여 원래의 언어 명령어를 판별하는 것은 매우 어렵습니다.
왜 그리고 언제 사용해야 하는가.
리버스 엔지니어링은 여러 가지 이유로 사용됩니다.
이것이 합법적인가요? (이게 합법인가요?)
리버스 엔지니어링은 암호 해독이 아니지만 둘 사이에 명확한 선을 긋는 것은 어렵습니다. 컴퓨터 프로그램은 저작권 및 상표법에 의해 보호됩니다. 국가마다 저작권 소유자의 권리에 대한 해석이 다릅니다. 가장 일반적인 설명은 다음과 같은 상황에서는 디컴파일이 괜찮다는 것입니다.
더 나은 설명을 위해 인터페이스 설명을 더 이상 사용할 수 없습니다. 오류 수정을 위해 저작권 소유자가 수정을 할 수 없는 경우, 프로그램의 일부가 보호되는지 여부를 판단하기 위한 경우. 물론 특정 프로그램의 실행 파일을 분해하는 것이 허용되는지 확실하지 않은 경우에는 주의하거나 변호사에게 문의해야 합니다.
참고: Delphi, 키 생성기 또는 일련 번호를 해킹하는 방법을 찾고 있다면 잘못된 위치를 찾고 있는 것입니다. 여기에 작성하거나 발표하는 모든 내용은 연구 및 교육 목적으로만 사용하시기 바랍니다.