실행 파일 (예 : 연재물 검사, 시험 날짜 확인 등)에서 보안을 처리하기위한 클래스를 작성하고 있습니다. 실행 파일을 컴파일 한 후에 (모든 디버그 및 RTTI 생성을 해제 한 릴리즈 빌드에서도) 메모장에서 열어 원시 데이터의 메서드 이름을 검색하면 클래스를 어셈블하는 메서드의 이름을 모두 볼 수 있습니다. . 코드베이스의 어떤 클래스에도 게시 된 멤버가 없습니다.델파이 : 실행 파일에 메서드 이름이 나타나지 않도록합니다.
이것은 보호에 좋지 않습니다. 델파이에게 메소드 이름을 실행 파일에 저장하지 말라고 말하는 방법이 있습니까? RTTI가 필요없고 COM 폭발이 없으면 왜 그것들을 저장하고 있습니까? 어떤 컴파일러 옵션이 이것을 제어합니까?
대상 실행 파일에있는 ANY 클래스의 ANY 메서드가 실행 파일 내에 텍스트 형식으로 저장되어있을 수 있습니다. 분명히이가 확장 된 RTTI에 의해 발생 델파이로 모든 클래스에 대해 기본적으로 설정되는 2010 년
@FractalizeR - 잘못된 방향으로 가져 가지 마십시오. 그러나 당신이 난독 화에 당신의 보안의 일부를 기반으로한다면, 당신은 잘못된 접근법을 취하고 있습니다. 나는 보안에 대해서는 거의 아무것도 안다. 자신 만의 '깨지지 않는'계획을 세우십시오. 애플리케이션의 보안 측면을 처리하기 위해 상용 또는 오픈 소스 솔루션을 검색하는 것이 좋습니다. –
어떤 기호 (예 : 프로 시저 및 함수 이름)가 EXE에 남아 있는지 보려면 Ida (대화 형 디스어셈블러)에서 exe를로드하는 것이 좋습니다. http://www.hex-rays.com/idapro/평가판 및 프리웨어 버전을 사용할 수 있습니다. – Remko
@Lieven 나는 내 exe를 통해 Themida 보호자를 사용할 계획이지만이 경우에도 보호를 강화하기 위해 exe에서 모든 과도한 정보를 제거해야합니다. –