우수 답변
이것은 매우 광범위한 질문입니다. 관심있는 제품 유형에 따라 다릅니다.
다음은 제가 참여한 리버스 엔지니어링의 몇 가지 예입니다.
How is reverse engineering에 대한 Michael Durcan의 답변 스퍼 기어의 완성?
휴대용 CMM 및 레이저 스캐닝과 같은 최신 리버스 엔지니어링 기술은 어떻게 작동합니까?에 대한 Michael Durcan의 대답
How can I에 대한 Michael Durcan의 대답 리버스 엔지니어링을 배우십니까?
답변
나는 단지 당신이 컴퓨터 과학과 저수준 프로그래밍의 전문가가 아니라고 가정 할 것입니다. 그래서 대답은 예, 매우 어렵습니다.
프로그래밍 언어에는 두 가지 “레벨”이 있습니다. 높고 낮은. 고급 프로그래밍 언어는 일반적으로 사용하고 배우기가 매우 쉽습니다. 그것들은 사람이 읽을 수 있고 실행하기 위해 기계에 의해 “번역”되어야합니다. 고급 프로그래밍 언어의 예로는 Javascript, R, Python, Java 등이 있습니다.
저수준 프로그래밍 언어는 배우기가 더 어렵습니다. 그들은 컴퓨터 메모리와 프로세스가 어떻게 작동하는지 더 많이 이해해야합니다. 다소 낮은 수준의 언어의 가장 유명하고 가장 유명한 예는 C입니다. C는 매우 강력하고 배우기 어렵습니다. 그러나 높은 수준의 프로그래밍 언어보다 기계가 이해할 수있는 방법에 가깝습니다. 매우 낮은 수준의 프로그래밍 언어는 Assembly입니다. 어셈블리 코드는 여러 유형으로 존재하지만 모두 복잡하고 성가 시며 읽기가 매우 어렵습니다. 어셈블리 코드는 리버스 엔지니어링의 주요 부분입니다. 리버스 엔지니어링하는 경우 프로그램의 어셈블리 코드를보고 변경합니다.
Assembly는 기본적으로 모국어라는 것을 이해해야합니다. 프로그램을 작성하면 항상 어셈블리 코드가 있습니다. 컴파일러가 코드를 Assembly로 변환하거나 인터프리터가 실시간으로 수행합니다.
이 모든 것이 기본적으로 의미하는 것은 진정한 프로 리버스 엔지니어가되는 것이 쉽다는 것입니다. 당신이 정말로해야 할 일은 서로 다른 유형의 어셈블리에 능통 해지고 C로 프로그래밍하는 방법을 배우는 것뿐입니다. 유일한 문제는이 두 가지를하기 어렵다는 것입니다.
행운을 빕니다!