2013-03-04 4 views
1

저는 현재 gcc 4.4.6을 사용하여 C++ 프로그램을 컴파일하고 있습니다. Valgrind에서 코드를 실행하여 함수 선언을 컴파일 된 코드 (O2 플래그 포함)에 표시 할 수 있습니다. 이는 프로그램이 디버거에서 실행 됨으로써 쉽게 리버스 엔지니어링 될 수 있음을 의미합니다.C++에서 메서드 선언을 숨기려면 어떻게해야합니까?

쉽게 숨길 수 있습니까? 결정을 내린 사람을 막을 수는 없다는 것을 이해합니다. 사람들이 5 분 내에 리버스 엔지니어링을하지 못하게하려고합니다.

+3

누구나 리버스 엔지니어링 할 수 있습니다. – Joe

+1

'strip '를 실행하여 컴파일 된 기호를 제거하고 변경 사항이 있는지 확인하십시오. –

+0

Pedantic : C++에는 "방법"개념이 없습니다. –

답변

4
  1. man strip-GNU Binutils

  2. gcc가 옵션 -fvisibility=hidden을 가지고, 그것은 수출을 제외한 아무것도 심볼을 생성하지 않는 것.

  3. -O3을 사용하십시오. 그러나주의하십시오.

관련 문제