template for obsidian
tmux 2.3 及以上 [ 一、会话(Sessions)1.1 shell 下操控会话 操作 Shell 命令 新建会话 tmux [new -s 会话名 n 窗口名] 删除会话 tmux kill-session -t 会话名 恢复会话 tmux at [-t 会话名] 列出所有会话 tmux ls 关闭所有会话 tmux kill-server 1.2 tmux 中控制会话、切换会话 操作 Tmux 命令 会话重命名 :rename-session [新会话名] 新建会话 :new<回车> 离开(detach)当前会话 Ctrl+b d 列出所有会话 Ctrl+b s 重命名当前会话 Ctrl+b $ 前往上一个会话 Ctrl+b ( 前往下一个会话 Ctrl+b ) 预览会话及其从属的窗口 Ctrl+b w 前置命令(PREFIX CMD):Ctrl+b,在 Tmux 中,按下 Tmux 前置命令,然后输入相应的指令完成操作,有点类似于 vim 中使用 esc...
源码覆盖率统计
LibFuzzer使用的覆盖率统计工具为Source-based Code Coverage。另外两个clang实现的覆盖率统计实现: SanitizerCoverage: 低开销的工具。可以提供边级别的覆盖率统计; gcov: gcc兼容的覆盖率统计实现,基于DebugInfo。-ftest-coverage和--coverage workflow 编译附带覆盖率信息 运行插桩程序 创建覆盖率报告后面以下面的代码为例:ShowLineNumbers1234567891011% cat <<EOF > foo.cc#define BAR(x) ((x) || (x))template <typename T> void foo(T x) { for (unsigned I = 0; I < 10; ++I) { BAR(I); }}int main() { foo<int>(0); foo<float>(0); return...
Fuzz学习
正式开始Fuzz的学习之路,大概总结了一下,大概学习路线如下: 源码Fuzz gcc&clang等编译工具总结 ASAN, UBSAN, LSan,QASAN AFL++ HonggFuzz LibFuzzer学习笔记 LibAFL学习笔记 源码覆盖率统计 二进制Fuzz afl-qemu FirmAFL GreenHouse LibAFL-qemu TFuzz(加了符号执行,去除sanity check) 黑盒Fuzz Labrador EAGLEYE(接口识别) V8Fuzz Fuzzilli 内核Fuzz Syzkaller :sequence of syscalls TriforceLinuxSyscallFuzzer Unicorefuzz KAFL EQUAFL Pandawan Hypervisor Nyx Android Fuzz竞态条件 ...
LibFuzzer学习笔记
环境配置 Ubuntu 22.04安装源码:showLineNumbers123456789# Install git and get this tutorialsudo apt-get --yes install gitgit clone https://github.com/google/fuzzing.git fuzzing# Get fuzzer-test-suitegit clone https://github.com/google/fuzzer-test-suite.git FTS./fuzzing/tutorial/libFuzzer/install-deps.sh # Get deps./fuzzing/tutorial/libFuzzer/install-clang.sh # Get fresh clang binaries 验证:12clang++ -g -fsanitize=address,fuzzer fuzzing/tutorial/libFuzzer/fuzz_me.cc./a.out 2>&1 | grep...
GN以及Ninja基本语法
GN用于编译文件作配置定义 语法GN使用简单动态类型语言,涉及的变量类型为: Boolean (true, false) 64-bit signed integers Strings Lists Scopes (sort of like a dictionary, only for built-in stuff)完整的语法参考gn help grammar 字符串字符串有双引号包裹,使用反斜杠\转义,支持的反斜杠转义包括\", \$,\\。其他使用都不会进行转义$可以用于变量替换,可以用{}包裹。 123a = "mypath"b = "$a/foo.cc" # b -> "mypath/foo.cc"c = "foo${a}bar.cc" # c -> "foomypathbar.cc" 可以使用$0xFF语法表示8bit的数值。 列表列表支持append操作: 1234a = ["first"]a...
OpenHarmony浅析
阅读下OpenHarmony的gitee仓库 组件成分系统架构内核层、系统服务层、框架层、应用层 内核层内核层包括内核子系统与驱动子系统,内核子系统包括Linux kernel和lite os,Linux Kernel为标准全量系统;lite os为RTOS系统,分为轻量系统和小型系统,轻量系统适合硬件资源极其有限的硬件设备(ARM Cortex-M),,小型系统则介于标准系统与轻量系统之间(ARM...
OpenHarmony编译
学习一波,之前搞过hi3861开发板的oh源码编译,不过那个是轻量系统liteos-m,看看全量编译是什么情况。 环境 Ubuntu 20.04虚拟机 已配置gitee ssh公钥 sudo dpkg-reconfigure dash切换shell为bash 安装依赖1sudo apt-get update; sudo apt-get install binutils; sudo apt-get install binutils-dev; sudo apt-get install git; sudo apt-get install git-lfs; sudo apt-get install gnupg; sudo apt-get install flex; sudo apt-get install bison; sudo apt-get install gperf; sudo apt-get install build-essential; sudo apt-get install zip; sudo apt-get install curl; sudo apt-get...
Hi3861 OTA功能介绍
StashRecvDataToBuffer函数功能分析函数功能概述StashRecvDataToBuffer函数是OTA升级过程中的核心数据存储函数,负责将接收到的升级数据缓存到内存或写入到存储设备的HAL层。 函数签名1static int StashRecvDataToBuffer(unsigned char *buffer, unsigned int startAddr, unsigned int endAddr) 参数说明 buffer: 要存储的数据缓冲区 startAddr: 数据的起始地址(相对于当前组件的偏移) endAddr: 数据的结束地址(相对于当前组件的偏移) 函数执行流程1. 信息组件处理分支123456if (g_currentDloadComp.isInfoComp) { if (CopyToDloadCompBuffer(buffer, (endAddr - startAddr)) != OHOS_SUCCESS) { printf("StashRecvDataToBuffer...
CVE-2021-37975复现
CVE-2021-37975复现环境配置 v8源码 tag: 9.4.146.16 depot_tools 修改depot_tools python版本为<3.10(python3_bin_reldir.txt) 漏洞背景知识CVE-2021-37975 是产生在V8 GC模块的UAF漏洞,利用堆喷可以在原地址申请一个对象,新对象跟释放对象的类型不一致,可以造成类型混淆,从而实现利用。 WeakMapjs中的WeakMap不支持迭代以及key(),values()和entries()方法,只有以下方法: weakMap.get(key) weakMap.set(key, value) weakMap.delete(key) weakMap.has(key)也就是说,想要获取value,只能通过get方法,传入key获取。当key被delete时,value无法被访问。在GC过程中,当weakMap的key能被访问时,value也能被访问,即key, value都为黑色。当delete后,两者都为白色。 四种数据结构 next_ephemerons: 当(key,...
CVE-2021-3449漏洞原理分析与复现
CVE-2021-3449空指针引用漏洞原理分析漏洞描述该漏洞为公开漏洞,漏洞编号为CVE-2021-3449,漏洞类型为空指针引用漏洞,存在于OpenSSL的1.1.1-1.1.1j版本,包含11.1.4目标PA设备中的开源组件OpenSSL版本1.1.1g。官方描述信息如下: 漏洞原理当TLS 1.2服务器在重新协商时,若客户端发送的ClientHello消息省略了初始握手存在的signature_algorithms扩展,但包含signature_algorithms_cert扩展,会触发空指针解引用,导致服务崩溃(拒绝服务攻击)。 发送恶意ClientHello请求后,在下图代码1732行tls1_lookup_sigalg函数位置发生空指针引用漏洞,其中由于signature_algorithms被省略,导致ptmp指针为空,出现空指针引用漏洞。 漏洞验证当建立renegotiation信息时,存在空指针引用漏洞。验证漏洞POC报文如下: 发送POC,测试程序ASAN检测到空指针引用错误,产生崩溃时的函数调用链如下图:
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)