适合自学的网络安全基础技能“蓝宝书”:《CTF那些事儿》
CTF比赛是快速提升网络安全实战技能的重要途径,已成为各个行业选拔网络安全人才的通用方法。但是,本书作者在从事CTF培训的过程中,发现存在几个突出的问题:
1)线下CTF比赛培训中存在严重的 “最后一公里”问题 ,线下培训讲师的水平参差不齐。
2)国内高等院校和职业院校的网络空间安全学科与专业缺乏实战型、系统化的教材和配套实验课程。例如,Base64编码是网络安全行业必备的基础知识,但是学校的教材并不涉及该知识点,也没有专门的实验课对该知识进行讲解。
3)大部分CTF比赛书籍对想学习网络空间安全技术的新人不够友好,很多初学者找不到快速、有效的学习方法。
为了解决上述问题,帮助零基础的学习者快速掌握基本技能,同时吸引更多的人关注网络空间安全技能的学习,推进CTF比赛的发展,本书创新性地提出新的CTF知识学习框架,并在每一章附有大量实操练习,即使是没有网络空间安全知识基础的新手,也能按照书中的操作独立复现实验内容。
本书不仅讲授了网络空间安全相关的基础知识和操作技能,还探讨了CTF赛题的本质,着重阐述了面对不同类型题目时的分析思路和方法。比如,我们首次提出**“图像隐写三板斧”“逆向真经”**等解题思维模式,并较为全面地总结了CTF比赛中对工控安全相关知识的考查方式。从线下培训的效果来看,这些方法的实用性极强。
《CTF那些事儿》通过喜闻乐见的方式,以通俗易懂、幽默风趣的语言普及网络空间安全的知识,从而提高公众的网络空间安全意识,进而促进全行业水平的提高,为我国成为网络安全强国打下坚实的基础。
内容简介
本书由顶级CTF战队Lancet的指导教师李舟军教授和核心团队成员历时4年打磨而成,创新性地提出了新的CTF知识学习框架,体现了李舟军教授多年的教学精髓和带队经验。书中涵盖PWN、逆向、Web等常见题目,并系统性总结了CTF比赛中工控安全的考察方式。不仅讲授基础知识和操作技能,还探讨CTF赛题的本质,着重阐述了面对不同类型题目时的分析思路和方法。
同时,书中针对CTF比赛学习的编排方式,符合我国主流的计算机学科知识体系结构,李舟军教授结合学生的实战经验,为网络安全空间爱好者提供了一本教科书式的实践指导手册。关注“IT阅读排行榜”,回复72991
读者对象
1)想系统学习网络安全基础技能的读者。本书作者的初衷,是希望以通俗易懂的方式呈现网络安全基础知识和技能,凡是对网络安全感兴趣的人都可以学习本书。
2)政府机关、事业单位、国企及其他企业的技术人员。对于各类企业中需要参加CTF比赛的读者而言,本书可以作为赛前训练的指导书,帮助他们在短时间内快速掌握网络安全技能。
3)高等院校和职业院校学生。对于高等院校和职业院校的学生,本书可以作为他们学习网络安全知识的“准教材”,有效补充理论知识与实操技能的不足。
4)网络安全培训和比赛从业人员。我们希望抛砖引玉,使本书成为网络安全培训的基础教材和重要参考书,促进CTF比赛和培训行业的进一步发展。
专家推荐
李舟军教授长期从事网络与信息安全领域的研究与教学工作,为国家培养了一批高水平网络安全人才。同时,作为国务院学位委员会网络空间安全一级学科研究论证工作组成员,在该学科创建和发展中发挥了重要作用。由李舟军教授指导的Lancet战队在“网鼎杯”“强网杯”“鹏程杯”等CTF比赛中取得了优异的成绩。本书由Lancet战队倾力打造,创造性地提出新的网络安全基础技能的体系化学习框架,是一本非常适合“小白”入门的网络安全基础技能自学手册。同时,书中以严谨的态度介绍了网络安全相关理论和技术的历史脉络,并配以大量实操练习和离线工具包,兼顾知识性、趣味性与实战性,对读者将大有裨益。我认为,该书是CTF培训以及网络安全实战技能教学的一本难得的佳作,特此推荐。
——方滨兴,中国工程院院士,网络与信息安全专家,国务院学位委员会网络空间安全学科评议组召集人,教育部网络空间安全专业教学指导委员会副主任
由于网络安全鲜明的实战性质和对抗特色,CTF成为学习和实践网络安全技术的重要途径,也是考察和选拔网络安全专业人才的重要手段。在众多的网络安全技术书籍,甚至专门介绍CTF的书籍中,李舟军教授主编的这本书独具特色,体现了他多年来教学的精髓。书中涵盖了PWN、逆向、Web等CTF常见的题目,也包括工控系统安全这样专业且实用的领域。它不仅是网络安全专业学生和爱好者学习CTF的重要指南,也是网络安全从业人员难得的学习资料。
——段海新,清华大学网络研究院教授,博士生导师,蓝莲花战队联合创始人,现任国务院学位委员会网络空间安全学科评议组成员
这本书虽然以 CTF 为线索来组织内容,但也是一份不错的网络安全入门学习资料。书中对每一个技术门类都从零讲起,并配有大量便于读者理解的图例,可谓手把手教学。此外,本书在技术内容之外还讲述了技术发展的历史和文化,非常值得一读。
——于旸,腾讯杰出科学家,玄武实验室负责人
李舟军教授和他所带领的Lancet战队是我国CTF竞赛演练领域的先锋。过去几年中,Lancet战队在李老师指导下斩获了几乎所有国内顶级竞赛的大奖。本书以李老师扎实的理论和教学实践为锚点,结合指导学生实战的经验,为所有网络空间安全爱好者提供了一本教科书式的实践导学手册,也为通过组织CTF战队进行教学工作的老师们提供了一部路径清晰、内涵丰富的参考教案。
——蔡晶晶,北京永信至诚科技股份有限公司董事长,教授级高级工程师,入选国家“万人计划”,国家网络安全实验平台项目专家,公安部网络安全专家
这本书全面而系统地介绍了CTF的重要知识点,读者可以通过阅读本书,获得广泛而深入的安全领域知识。对信息安全专业的学生来说,这本书既是入门的绝佳指南,又是提升技能和精通CTF的宝贵资源。对于那些希望进入安全领域从事研究工作的读者来说,阅读这本书也会有极大的收获。作为我的研究生导师,李舟军教授的专业指导和悉心培养对我产生了深远的影响,让我受益匪浅。
——龚广,360 首席安全研究员兼数字安全集团漏洞研究院院长,研究员级高级工程师
目录
Contents 目录前言第0章 开启CTF之旅 10.0 CTF比赛的历史 10.1 CTF比赛的常见赛制 10.2 国内外知名的CTF比赛 30.3 国内外知名的CTF战队 40.4 学习前的实验环境准备 70.4.0 虚拟机运行软件 70.4.1 搭建Python脚本运行环境 90.4.2 搭建Docker使用环境 11第1章 安全杂项 121.0 安全杂项类赛题简介 121.1 常见的编码与解码 131.1.0 ASCII编码 131.1.1 Base64编码 151.1.2 Base32编码 181.1.3 Base16编码 191.1.4 其他Base系列编码 191.1.5 Shellcode编码 211.1.6 Quoted-printable编码 221.1.7 UUencode编码 221.1.8 XXencode编码 231.1.9 URL编码 241.1.10 摩斯码 241.1.11 JSFuck编码 251.1.12 Brainfuck编码 261.1.13 编码类题目的通用解题方法 281.2 网络流量分析 301.2.0 网络协议的基础知识 311.2.1 Wireshark的基本使用方法 331.2.2 CTF流量分析的通用方法 421.2.3 ICMP 441.2.4 Telnet 451.2.5 FTP 471.2.6 DNS 481.2.7 HTTP 501.2.8 USB 591.2.9 TLS 601.2.10 IEEE 802.11 621.3 日志分析 651.3.0 Web日志及分析方法 651.3.1 系统设备日志及分析方法 701.4 电子取证分析 751.4.0 电子取证的常用技术 751.4.1 文件恢复 771.4.2 磁盘取证分析方法 791.4.3 内存取证分析方法 811.5 压缩文件格式与破解 841.5.0 ZIP压缩包格式 841.5.1 伪加密 871.5.2 压缩包密码爆破 891.5.3 CRC碰撞破解压缩包 911.5.4 已知明文攻击 931.6 信息搜集与搜索引擎的高级用法 951.6.0 信息搜集方法 951.6.1 搜索引擎的高级用法 97第2章 安全杂项——隐写术专题 992.0 隐写术简介 992.1 图像隐写方法及信息提取 1002.1.0 常见的图像隐写方法 1012.1.1 PNG文件格式及隐写方法 1022.1.2 JPG文件格式及隐写方法 1062.1.3 GIF文件格式及隐写方法 1102.1.4 图像隐写三板斧 1152.1.5 图像隐写三板斧2.0 1242.1.6 图像和像素值的转换 1332.2 音频隐写方法及信息提取 1352.2.0 常见的音频文件格式解析 1352.2.1 基于波形图的隐写 1372.2.2 基于频谱图的隐写 1382.2.3 音频LSB隐写 1392.2.4 MP3文件隐写 1412.2.5 拨号音识别 1442.2.6 音频隐写总结 1462.3 视频隐写方法及信息提取 1472.4 文本隐写方法及信息提取 1482.4.0 基于文本内容的隐写 1492.4.1 基于Word文档的隐写 1492.4.2 基于PDF文档的隐写 1512.5 二维码 1552.5.0 QR码的基础知识和常用工具 1562.5.1 QR码画图 1582.5.2 QR码修复 159第3章 密码学基础 1613.0 密码学简介 1613.1 古典密码 1653.1.0 栅栏密码 1653.1.1 凯撒密码 1693.1.2 ROT位移密码 1703.1.3 Atbash密码 1723.1.4 猪圈密码 1723.1.5 培根密码 1733.1.6 简单替换密码 1753.1.7 仿射密码 1773.1.8 单表代换密码总结 1783.1.9 多表代换密码 1793.1.10 维吉尼亚密码 1793.1.11 希尔密码 1843.2 对称密码 1853.2.0 对称密码的基本模型 1853.2.1 流密码和分组密码的本质区别 1863.2.2 xor密码 1863.2.3 RC4 1903.2.4 Feistel密码结构 1913.2.5 DES 1943.2.6 AES 1953.2.7 填充 1963.2.8 分组模式 1973.3 非对称密码 2063.3.0 RSA基础 2063.3.1 模数N相关攻击 2083.3.2 指数e相关攻击 2123.3.3 私钥d相关攻击 2143.3.4 广播攻击 2153.3.5 ECC基础 2173.3.6 ECC加密 2183.3.7 Pohlig_Hellman攻击 2193.3.8 Smarts攻击 2203.4 哈希函数 2213.4.0 哈希函数的基本模型 2213.4.1 MD5 2223.4.2 哈希长度扩展攻击 223第4章 Web渗透基础 2284.0 引言 2284.0.0 概述 2284.0.1 HTTP理论基础 2294.0.2 环境搭建与工具使用 2344.1 Web信息收集的技巧 2414.1.0 端口扫描 2414.1.1 目录探测 2474.1.2 指纹识别 2554.2 暴力破解 2584.2.0 用户名/密码爆破 2584.2.1 参数爆破 2644.2.2 密钥爆破 2684.2.3 随机数爆破 2714.2.4 字典 2754.3 PHP弱类型 2774.3.0 PHP代码基础 2774.3.1 PHP弱类型问题 2804.4 上传漏洞 2834.4.0 前端JavaScript绕过 2874.4.1 MIME-Type绕过 2884.4.2 黑名单绕过 2884.4.3 .htaccess绕过 2894.4.4 后缀名绕过 2904.4.5 图片马 2914.4.6 其他类型的问题 2964.5 SQL注入漏洞 2974.5.0 SQL注入 2974.5.1 SQL注入漏洞的分类 3004.5.2 SQL注入漏洞实战 3014.5.3 SQLmap 3074.5.4 宽字节注入 3094.5.5 WAF绕过 3104.5.6 利用SQL注入读写文件 3134.5.7 报错注入 3144.6 文件包含 3174.6.0 php://filter进阶 3214.6.1 文件包含的分类 3224.6.2 文件包含中的截断和phar:// 3224.7 命令执行 3244.7.0 危险函数 3324.7.1 无参数RCE 3334.8 CSRF与XSS 3384.8.0 CSRF 3384.8.1 CSRF防御 3404.8.2 XSS 3414.9 SSRF 344第5章 软件逆向工程 3475.0 软件逆向工程简介 3475.0.0 软件是怎么生成的 3475.0.1 软件逆向工程的定义及目标 3495.0.2 软件逆向工程的发展历史 3495.1 CTF软件逆向工程入门 3505.1.0 逆向题目的特点 3505.1.1 逆向真经 3515.2 静态分析方法 3525.2.0 静态分析的原理和技巧 3525.2.1 静态分析的常用工具 3555.2.2 静态分析实战 3595.3 动态分析方法 3835.3.0 动态调试的技巧 3835.3.1 汇编 3845.3.2 使用OllyDbg进行动态调试 3925.3.3 使用GDB进行动态调试 3995.3.4 使用IDA进行本地动态调试 4035.3.5 使用IDA进行远程动态调试 407第6章 进入 PWN 的世界 4106.0 PWN简介 4106.1 CTF中的PWN 4106.2 栈溢出入门 4146.2.0 认识栈结构 4156.2.1 函数调用过程分析 4156.2.2 Linux操作系统的基本保护?机制 4186.2.3 覆盖返回地址 4196.2.4 覆盖返回地址到Shellcode 4216.2.5 编写单个函数的ROP链 4236.2.6 编写两个函数的ROP链 4276.2.7 编写多个函数的ROP链 4316.2.8 ret2syscall 4336.2.9 用动态链接动态泄露system?地址并利用 4376.2.10 64位程序的栈溢出 4426.2.11 未知远程libc的解法 4436.3 格式化字符串 4436.3.0 格式化字符串的原理 4436.3.1 格式化字符串漏洞的利用 4466.3.2 通过格式化字符串漏洞泄露?栈上内容 4476.3.3 通过格式化字符串漏洞泄露?任意地址内存 4486.3.4 通过格式化字符串漏洞覆盖?任意地址内存 4506.3.5 64位格式化字符串 4566.3.6 格式化字符串的综合利用 4566.4 栈溢出进阶技术 4576.4.0 栈劫持 4576.4.1 ropchain 4636.4.2 Canary保护机制及其利用?方式 4636.4.3 __libc_csu_init的利用方式 4726.4.4 ret2_dl_runtime_resolve 4746.5 栈溢出和格式化字符串总结 484第7章 PWN进阶 4857.0 堆管理器 4857.0.0 ptmalloc堆管理器的基本功能 4857.0.1 malloc和free简介 4867.0.2 内存分配背后的系统调用 4877.1 堆相关的数据结构 4887.1.0 malloc_chunk 4887.1.1 bin 4907.1.2 fast bin 4927.1.3 small bin 4937.1.4 large bin 4957.1.5 unsorted bin 4967.1.6 bin 的总结 4977.2 malloc的基本算法 4977.2.0 __libc_malloc 4977.2.1 fast bin分配算法 4987.2.2 small bin分配算法 4997.2.3 large bin分配算法1 5007.2.4 unsorted bin分配算法 5017.2.5 large bin分配算法2 5037.2.6 寻找更大的bin链 5047.2.7 使用top chunk 5057.2.8 总结 5067.3 free函数的基本算法 5067.4 堆利用的基本方法 5077.4.0 House of Prime 5077.4.1 House of Lore 5087.4.2 House of Spirit 5097.4.3 House of Force 5127.4.4 House of系列方法总结 5147.5 链表攻击 5147.5.0 unlink 5147.5.1 fast bin 攻击 5207.5.2 unsorted bin 攻击 5247.6 其他漏洞形式及其利用 5267.6.0 off by one 5277.6.1 off by null 5307.6.2 fast bin 三重释放攻击 5337.7 例题讲解 5367.8 tcache机制及其利用方式 5427.8.0 tcache的重要数据结构与?源码解读 5427.8.1 tcache dup(glibc 2.27) 5477.8.2 tcache 双重释放(glibc 2.27) 5497.8.3 tcache dup(glibc 2.29) 5517.8.4 tcache 双重释放(glibc 2.29) 5517.8.5 tcache stash unlink(glibc 2.29) 5577.8.6 tcache stash unlink plus?(glibc 2.29) 5607.8.7 tcache stash unlink plus plus?(glibc 2.29) 5627.8.8 large bin 攻击1(glibc 2.29) 5647.8.9 large bin 攻击2(glibc 2.29) 5687.8.10 tcache 攻击(glibc 2.31) 5697.8.11 堆利用总结 5727.9 PWN中的打补丁技术 5727.9.0 change data 5737.9.1 add segement 5757.9.2 compress instruction 5787.9.3 add logic 5807.9.4 打补丁技术总结 582第8章 工业控制系统安全 5838.0 工业控制系统概述 5838.0.0 工业控制系统的定义 5838.0.1 工业控制系统安全概述 5868.0.2 工业控制系统的组成 5888.0.3 工业控制系统的架构 6018.1 工业控制系统编程 6078.1.0 读懂梯形图 6088.1.1 学会指令表 6338.1.2 其他编程语言 6508.1.3 常见工程文件汇总 6538.2 工业控制系统通信协议 6598.2.0 Modbus协议 6598.2.1 西门子S7协议 6698.2.2 其他工控协议 6808.2.3 PLC漏洞利用 691参考文献 710
- 本次送书二本
- 活动时间:截止到2023-10-16
- 参与方式:关注博主、并在此文章下面点赞、收藏并任意评论。
- 一本送给所有粉丝抽奖,另外一本送给购买专栏的同学们,购买专栏的同学们可私信联系,先到先得,仅限一本
相关文章:

