当前位置: 首页 > news >正文

《软件安全》 彭国军 阅读总结

对于本书,小编本意是对其讲述的内容,分点进行笔记的整理,后来学习以后,发现,这本书应该不算是一本技术提升类的书籍,更像是一本领域拓展和知识科普类书籍,所讲知识广泛,但是较少实践,应是小白入门安全的书籍,若是要对每个章节做一个知识分享,就很难逃脱照抄书本原文(知识密度大),因此,小编放弃了章节的总结,进行了全本书内容的汇总,包括每个章节所提到的一些概念,以及自己的感受。在之后的章节中,小编会对这些概念,查找资料,进行更加详细的描述。

软件安全概述(3-12)

概述性知识,可作为了解

软件安全基础(13-48)

磁盘结构,主引导扇区结构,文件系统,80X86处理器工作模式,Windows内存结构与管理(DOS内存布局,Windows内存布局,虚拟地址转译,内存分配和管理),计算机引导过程,PE文件格式

软件漏洞利用和防护(49-64)

CVE标准,CNVD,CNNVD,软件漏洞利用对系统的威胁,软件漏洞产生的原因,软件漏洞利用方式,典型软件漏洞(缓冲区溢出)

典型软件漏洞机理分析(65-94)

缓冲区溢出漏洞(栈溢出利用,堆溢出利用)格式化串漏洞,Web引用程序漏洞,OWASP

shellcode开发(95-113):

软件漏洞的具体技术:修改内存变量,修改代码逻辑,需改函数返回地址,修改函数指针,攻击异常处理机制,修改PEB中线程同步函数的入口地址(纯概念梳理)

简单堆栈溢出点的定位,地址重定位技术(call),API函数自搜索技术,shellcode编码,shellcode典型功能(正向连接,反向连接,下载程序并执行,生成可执行文件并执行)

突破操作系统和CPU对堆栈数据的限制:

Ret2Lib技术:该技术使得Shellcode在最开始的时候并不直接跳转到Shellcode,当发生缓冲区溢出时,用系统库中特定函数的地址覆盖返回地址,从而漏洞触发时执行相应的函数功能

ROP技术(Return Oriented Programminng):通过拼接内存中的返回命令,可实现控制程序执行流程到内存中的任何指令序列

MSF漏洞利用框架

静态分析,动态分析,fuzzing

Windows系统安全机制及漏洞防护技术(113-129)

DEP保护机制(data execution prevention) 

栈溢出检查----GS保护原理和实现

地址空间分布随机化---ASLR

SafeSEH

EMET

软件安全开发流程(129-148)

安全教育-》设计-》开发-》测试-》发行和维护

软件安全策略

软件安全设计法则

安全编码技术

访问控制

授权与审计

恶意代码机理和防护(153-159)

网络蠕虫、木马、后门、Rookit

流氓软件,僵尸程序

恶意代码机理分析(159-248)

病毒的特点和分类,计算机病毒的结构,计算机病毒传播方式,PE文件格式

捆绑式感染方式,熊猫烧香,WSH,VBS脚本病毒,爱虫病毒,病毒如何获取电脑控制权

宏病毒,病毒的自我隐藏机制,美杜莎病毒,ELF类病毒,网络蠕虫,木马(进程管理,文件管理,注册表操作,服务管理,屏幕截取,鼠标控制,视频监视,语音监听方案,远程shell,传播病毒,破坏系统,添加后门),灰鸽子木马,Rookit(HOOK,LAT,IDT,SSDT,进程隐藏技术)SSTD隐藏进程,DKOM隐藏进程,文件隐藏技术(用户态文件隐藏技术,内核态文件隐藏技术)

通信隐藏技术(SSDT挂钩隐藏端口,驱动程序钩子隐藏端口),注册表隐藏技术,Rookit检测原理和工具  手机恶意软件(基于Content Provider的隐私窃取)

个人认为本部分是该书的精华部分

病毒检测技术和检测对抗技术(249-274)

特征值检测技术,虚拟机检测技术,启发式扫描技术

对抗特征值检测,对抗启发式扫描技术,对抗虚拟机技术,反病毒软件对抗

加壳和脱壳

恶意软件样本捕获和分析(275-291)

蜜罐,恶意软件样本分析,进程监控,文件监控,注册表监控,网络连接监控,系统启动项监控,内核监控

文件类型检测,PE文件格式分析(PEview,Stud_PE),静态反汇编(IDA pro),动态调试(OllyDbg),恶意软件分析报告

软件自我保护(292-304)

软件知识产权保护技术,验证机制,KeyFile验证,网络验证,光盘验证,加密锁验证

静态分析对抗技术(花指令,自修改代码技术(SMC)加密和多态变形技术),动态分析对抗技术(检测自身是否处于调试状态,检测调试器软件是否存在,发现调试器以后的操作),软件自校验技术(磁盘文件校验,内存映像校验)

相关文章:

《软件安全》 彭国军 阅读总结

对于本书,小编本意是对其讲述的内容,分点进行笔记的整理,后来学习以后,发现,这本书应该不算是一本技术提升类的书籍,更像是一本领域拓展和知识科普类书籍,所讲知识广泛,但是较少实践…...

深入讲解Kubernetes架构-节点与控制面之间的通信

