2011-08-31 2 views
3

: .exe에 포함 된 정적으로 링크 된 함수를 가져 와서 다시 사용할 수 있습니까? 예를 들어

내가 myprogam.exe

를 만들기 위해 myprogram.libmyprogram.obj를 연결 한 말 myprogram.lib 경우에 포함 된 특수 기능의 모든 종류가 있고, 내가 실수로 삭제했다 (소스)를, 거기이다 나는 myprogram.exe을 파고 함수를 꺼낼 수 있습니까? 아니면 myprogram.exe.lib 파일로 변환하고 필요한 부분 만 참조하십시오.

답변

0

그래서 여기 있습니다. 실행 파일을 "디 컴파일"할 수 있습니다. 아프다. 그러나 당신이이 문제에 대해 원하는 모든 정보를 원한다면, this 좀 먼저 살펴보십시오.

0

대부분의 컴파일러는 사용되지 않는 기능을 제거하여 코드를 최적화합니다. 라이브러리의 모든 부분을 사용하거나 사용하지 않는 함수를 최적화하지 않도록 컴파일러를 설정하는 경우가 아니라면 lib 파일이 실행 파일 전체에 포함될 확률은별로 없습니다.

+0

감사합니다. 내가 필요로하는 기능이 프로그램에서 사용되었습니다. 하지만 솔루션은 여전히 ​​동일하게 유지 될 것 같습니까? – scruff

0

함수가 있습니다. exe가 암호화되지 않았거나 스트레이트 어셈블러 코드 (exepackers, 암호화, 동글)로 분해 될 수없는 경우 함수를 찾을 수 있습니다.

그러나 이름을 지정하고 정확한 경계와 기타 특수 효과가 없어 지므로이 기능을 더 이상 식별 할 수 없으므로 자동으로 수행하기가 어렵습니다.

즉, 이것은 어셈블러 마법사 또는 전문 리버스 엔지니어링 서비스 용입니다.

코드가 매우 유용하고 컴파일러가 비교적 일반적이라면 리버스 엔지니어링 서비스가 도움이됩니다. 그러나 막대한 가격에 대비하십시오. 심지어 그것이 얼마나 쉬울 지에 대한 분석조차도 비쌀 수도 있습니다. (*) 대부분의 상황에서

, 추출 (자신의 시간, 고용 중 하나)의 가격은 기능의 가치보다 큰, 그리고 그들에게

(*) RTTI 또는 내부를 다시 작성 저렴 디버그 정보로 쉽게 만들 수 있습니다.

관련 문제