• 我们在哪一颗星上见过 ,以至如此相互思念 ;我们在哪一颗星上相互思念过,以至如此相互深爱
  • 我们在哪一颗星上分别 ,以至如此相互辉映 ;我们在哪一颗星上入睡 ,以至如此唤醒黎明
  • 认识世界 克服困难 洞悉所有 贴近生活 寻找珍爱 感受彼此
第十二章:符号执行

第十二章:符号执行

12.1 概述 用“未知数(比如代数里的x、y)”代替真实数值去“模拟运行”程序,看所有可能的分支路径会得出什么结论。 12.1.1 符号执行与正常执行的对比 想象你在玩一个解谜游戏,游戏里有很多岔路,每条岔路门口有个守卫,他会根据你手里的钥匙(输入值)决定让不让你通过。 普通执行(具体执行): 你拿一把真的钥匙(比如 x=5, y=3)去试试,能通过就走……

第十一章:基于libdft 的动态污点分析

第十一章:基于libdft 的动态污点分析

11.1  libdft 简介 想象你之前要自己搭建整个厨房监控系统(DTA),而现在有了libdft——一个专业的”食品安全监控套装”! 11.1.1 libdft的内部结构 – “工具箱里有什么?” libdft工具箱包含四个核心组件: 1. 影子内存(标记映射)- “污染记录本&……

第十章:动态污点分析的原理

第十章:动态污点分析的原理

概述 10.1  什么是DTA DTA也称为数据流追踪(Data Flow Tracking,DFT)、污点追踪(taint tracking)或污点分析(taint analysis),是一种程序分析技术,用于分析所选程序状态对程序其他部分状态的影响。 追踪“污点”的传播路径。 看看这个不干净的东西最终会影响到哪里。 10.2  DTA 三步:污点源、污点……

第九章:二进制插桩

第九章:二进制插桩

9.1 概念 在代码任意位置插入自定义代码,实时监控或修改。 静态插桩:直接修改二进制代码,例如修改call,插入监控代码。 动态插桩:运行时插入代码,不修改原代码。 while program_running:     next_instruction = fetch()  # 获取下条指令      if is_monitor_point(n……

Rootkits和Bootkits:第14章

Rootkits和Bootkits:第14章

14.0 参考 https://www.youtube.com/watch?v=DwO7dn5iNJ0   14.1 概述 UEFI( Unified Extensible Firmware Interface):现代接口标准,定义了操作系统和固件之间的软件接口。 UEFI可以看作是一个小型的操作系统,有自己的网络栈。   14.2 BI……

Rootkits和Bootkits:第一章

Rootkits和Bootkits:第一章

看这篇文章:https://forum.butian.net/share/3715 ……

C++ primer:第三章 字符串、向量和数组

C++ primer:第三章 字符串、向量和数组

3.1 命名空间using声明 using namespace::name 例如 using std::cin; using namespace std; 头文件中不应该包含using声明 3.2 标准库类型string       ……

基于数据科学恶意代码分析 第五章 共享代码分析

基于数据科学恶意代码分析 第五章 共享代码分析

通过揭示与新的恶意软件样本较为相似的之前分析过的老样本,从而揭示它们的共享代码,共享代码分析允许你复用以前的分析结果对新的恶意软件进行分析,这样就不用从头开始分析。了解此前看到的恶意软件来源信息,也可以帮助找出可能部署恶意软件的人。 共享代码分析,也称为相似性分析,通过估计它们共享的预编译源代码的百分比来比较两个恶意软件样本的过程。它不同于共享属性分析,共享……

基于数据科学恶意代码分析 第四章 利用恶意软件网络识别攻击活动

基于数据科学恶意代码分析 第四章 利用恶意软件网络识别攻击活动

1. 节点和边 网络是连接对象(节点)的集合。这些节点之间的连接称为边。 当使用网络来分析恶意软件时,我们可以将每个单独的恶意软件文件定义为节点,并将感兴趣的关系(如共享代码或网络行为)定义为边。 相似的恶意软件文件共享边,因此当我们应用力导向网络( force-directed network)时,它们就会聚集在一-起。 或者,我们可以将恶意软件样本和属性……

基于数据科学恶意代码分析 第0章

基于数据科学恶意代码分析 第0章

官方网站:https://www.malwaredatascience.com/home 书籍代码和数据:https://www.malwaredatascience.com/code-and-data 书籍虚拟机:https://www.malwaredatascience.com/ubuntu-virtual-machine 数据科学应用于安全领域 例如……

C++ primer:第二章 变量和基本类型

C++ primer:第二章 变量和基本类型

2.1.3 自面值常量 字符串字面值类似实际上由常量字符构成的数组。字面值‘A’就是字符A,“A”则代表一个字符数组,该数组包含两个字符,一个是字母A,另一个是空字符,也就是字符串A. 单引号是字符,双引号是字符串。 2.2.1 变量定义 对象:指一块能存储数据并具有某种类型的内存空间 变量初始化和赋值不是同一个含义,变量初始化是创建变量时赋予其一个初始值,……

C++ primer:第一章 C++入门

C++ primer:第一章 C++入门

这并不是一份教程,而是一份笔记,记录未掌握或不熟练知识点! 1.4.3 读取数量不定的输入数据 此循环条件实际上检测是std::cin 使用一个istream对象作为条件时,效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符,或遇到一个无效输入时,例如非整数,istream对象会变成无效。处于无效状态的istream对象会使条……