[问题] 如何写出符合安全的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