适合自学的网络安全基础技能“蓝宝书”:《CTF那些事儿》
CTF比赛是快速提升网络安全实战技能的重要途径,已成为各个行业选拔网络安全人才的通用方法。但是,本书作者在从事CTF培训的过程中,发现存在几个突出的问题: 1)线下CTF比赛培训中存在严重的 “最后一公里”问题 &#…...

软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计
1.数据库的基本概念 1.1数据库的体系结构 1.1.1常见数据库 ①集中式数据库 数据是集中的;数据管理是集中的 ②C/S结构 客户端负责数据表服务;服务器负责数据库服务;系统分前后端;ODBC、JDBC ③分布式数据库 物理上分布、逻…...

distcc分布式编译
distcc https://gitee.com/bison-fork/distcc.git 下载工具链 mingw,https://www.mingw-w64.org/downloads/#w64devkitperl,https://strawberryperl.com/releases.html免安装zip版本,autoconf等脚本依赖perlautoconf、automake,…...

Java面试题-0919
集合篇 Java面试题-集合篇HashMap底层实现原理概述javaSE进阶-哈希表 为了满足hashmap集合的不重复存储,为什么要重写hashcode和equals方法? 首先理解一下hashmap的插入元素的前提: hashmap会根据元素的hashcode取模进行比较,当…...

