
二进制分析与安全
文章平均质量分 84
分享Linux相关的系统安全知识
SGchi
talk is cheap,show me the code.
展开
-
硬件安全漏洞 -- Retpoline 一种分支目标注入的缓解措施
继续Meltdown && Spectre安全漏洞的相关分析,本文关注V2 patch中引入的retpoline技术。原创 2023-12-19 16:43:35 · 1507 阅读 · 0 评论 -
硬件安全漏洞 -- Meltdown复现及原理分析
操作系统最核心的一个特性是内存隔离,即操作系统要确保用户程序不能访问彼此的内存。而CPU熔断漏洞巧妙地利用了现代处理器中乱序执行的副作用进行侧信道攻击,破坏了机遇地址空间隔离的安全机制,使得用户态程序可以读出内核空间的数据,包括个人私有数据和密码等。原创 2024-01-21 16:42:13 · 1756 阅读 · 0 评论 -
硬件安全漏洞 -- Spectre && Meltdown 介绍
Spectre和Meltdown是缓冲时延旁路攻击的两种实际攻击方法。由于CACHE的存在,CPU对于不同外存的地址访问速度会有差异,这本身就是一种“边带信息”。对这种边带信息的一种利用方式就是:首先清空CACHE;使用内存当中某个地址所存储的字节的值(这个值就是我所感兴趣、但又不被允许访问的,比如内核其他保护区域中)作为下标来读一个我可以访问的数组,这相当于预取了CACHE;然后测试这个数组所有地址的访问速度,就可以猜出我感兴趣的这个值来。原创 2023-12-19 15:10:38 · 1402 阅读 · 0 评论 -
硬件安全漏洞
2018年1月曝光的两个处理器高危漏洞——Meltdown和Spectre震惊了整个计算机行业。攻击者可以绕过内存访问的安全隔离机制,使用恶意程序来获取操作系统和其他程序的被保护数据,造成内存敏感信息泄露。这些漏洞源于现代CPU的一种称为“推测执行”的性能特性,而缓解这些漏洞需要历史上最大规模的补丁协调工作,涉及CPU制造商、设备制造商和操作系统供应商。原创 2024-07-17 11:48:10 · 579 阅读 · 0 评论 -
Intel SGX 概述 --潦草笔记
SGX是Intel开发的新的处理器技术,可以在计算平台上提供一个可信的空间,保障用户关键代码和数据的机密性和完整性。SGX全称Intel Software Guard Extensions,顾名思义,其是对因特尔体系(IA)的一个扩展,用于增强软件的安全性。SGX是Intel开发的新的处理器技术,可以在计算平台上提供一个可信的空间,保障用户关键代码和数据的机密性和完整性。原创 2024-02-26 14:42:05 · 2533 阅读 · 0 评论 -
Linux hook系统调用使你文件无法删除
hook技术在Linux系统安全领域有着广泛的应用,例如通过hook技术可以劫持删除文件的系统调用,从而使用户无法删除特定文件,也可以实现对系统网络,文件,进程等的监控。hook技术即钩子函数,钩子的本质是一段用以处理系统消息的程序,。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息(如屏幕取词,监视日志,截获键盘/鼠标输入等),也可以不作处理而继续传递该消息,还可以强制结束消息的传递。原创 2024-03-19 15:18:56 · 1358 阅读 · 1 评论 -
Linux 内核指令动态替换
Linux Kernel可以在运行时动态的(即不需要重启)替换内核指令,主要有以下三种方式。原创 2024-01-15 16:35:09 · 607 阅读 · 0 评论 -
Linux Static Key原理与应用
内核中有很多判断条件在正常情况下的结果都是固定的,除非极其罕见的场景才会改变,通常单个的这种判断的代价很低可以忽略,但是如果这种判断数量巨大且被频繁执行,那就会带来性能损失了。原创 2023-09-15 16:12:23 · 766 阅读 · 0 评论 -
Intel x86_64 LBR功能
通过CPUID指令读取处理器的各种标识和特性信息,判断是否支持硬件调试功能,rdmsrwrmsr指令是否可用;通过wrmsr指令设置寄存器,开启LBR功能;通过rdmsr指令读取寄存器,获取跳转指令信息;下面我们将对这几个方能进行更加详细的介绍。该指令可以从读取处理器的各种标识和特性信息(比如:CPU型号和支持的功能),并将指令执行完后返回的信息保存在 EAX, EBX, ECX,和 EDX 寄存器中。CPUID指令有两组功能:一组返回的是基本信息,另一组返回的是扩展信息。原创 2023-11-10 14:07:40 · 461 阅读 · 0 评论 -
Intel x86 分支记录
X86 处理器支持最近分支记录(Last branch record),也就是记录CPU的跳转记录(jmp,jcc,call,ret等指令,中断和异常). 通过操作MSR寄存器(model specific register)来配置分支记录功能。原创 2023-11-13 17:26:43 · 287 阅读 · 0 评论 -
Linux 隐藏进程
这种方式属于DKoM(Direct Kernel Object Manipulation)攻击方式了,即直接内核对象操作技术。关于第一种hook方式可以参考上一篇文章。最后推荐一个rootkit工具。原创 2023-10-09 17:55:00 · 1573 阅读 · 0 评论 -
Linux LD_PRELOAD Hook
loader在进行动态链接的时候,会将有相同符号名的符号覆盖成LD_PRELOAD指定的so文件中的符号。换句话说,可以用我们自己的so库中的函数替换原来库里有的函数,从而达到hook的目的。但是LD_PRELOAD有个限制:只能hook动态链接的库,对静态链接的库无效,因为静态链接的代码都写到可执行文件里了嘛,没有坑让你填。使用PRE_LOAD劫持库函数的这种做法可以做很多事情,比如劫持随机函数random, random_r等,使得看起来是公平的摇号程序可以自如地由自己控制;原创 2023-10-09 16:37:36 · 717 阅读 · 0 评论 -
Capstone 反汇编引擎
介绍了capstone反汇编引擎的用法Capstone 是一个轻量级的多平台、多架构的反汇编框架,用纯 C 语言实现。可以说它是如今世界上最优秀的反汇编引擎,IDA,Radare2,Qemu等著名项目都使用了Capstone Engine,所以选择它来开发是一个不错的选择。原创 2023-09-08 16:34:13 · 762 阅读 · 0 评论 -
Linux ELF二进制格式
ELF(Executable and Linkable Format)即可执行的和可链接的格式。出于方便性和效率考虑,ELF文件提供了两种并行视图,即链接视图,执行视图。原创 2023-08-18 16:21:51 · 461 阅读 · 0 评论