我想了解有关漏洞和漏洞利用开发的数学基础的更多信息。正确方向的在线资源或书籍将对您有所帮助。

#1 楼

我会读静态程序分析


静态程序分析是对没有实际执行程序的情况下执行的计算机软件的分析(对执行程序进行的分析称为动态分析)。在大多数情况下,分析是在某些版本的源代码上执行的,而在其他情况下,则是在某种形式的目标代码上执行的。
动态程序分析是对计算机软件的分析,它是通过在真实或虚拟处理器上执行程序来执行的。为了使动态程序分析有效,必须使用足够的测试输入来执行目标程序,以产生有趣的行为


抽象解释,


在计算机科学中,抽象解释是基于有序集合(尤其是格)上的单调函数的计算机程序语义的声音近似理论。可以将其视为计算机程序的部分执行,该程序无需执行所有计算即可获得有关其语义的信息(例如控制流,数据流)。


符号执行,


在计算机科学中,符号执行(也是符号评估)是指通过跟踪符号而不是实际值(抽象解释的一种情况)来分析程序。符号仿真领域将相同的概念应用于硬件。符号计算将这一概念应用于数学表达式的分析。
符号执行用于推理所有通过程序使用相同路径的输入。


符号计算,


在数学和计算机科学中,计算机代数(也称为符号计算或代数计算)是一个科学领域,涉及研究和开发用于操纵数学表达式和其他数学运算的算法和软件。对象


符号模拟,


在计算机科学中,模拟是对某些适当建模的状态转换系统的执行进行的计算。通常,此过程在离散的线性时间范围内的各个点上对系统的完整状态进行建模,并从其前任开始依次计算每个状态。


模型检查,


在计算机科学中,模型检查(又称为属性检查)涉及以下问题:给定系统的模型,详尽并自动地检查该模型是否符合给定的规范。 >可能想要阅读《系统保证:检测漏洞之外》。

Rolf在这个问题上可能有很多非常好的建议。在这里阅读他的建议

#2 楼

事实证明,大约一年前有人在reddit上提出了大致相同的问题,我对此发表了相当广泛的答案,与此同时,我继续对其进行编辑。

评论


如果Reddit出于任何原因脱机,您介意在这里引用最重要的部分吗?

–彼得·安德森(Peter Andersson)
13年4月11日在19:07

好吧...我认为同时维护两个副本是没有意义的。正如我所说,我仍然会不时地对其进行编辑,并且复制它意味着将来我将不得不编辑它的多个副本。但是我想您指的是StackExchange的“引用一些相关部分以证明该链接与问题有关”策略。

–滚轴
13年4月11日在19:16

是的,我明白了为什么您不想维护两个版本。不确定如何“正确”解决它。引用并复制没有链接的整个内容?该列表如果真的很好imo。

–彼得·安德森(Peter Andersson)
2013年4月11日19:22



与Reddit imo相比,Stack Overflow上的索引和搜索要好得多,因此我建议在此处维护列表。就是我的2美分。

– ekse
13年4月11日在20:46