• Rust学习笔记 05:所有权与借用

    对应代码文件:src/bin/05_ownership_borrowing.rs 运行命令: 1cargo run --bin lesson05_ownership_borrowing 学习目标本篇系统整理 Rust 最核心、也最容易让初学者卡住的机制:所有权 ownership、移动 move、不可变借用 immutable borrowing、可变借用 mutable borrowing、Copy 类型和资源自动释放。 学完这一节后,你应该能够: 判断一个值在赋值、传参、返回时是否发生所有权移动。 理...
  • Rust学习笔记 04:流程控制

    对应代码文件:src/bin/04_control_flow.rs 运行命令: 1cargo run --bin lesson04_control_flow 学习目标本节讲 Rust 的条件分支和循环。流程控制决定程序在不同条件下执行哪段代码。 if 在 Rust 中是表达式,可以返回值。循环也可以通过 break value 把值交给外部变量。 掌握 if、else if、else。 理解 if 表达式两边必须返回同一类型。 掌握 loop、while、for 的区别。 会用 break、continu...
  • Rust学习笔记 03:函数与作用域

    对应代码文件:src/bin/03_functions_scope.rs 运行命令: 1cargo run --bin lesson03_functions_scope 学习目标本节讲函数定义、参数、返回值、表达式和作用域。函数是组织 Rust 程序的基本单位。 Rust 的作用域规则非常重要。变量何时可见、何时释放资源,都由作用域决定。 掌握 fn 的基本写法。 知道函数参数必须写类型。 理解表达式和语句的区别。 理解块作用域如何影响变量生命周期。 核心概念速查 术语 基本意思 本节用途 函...
  • Rust学习笔记 02:数据类型

    对应代码文件:src/bin/02_data_types.rs 运行命令: 1cargo run --bin lesson02_data_types 学习目标本节整理 Rust 的标量类型和复合类型。类型决定一个值能保存什么数据,也决定它能参与哪些运算。 Rust 通常能自动推断类型,但在解析字符串、处理空集合、或多个类型都可能成立时,需要你显式标注。 区分标量类型和复合类型。 掌握整数、浮点数、布尔值、字符的基本用法。 会使用元组和数组保存多个值。 知道类型标注在什么情况下是必要的。 核心概念速查 ...
  • Rust学习笔记 01:变量和可变性

    对应代码文件:src/bin/01_variables_mutability.rs 运行命令: 1cargo run --bin lesson01_variables_mutability 学习目标本节讲清楚 Rust 变量的默认规则:变量默认不可变,需要修改时显式写 mut。 这些规则不是语法限制那么简单。它们让编译器能提前发现意外修改,也为后续所有权、借用和并发安全打基础。 理解 let 创建绑定,而不是简单等同于其他语言里的赋值。 区分不可变变量、可变变量、shadowing 和常量。 知道什么时候...
  • FortiToken Mobile AES/TOTP 逆向与复现

    FortiToken Mobile 的 OTP 生成最终落在 OATH HOTP/TOTP 标准上,区别在于 seed 的注册、存储和设备绑定方式。逆向过程可以分成两条路线:一条从 activation code 进入移动端注册协议,另一条从已经激活的 Android 应用中还原本地 encrypted seed。 所有 seed、activation code、SSAID、UUID 和 serial 都属于 MFA 凭据材料,只应在自有设备或授权测试环境中处理。 1. 机制概览Fortinet 将...
  • CVE-2024-21762:FortiGate SSL-VPN sslvpnd 越界写复现

    CVE-2024-21762 是 FortiOS / FortiProxy SSL-VPN 请求解析链中的 out-of-bounds write。公开补丁研究将问题定位到 HTTP chunked Transfer-Encoding 处理逻辑。 复现主线是提取 FortiOS 7.2.5 与 7.2.7 的 /bin/init,从 HTTP 解析字符串定位目标函数,再还原补丁新增的两个长度边界。以下过程面向隔离的授权环境,不包含可直接触发 RCE 或进程崩溃的完整请求。 1. 版本与环境Forti...
13456710