2011-12-15 3 views
1

소스 파일에 암호가 저장되어있는 경우 문자열이나 objdump와 같은 프로그램이 easly 문자열과 암호를 읽을 수 있습니다. 내 questione 코드의 조각처럼 데이터를 저장에 관한 것입니다 :로컬 var의 난독 화는 어떻게 가능합니까?

to_send[77] = data[0]; 
to_send[27] = data[1]; 
to_send[4] = data[2]; 
to_send[777] = data[3]; 
데이터가 문자열 randomkey입니다

및 to_send 보낼 수있는 문자열입니다. C++에서 공격자가이 코드를 문자열처럼 쉽게 읽을 수 있습니까? 또는 더 어렵습니다?

+2

은 당신이 잘 알고있는 dictum [ "무명의 보안"] (http://en.wikipedia.org/wiki/Security_through_obscurity)과 그 의미? – moooeeeep

+0

암호 해시를 하드 코딩 할 수 있습니까? –

답변

1

리버스 엔지니어링을 더욱 어렵게 만들고 싶다면 DES3 코드 또는 유사한 접근 방식을 사용해야합니다. 어떤 종류의 하드 코딩 된 데이터라도 그런 식으로 "스크램블"될 수 있습니다. 물론 키가 하드 코딩되기 때문에 금이 갈 수 있습니다. 그러나, 방탄 솔루션은 없습니다. 일단 메모리에 암호 해독 된 데이터가 생기게되면 크래킹 복잡성 수준까지 재생할 수 있습니다.

+0

그리고 objdump를 사용하는 것과 같은 명령이 예를 들어 to_send [x]를 읽는 것입니까? – user1056635

+1

@ user1056635 Olly, WinDbg 및 IDA Pro와 같은 디버거가 이러한 용도로 사용됩니다. – moose

-1

당신은, resouces에 암호를 저장할 MD5 (access_password)를 저장하지 않음이

1) MD5

을하는 몇 가지 방법이있다.
사용자는 암호 테스트를 입력하면 경우 MD5(entered_password) == MD5(access_password)

프로 : 누군가가 당신의 코드를 반전하고 MD5를 찾을 경우에도, 그 값을 반전하기 어렵다 및

(사용되는 암호가 사전에 나오는 단어가 아닌 경우) 암호 지느러미

2)

char pass[] = {'p','a','s',s'};

이 어떻게 든 당신이 시도 버전과 leated 비 확보하지만, 간단한 방법. 패스가 암호를 저장하려면 암호를 사용)하여 EXE

3 메모리의 소형 블록으로 저장되지 않기 때문에
그것은 빠르고 간단합니다, 비밀번호는 ResHacker으로 찾을 수 없습니다

+0

나는 또한 의견을 수락 :) – cprogrammer

관련 문제