2011-12-15 58 views
1

如果密碼存儲在源文件中,程序(如字符串或objdump)可以輕鬆讀取字符串和密碼。 我questione是關於存儲這樣的一段代碼數據:怎麼可能混淆本地var?

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

如果數據是一個字符串隨機key和to_send是發送字符串。 在C++中,攻擊者是否可以輕鬆讀取調試代碼,如字符串? 還是比較難?

+2

你熟悉的dictum [「默默無聞的安全」](http://en.wikipedia.org/wiki/Security_through_obscurity)及其含義? – moooeeeep 2011-12-15 09:00:02

+0

是否可以對密碼哈希進行硬編碼? – 2011-12-15 09:00:32

回答

1

如果您想使逆向工程更加困難,您應該使用DES3咒語或類似的方法。任何類型的硬編碼數據都可以通過這種方式「加密」。當然,由於密鑰也會被硬編碼,因此可能會被破解。但是,沒有防彈解決方案。你可以玩破解複雜程度的級別,因爲一旦你將內存中的原始解密數據。

+0

什麼是命令,如使用objdump來讀取例如to_send [x]? – user1056635 2011-12-15 09:00:40

-1

你必須這樣做

1)被Md5

的幾種方法不要保存在resouces密碼,節省了MD5(access_password)。
當用戶輸入密碼測試,如果MD5(entered_password) == MD5(access_password)

親:即使有人扭轉你的代碼,並找到你的MD5,很難扭轉這種價值和散熱片的密碼(如果使用的密碼不是詞典單詞)

2)非安全而簡單的方式

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

這在某種程度上你已經嘗試了版本leated。
它的快速和簡單,你的密碼將無法與ResHacker發現,因爲通將不使用加密保存密碼被存儲爲存儲緊湊塊在你的EXE

3)