Blog

「抽象与加层解决一切」

软件逆向04

软件逆向

1. 基础概念 逆向分析 硬件分析 软件分析 系统逆向分析 代码逆向分析 软件分析: ![[Pasted image 20240603154423.png 450]] 程序控制流...

软件逆向03

编译、链接、装载与ELF文件

1. 基础 一个标准线程由线程 ID, 指令指针 PC, 寄存器集合, 堆栈组成 2. 广义编译 完整过程 预处理 gcc -E .cpp => .i cc1 处理 # 预编译指令 展开 #define 宏定义 处理 #ifdef 等 条件预编译指令 处理 ...

软件逆向02

系统调用

中断 中断具有两个属性,两者一一对应 中断号 中断处理程序 内核中存在一数组 中断向量表 ,保存中断号对应的中断处理程序位置 分类 软件中断 通常为一条指令带一个参数记录中断号,使用户可手动触发某个中断 由于中断号有限,因此仅使用少数几个中断号用以系统调用 Windows int 0x2e ...

English writing 01

英语写作练习

[!NOTE] chapter 1.1 - 1.2 文章结构 Structure The fig is symmetrical because many of the things you need to do in the Introduction are done — in reverse order — in the Discussion/Conclusion. ...

正则表达式

正则表达式

限定符 限定符 ? d? d出现0或1次 * d* d出现0或多于1次 + d+ ...

Git

git的基本使用

好久好久以前整理的,当时还在用幕布…. ADD add 添加文件到暂存区 git add 文件名1 文件名2 文件名3 git add . 所有改动的文件提交到暂存区 不会记录删除操作 git add –all 所有改动的文件提交到暂存区 会记录删除操作 生成公钥 ...

SQL

SQL语法

SQL语句 定义 DataBase 1 2 3 4 5 6 7 8 9 10 CREATE DATABASE dbname ON(content) LOG ON(content); DROP DATABASE dbname; ALTER DATABASE dbname MODIFY FILE(); ADD LOG FILE(); USE dbname...

Rust04

方法、函数与特征

方法 参数以self变体作为开始, 方法通过 . 进行调用. 1 2 3 4 5 6 7 impl StrutType{ // `&self` 是 `self: &Self` 的语法糖 fn <methodName>(& self)->ResType{} fn <methodName>(& mut self)->...

Rust03

进一步深入

07 迭代器 特点 惰性求值:迭代器不会立即计算其元素,而是在需要时才计算,这使得迭代器可以用于处理无限序列。例如,当调用 map() 或 filter() 方法时,并不会立即对集合进行转换或过滤,而是返回一个新的迭代器,只有当真正需要获取数据时,才会对数据进行转换或过滤。 消费性:在迭代器完成迭代后,它所迭代的集合将被消费,即集合的所有权被转移给迭代器,集合不能再被使用。 不...

Rust02

基本语法

语法 01数据类型 基本数据结构 integer isize,usize 65535u16 float f32,f64 默认f64 bool 值为 true,false char 4Byte大小,表示Unicode标量值, 使用'进行标识 复杂数据结构 单元类型 () 一个特殊的类型,通常用于表示没有有意义的值或者不返回任...