2009-08-13 3 views
1

현재 공유 라이브러리를 만들 때 동일한 객체 파일 내의 함수가 함께 거짓말을합니다. 함수 위치를 분리하여 퍼뜨리는 데 좋은 소스 파일을 포함하지 않는 좋은 해결책이 있습니까? 우리는 현재 gcc 및 gnu 도구의 4.2.1 버전을 크로스 컴파일 된 것으로 사용하고 있습니다.공유 라이브러리의 무작위 화 기능 등 위치

+0

왜이 작업을 수행 하시겠습니까? – Nate

+0

끔찍한만큼 안전합니다. 라이센싱 문제 등. 나는 서로의 바로 옆에있는 함수 A, B, C가 모두 관련된다는 점에서 공격자를 단서 짓지는 않을 것입니다. 아시다시피, 그것은 끔찍한 이유이며, 실제로 많이하지는 않지만, 조금이라도 도움이 될 수 있습니다. – vol

답변

0

GNU-ld 링커 스크립트를 사용하여 원하는대로 할 수 있지만 (GNU ld가 작동하는 플랫폼에있는 경우) 이식 할 수 없습니다.

또한, 완전히 쓸데없는 노력입니다. 소금을 소중하게 여기는 해커는 함수를 움직이는 데 신경을 쓰지 않을 것입니다. 코드를 리버스 엔지니어하는 데 (또는 라이센스 스키마를 무시하기 만하면) er을 열심히 만들고 싶다면 예를 들어 훨씬 더 강력한 기술을 사용해야합니다. here.

Arguably, 여전히 많은 노력이 필요합니다.

+0

감사합니다. 나는 크래커들과 싸우는 것이지는 싸움이라는 주장을 이해합니다. 즉,이를위한 추진 중 일부는 관리 중심이며 개발자가 주도하지는 않습니다. – vol