2010-08-09 4 views

답변

2

일반적으로 아니오. 동적 라이브러리에서 사용할 수없는 헤더 파일 (구조체 레이아웃, 숫자 상수 등)에는 많은 정보가 있습니다.

"장식 된"C++ 함수 이름을 내보낼 경우 일부 함수 매개 변수 정보를 복구 할 수 있어야합니다. 그러나 유용한 헤더 파일을 재구성하기에 충분한 정보를 얻을 수는 없습니다.

라이브러리가 장식되지 않은 이름을 내 보낸 경우 (extern "C"), 운이별로 없습니다. 이 시점에서 함수 이름 만 알면됩니다.

1

리버스 엔지니어링이라고 불리는 그 자체로 쉬운 작업이 아니기 때문에 C++ 이름 맹 글링으로 인해 함수 이름과 매개 변수를 가져 오는 것이 쉽지만 라이브러리에서 사용하는 열거 형, 상수 및 #defines와 같은 다른 데이터를 복구하는 것은 이 데이터는 라이브러리 어셈블리에 포함되기 때문에 약간의 고통이 있습니다.

0

리버스 엔지니어링은 마티아스의 대답을 확장하기 위해 몇 가지 다른 지식 항목이 필요합니다. 우선 기본 조립은 필수입니다. 당신은하고있는 일의 복잡성에 따라 점점 더 많은 것을 배울 필요가있을 것이지만 적어도 언어의 기본을 이해해야합니다. 두 번째는 디버깅입니다. Windows에서 가장 눈에 띄는 것은 OllyDBG, Linux에서는 EDB 또는 Evan 's Debugger를 좋아할 수있는 다양한 도구가 있습니다. 마지막으로 IDA Pro (비싸지 만 믿을만한 무료 버전이 있습니다)와 같은 좋은 디스어셈블러가 필요합니다. 리버스 엔지니어링에 대해 배울 수있는 책과 온라인 리소스가 많이 있습니다. 행운을 빕니다!

관련 문제