WPF列表性能提高技术
WPF列表性能提高技术 WPF数据绑定系统不仅需要绑定功能,还需要能够处理大量数据而不会降低显示速度和消耗大量内存,WPF提供了相关的控件以提高性能,所有继承自ItemsControl的控件都支持该技术。 虚拟化 UI虚拟化是列表仅仅为当前显示项创建…...

掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(2)
BERT的先进技术 当您精通 BERT 后,就该探索先进技术以最大限度地发挥其潜力。在本章中,我们将深入研究微调、处理词汇外单词、领域适应,甚至从 BERT 中提取知识的策略。 微调策略:掌握适应 微调 BERT 需要仔细考虑。您不仅可以微调…...

【算法优选】 二分查找专题——贰
文章目录 😎前言🌲[山脉数组的峰顶索引](https://leetcode.cn/problems/peak-index-in-a-mountain-array/)🚩题目描述:🚩算法思路🚩代码实现: 🌴[寻找峰值](https://leetcode.cn/pro…...

SQL 的优化
SQL 优化是指对数据库查询语句进行优化,以提高查询性能和效率。下面列出了一些常见的 SQL 优化技巧: 1、索引优化 (1)使用适当的索引来加速查询操作。在频繁用于查询的列上创建索引,特别是在 WHERE 条件、JOIN 条件和…...

华为云云耀云服务器L实例评测|华为云上的CentOS性能监测与调优指南
目录 引言 编辑1 性能调优的基本要素 2 性能监控功能 2.1 监控数据指标 2.2 数据历史记录 2.3 多种统计指标 3 性能优化策略 3.1 资源分配 3.2 磁盘性能优化 3.3 网络性能优化 3.4 操作系统参数和内核优化 结论 引言 在云计算时代,性能优化和调优对于…...

Go If流程控制与快乐路径原则
Go if流程控制与快乐路径原则 文章目录 Go if流程控制与快乐路径原则一、流程控制基本介绍二、if 语句2.1 if 语句介绍2.2 单分支结构的 if 语句形式2.3 Go 的 if 语句的特点2.3.1 分支代码块左大括号与if同行2.3.2 条件表达式不需要括号 三、操作符3.1 逻辑操作符3.2 操作符的…...

yolov8 strongSORT多目标跟踪工具箱BOXMOT
1 引言 多目标跟踪MOT项目在Github中比较完整有:BOXMOT , 由mikel brostrom提供。在以前的版本中,有yolov5deepsort(版本v3-v5), yolov8strongsort(版本v6-v9),直至演变…...

如何开发一款跑酷游戏?
跑酷游戏(Parkour Game)是一种流行的视频游戏类型,玩家需要在游戏中控制角色进行极限动作、跳跃、爬墙和各种动作,以完成各种挑战和任务。如果你有兴趣开发一款跑酷游戏,以下是一些关键步骤和考虑事项: 游…...

使用宝塔面板在Linux上搭建网站,并通过内网穿透实现公网访问
文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板,它支持Linux/Windows系统,我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…...

Unity可视化Shader工具ASE介绍——6、通过例子说明ASE节点的连接方式
大家好,我是阿赵。继续介绍Unity可视化Shader编辑插件ASE的用法。上一篇已经介绍了很多ASE常用的节点。这一篇通过几个小例子,来看看这些节点是怎样连接使用的。 这篇的内容可能会比较长,最终是做了一个遮挡X光的效果,不过把这…...

VUE3基础知识梳理
VUE3基础知识梳理 一、vue了解和环境搭建1.vue是什么:cn.vuejs.org/vuejs.org2.渐进式框架3.vue的版本4.vueAPI的风格5.准备环境5.1.创建vue项目5.2.vue的目录结构 二、vue3语法1.干净的vue项目2.模板语法2.1 文本插值2.2属性绑定2.3条件渲染2.4列表渲染2.5通过key管…...

Java架构师缓存通用设计方案
目录 1 采用多级缓存2 缓存数据尽量前移3 静态化4 数据平衡策略5 jvm缓存的问题6 redis存放数据解决7 redis垂直拆分8 总结1 采用多级缓存 在实际应用中需要考虑的实际问题。首先,前端页面可以做缓存,虽然图上没有显示,但在现实应用中这是提高性能的一个重要方面。前端页面缓…...

2023年【危险化学品生产单位安全生产管理人员】及危险化学品生产单位安全生产管理人员模拟考试题
题库来源:安全生产模拟考试一点通公众号小程序 危险化学品生产单位安全生产管理人员考前必练!安全生产模拟考试一点通每个月更新危险化学品生产单位安全生产管理人员模拟考试题题目及答案!多做几遍,其实通过危险化学品生产单位安…...

微信小程序 在bindscroll事件中监听scroll-view滚动到底
scroll-view其实提供了一个 bindscrolltolower 事件 这个事件的作用是直接监听scroll-view滚动到底部 但是 总有不太一样的情况 公司的项目 scroll-view 内部 最下面有一个 类名叫 bottombj 的元素 我希望 滚动到这个 bottombj 上面的时候就开始加载滚动分页 简单说 bottombj这…...

收银系统商品定价设计思考
一、背景 因为门店系统里商品总共也就几万款,一直以来都是根据条码由总部统一定价销售,现在有加盟店,各门店也有进行各自促销活动的需求,这就需要放开门店自主定价权,所以近段时间系统在商品定价上做了扩展。 二、商…...
Kotlin函数作为参数指向不同逻辑
Kotlin函数作为参数指向不同逻辑 fun sum(): (Int, Int) -> Int {return { a, b -> (a b) } }fun multiplication(): (Int, Int) -> Int {return { a, b -> (a * b) } }fun main(args: Array<String>) {var math: (Int, Int) -> Intmath sum()println(m…...

读书笔记—《如何阅读一本书》
读书笔记—《如何阅读一本书》 一、阅读的层次1、主动阅读的基础一个阅读者要提出的四个基本问题 2、基础阅读(第一层)3、检视阅读(第二层)4、分析阅读(第三层) 二、阅读不同读物的方法三、阅读的最终目标1…...

Kafka数据同步原理详解
Kafka数据同步原理详解 Kafka是一种分布式的消息队列系统,它具有高吞吐量、可扩展性和分布式特性等优势。在Kafka中,数据按照主题进行分区,每个主题都有一组分区。每个分区都有自己的生产者和消费者,生产者负责向分区中写入消息&…...

C++课程总复习
一、c的第一条程序 1.cout cout >输出类对象,用来输出的,可以自动识别类型,所以不需要加格式符号 << 插入符(输出符号) endl 换行>\n #include <iostream> //#预处理 //include 包含 相应的头…...

数据结构—顺序表
目录 1.线性表 2.顺序表概念 3.实现顺序表 (1)声明结构体 (2)初始化 (3)打印数据 (4) 销毁 (5)尾插&头插 尾插 判断是否扩容 头插 (6)尾删&头删 尾删 头删 (7)指定位置插入元素 (8)删除指定位置元素 (9)查找指定元素位置 (10)修改指定位置元素 完整版…...

企业服务器租用对性能有什么要求呢?
企业租用服务器租用首要的是稳定,其次是安全,稳定是为了让企业的工作能够顺利进行,只有性能稳定的服务器才能保证网站之类的正常工作,就让小编带大家看一看有什么要求吧! 服务器简单介绍。服务器是在网络上为其它客户机…...

2731.移动机器人
2731. 移动机器人 - 力扣(LeetCode) 有一些机器人分布在一条无限长的数轴上,他们初始坐标用一个下标从 0 开始的整数数组 nums 表示。当你给机器人下达命令时,它们以每秒钟一单位的速度开始移动。 给你一个字符串 s ,…...

相交链表Java
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 nu11。 以下有两种解决方法: 一种是用Map,利用其key值唯一的方法去判断(也可以使用set,set在add时,已存在的元素会返回false,不存在的返回…...

第二章:OSI参考模型与TCP/IP模型
OSI参考模型与TCP/IP模型 一、OSI参考模型二、TCP/IP模型2.1 四层分法(书上)2.2 五层分法(实际厂商)2.3 数据封装和解封装2.3.1 封装2.3.2 解封装2.3.3 TCP/IP分层封装2.3.4 数据封装和解封装过程 一、OSI参考模型 1.物理层 定义电…...

知识图谱04——openGL与ubuntu22.04
跑图神经网络的时候遇到了如下问题 libGL error: failed to load driver: iris libGL error: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: 无法打开共享对象文件: 没有那个文件或目录 (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/li…...

如何看待为了省小钱而花费时间
相信每个人都会遇到这种情况:购买东西时想着货比三家或者想办法领优惠券、凑单等就可以省下一些钱,但是需要花费不少时间和精力。这时就开始犹豫了:省钱是必要的,需要居安思危,等到缺钱的时候不会后悔;又想…...