本文列举控制面节点(确切说是 API 服务器)和 Kubernetes 集群之间的通信路径。 目的是为了让用户能够自定义他们的安装,以实现对网络配置的加固, 使得集群能够在不可信的网络上(或者在一个云服务商完全公开的 IP 上&am…...

120个IT冷知识,看完就不愁做选择题了

目录 IT冷知识 01-10 1.冰淇淋馅料 2.蠕虫起源 3.Linux和红帽子 4."间谍软件"诞生 5.游戏主机的灵魂 6.Linux之父 7.NetBSD的口号 8.安卓起源 9.不是第七代的 Win 7 10.域名金字塔 11~20 11.神奇魔盒 12. 第一个Ubuntu 正式版本 13.巾帼英雄 14.密码…...

Java之动态规划之机器人移动

目录 0.动态规划问题 一.不同路径 1.题目描述 2.问题分析 3.代码实现 二.不同路径 II 1.题目描述 2.问题分析 3.代码实现 三.机器人双向走路 1.题目描述 2.问题分析 3.代码实现 0.动态规划问题 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问…...

seata源码-全局事务提交 服务端源码

前面的博客中,我们介绍了,发起全局事务时,是如何进行全局事务提交的,这篇博客,主要记录,在seata分布式事务中,全局事务提交的时候,服务端是如何进行处理的 发起全局事务提交操作 事…...

C++ 模板

文章目录一、泛型编程二、 函数模板三、类模板一、泛型编程 泛型编程:编写与类型无关的通用代码,代码复用的一种方法 在 C 中,我们可以通过函数重载实现通用的交换函数 Swap ,但是有一些缺点 重载函数只有类型不同,…...

JWT安全漏洞以及常见攻击方式

前言 随着web应用的日渐复杂化,某些场景下,仅使用Cookie、Session等常见的身份鉴别方式无法满足业务的需要,JWT也就应运而生,JWT可以有效的解决分布式场景下的身份鉴别问题,并且会规避掉一些安全问题,如CO…...

华为OD机试题 - 最小施肥机能效(JavaScript)

最近更新的博客 华为OD机试题 - 任务总执行时长(JavaScript) 华为OD机试题 - 开放日活动(JavaScript) 华为OD机试 - 最近的点 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试题 - 最小步骤数(JavaScript) 华为OD机试题 - 任务混部(JavaScript) 华为OD机试题 - N 进…...

Python(1)变量的命名规则

目录 1.变量的命名原则 3.内置函数尽量不要做变量 4.删除变量和垃圾回收机制 5.结语 参考资料 1.变量的命名原则 ①由英文字母、_(下划线)、或中文开头 ②变量名称只能由英文字母、数字、下画线或中文字所组成。 ③英文字母大小写不相同 实例: 爱_aiA1 print(…...

Shiro1.9学习笔记

文章目录一、Shiro概述1、Shiro简介1.1 介绍1.2 Shiro特点2、Shiro与SpringSecurity的对比3、Shiro基本功能4、Shiro原理4.1 Shiro 架构(外部)4.2 shiro架构(内部)二、Shiro基本使用1、环境准备2、登录认证2.1 登录认证概念2.2 登录认证基本流程2.3 登录认证实例2.4 身份认证源…...

2.5|iot|嵌入式Linux系统开发与应用|第4章:Linux外壳shell脚本程序编程

1.shell基础 Shell是Linux操作系统内核的外壳,它为用户提供使用操作系统的命令接口。 用户在提示符下输入的每个命令都由shell先解释然后发给Linux内核,所以Linux中的命令通称为shell命令。 通常我们使用shell来使用Linux操作系统。Linux系统的shell是…...

九龙证券|连续七周获加仓,四大行业成“香饽饽”!

本周17个申万职业北上资金持股量环比增加。 北上资金抢筹铝业龙头 本周A股商场全体冲高回落,沪指收跌1.12%,深成指跌2.18%,创业板指跌3.76%。北上资金周内小幅净流入。在大盘体现较差的周四周五,北上资金别离逆市回流67.94亿元、…...

210天从外包踏进华为跳动那一刻,我泪目了

前言 没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力幸运,但如果你不够幸运,那就只能拉高努力的占比。 2021年4月,我有幸成为了华为的一名高级测试工程师,正如标题所…...

CMake 引入第三方库

CMake 引入第三方库 在 CMake 中,如何引入第三方库是一个常见的问题。在本文中,我们将介绍 CMake 中引入第三方库的不同方法,以及它们的优缺点。 1. 使用 find_package 命令 在 CMake 中,使用 find_package 命令是最简单和最常…...

软考中级-面向对象

面向对象基础(1)类类分为三种:实体类(世间万物)、接口类(又称边界类,提供用户与系统交互的方式)、控制类(前两类之间的媒介)。对象:由对象名数据&…...

Linux 系统构成:bootloader、kernel、rootfs

写在前面: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 目录前言bootloaderk…...

SpringCloud - Eureka注册发现

目录 提供者与消费者 Eureka原理分析 搭建Eureka服务 服务注册 服务发现 提供者与消费者 服务提供者: 一次业务中,被其它微服务调用的服务(提供接口给其它微服务)服务消费者: 一次业务中,调用其它微服务的服务(调用其它微服务…...

WampServer安装教程

文章目录简介:官网地址安装步骤:我是阿波,学习PHP记录一下笔记,如果对你有帮助,欢迎一键三连,谢谢! 简介: WampServer是一个用于Windows操作系统的Web开发环境,其名称来…...

Go语言泛型基础

泛型 Go 并不是一种静止的、一成不变的编程语言。新的功能是在经过大量的讨论和实验后慢慢采用的。最初的 Go1.0发布以来,Go语言习惯的模式已经发生了重大变化1.7的context、1.11的modules、1.13 error嵌套等Go的 1.18 版本包括了类型参数的实现,也就是…...

基于android的中医养生app

需求信息: 中医健康养生APP分为四大模块,其中个人中心又分为4大块,游客用户个人中心是空白的。 上图为养生知识推广普及模块的功能结构图。 在养生知识推广普及模块界面,用户可以选择自己感兴趣的模块进行文章浏览,文章…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​:Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...

Python Einops库:深度学习中的张量操作革命

Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...