2010-07-30 2 views

답변

9

예, 가능합니다.

피할 수있는 방법이 없습니다. 난독 화는 약간 더 어렵게 만듭니다.

최악의 경우 누군가가 난독 화 코드를 이해하지 못하면 디버거에서 실행 파일을 실행하고 사용하기 직전에 메모리에서 암호를 읽을 수 있습니다.

물론 해결책은 중요한 암호를 바이너리에 하드 코딩하지 않는 것입니다.

+0

디버거에서 변수를 볼 수 있다면 어떻게 데이터베이스에 액세스하는 데 사용되는 암호를 누군가가 보호 할 수 있습니까? 분명히 이러한 암호는 데이터베이스에 가기 전에 메모리에 저장됩니까? – CJ7

+0

@Craig : 소프트웨어에서 암호를 묻고 어딘가에 저장할 수 있습니다. 또는 일반적인 웹 응용 프로그램의 경우 암호는 소프트웨어를 설치할 때 일부 구성 파일에 저장됩니다. 요점은 소프트웨어를 얻는 것만으로 데이터베이스에 액세스 할 수 없다는 것입니다. –

+0

@Craig Johnston : 높은 보안 응용 프로그램의 경우 높은 보안 컴퓨터가 필요합니다. 컴퓨터가 실제로 액세스 할 수있는 자격 증명은 컴퓨터가 실제로 손상된 경우 손상됩니다. 즉, 대부분의 사람들은 특정 사용자 만 읽을 수있는 구성 파일을 가지고 있고 사용자에 대해 가정 된 권한으로 바이너리를 실행하는 것으로 충분하다고 간주됩니다. – Borealid

1

예. 암호는 디버거에서 프로그램이 실행되는 것을 관찰하여 찾을 수 있습니다. 아무것도하지 않으면 바이너리 파일에서 텍스트를 검색하여 찾을 수도 있습니다.

수행 할 수있는 작업은 무엇입니까? 디버깅 할 때 실행 파일을 폭발시키는 난독 화 또는 변조 방지 메커니즘과 같은 안티 디버깅 기술이 있습니다. 난독 화는 아마도 구현하기 쉽습니다. 안티 - 조작이 어렵습니다.

+1

안티 - 탬퍼 링은 결코 100 % 효과적 일 수 없습니다. 공격자는 가상 컴퓨터에서 코드를 실행하고 암호를 하이퍼 바이저에 넣는 등의 조치를 취할 수 있습니다. 그 종류의 공격이 발생했는지를 알 수있는 코드가 없다. – Borealid

관련 문제