2011-12-15 9 views
1

パスワードがソースファイルに格納されている場合、stringsやobjdumpのようなプログラムは簡単に文字列を読み取ることができ、パスワードも読み取ることができます。ローカルvarを難読化する方法はありますか?

to_send[77] = data[0]; 
to_send[27] = data[1]; 
to_send[4] = data[2]; 
to_send[777] = data[3]; 

データは、文字列randomkeyとto_sendを送信するための文字列です: 私questioneは、コードのこの部分のようなデータを格納するについてです。 C++では、攻撃者がeaslyこの文字列のようなコードをデバッグすることは可能でしょうか? それとももっと難しいですか?

+2

パスワードを保存するために暗号を使用して)パスが

3あなたのexeファイルにメモリのコンパクトなブロックとして保存されることはありませんので、あなたのパスワードがResHackerで検出されません、迅速かつ簡単です、あなたは精通していますdictum ["セキュリティを曖昧にする"](http://en.wikipedia.org/wiki/Security_through_obscurity)とその意味は? – moooeeeep

+0

パスワードハッシュをハードコードすることは可能ですか? –

答えて

1

リバースエンジニアリングをより困難にしたい場合は、DES3の暗号化、または同様のアプローチを使用する必要があります。あらゆる種類のハードコードされたデータは、そのように「スクランブル」することができます。もちろん、キーもハードコーディングされているので、クラックすることがあります。しかし、弾丸校正のソリューションはありません。生の暗号解読されたデータがメモリに保存されるため、クラッキングの複雑さのレベルでプレイすることができます。

+0

そして、to_send [x]などを読むために、objdumpのようなコマンドは何ですか? – 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。
それは

+0

私もコメントを受け入れる:) – cprogrammer

関連する問題