[問題] 如何寫出符合安全的C/C++ code

作者: Clangpp (Clang++)   2016-04-06 21:24:00
https://www.facebook.com/x43x61x69/posts/780870938716449
昨天看到很多人傳這一篇文章
我發現周遭很多人都會犯一樣的錯誤。
另外還看到很多新手居然把重要參數寫在 #define (preprocessor)中...
(同事的說法 因為編成binary後還是明碼
甚至可以直接開檔改 所以建議重要參數不要放在 preprocessor)
想問一下有什麼書在教安全程式的寫法
像是避免strcpy的buffer overflow攻擊之類的
作者: Hazukashiine (私は幸せです)   2016-04-06 23:00:00
把重要參數寫在 #define 錯了嗎?不是很正常?
作者: ronin728 (浪人)   2016-04-06 23:03:00
同樓上,求指點
作者: Hazukashiine (私は幸せです)   2016-04-06 23:05:00
https://en.wikipedia.org/wiki/Macro_and_security沒有提及C語言的 Macro 有何安全性問題只有 VBA-type/WindWord Macros 可能有病毒攻擊
作者: james732 (好人超)   2016-04-06 23:15:00
同一樓,不懂為什麼寫在參數有問題...?
作者: king37937 (憶~)   2016-04-07 02:21:00
萬無一失的程式碼-終結 C & C ++ 軟體漏洞 <= 這本?
作者: Clangpp (Clang++)   2016-04-07 08:04:00
我更正一下 重要參數是指密碼的部分 我記得沒錯很容易被反組譯 跟加密相關的參數都建議不要放在code當中有錯可以更正我一下 因為我是聽同事講的理由是上面描述的
作者: Schottky (順風相送)   2016-04-07 10:56:00
(笑到翻肚) 那用 const 就不會被反組譯看到喔?你那同事真的有反組譯過自己或別人寫的程式嗎?電腦安全是另一個領域,而且是進階課程,認真要做的話,成本非常高,不過你若只要單純討論一個實際遇到的問題像是現在這個密碼問題,我蠻願意聊聊的如果要看書,我推薦 Bruce Schneier 的 PraticalCryptography 第 9 和 16 章 Implementation Issues它有教你一點點訣竅,且告訴你不要妄想看個兩章就變行家
作者: Clangpp (Clang++)   2016-04-07 11:29:00
喔喔喔 感謝 願聞其詳 因為我也希望能夠導正觀念有時候我們接收錯誤的觀念太多 所以我想要理解什麼是正確的這種東西我一直很有興趣 但是不知道從哪邊入門所以 密碼不建議放在preprocessor是正確的嗎??
作者: Schottky (順風相送)   2016-04-07 11:42:00
密碼喔... 我想你得先把整件事講清楚才有辦法討論...什麼密碼? 程式如何使用? 要防範什麼樣的威脅?如果直接這樣問我,我會告訴你放哪都會被反組譯出來#define 最後還是會處理完再代入該放的位置,那個該放的位置大概就是你說的 const,再轉成 binary 一樣是明碼
作者: TobyH4cker (Toby (我要當好人))   2016-04-07 18:54:00
也有可能是runtime時放進stack,但兩者靜態分析都秒爆
作者: L4ys (Lays)   2016-04-07 22:48:00
明文只要在 memory 中出現過就抓得出來,沒有例外
作者: LiloHuang (十年一刻)   2016-04-08 09:51:00
簡單弄可以買一套虛擬機保護的加殼器,找沒自動脫殼的複雜一點的就是自己的殼自己做,反反編譯跟反靜態分析
作者: descent (「雄辯是銀,沉默是金」)   2016-04-08 12:23:00
萬無一失的程式碼:終結C&C++軟體漏洞 參考一下
作者: Schottky (順風相送)   2016-04-08 12:57:00
加殼(程式碼加密)有個小麻煩,防毒軟體會把你當病毒因為病毒超愛用這招來躲防毒軟體的掃描 XDDD
作者: LiloHuang (十年一刻)   2016-04-08 14:25:00
多數時候是防毒軟體太弱,只能識別殼的部分特徵或行為不管三七二十一就判斷是病毒,只能手工加殼加花多測試防止逆向工程跟免殺技術是正反兩面
作者: TobyH4cker (Toby (我要當好人))   2016-04-09 04:04:00
要買正版,既然買了也順便買簽章吧(X 正版才不易被殺

Links booklink

Contact Us: admin [ a t ] ucptt.com