0x7Fancy

Home / Tags / Archives / Reviews / About

Home

机器学习的逻辑回归模型

(2025.02.26) 机器学习/LLM
在「机器学习的线性回归模型」文章中,我们学习了监督学习中如何使用线性回归模型拟合连续的数据集,而本文将要学习监督学习的另一大场景:分类,用于拟合离散的数据集。

同样推荐吴恩达老师在 Coursera 平台(https://www.coursera.org/)推出的《机器学习》在线课程(https://www.coursera.org/learn/machine-learning); 本文将以该课程内容为主体大纲,从线性回归模型拓展到逻辑回归模型,并学习逻辑回归模型的实现,以个人的理解梳理知识框架,作为学习笔记。


机器学习的线性回归模型

(2025.02.20) 机器学习/LLM
跟随着 ChatGPT 等大语言模型掀起的人工智能的浪潮,在这个时间点学习 AI 技术是一个绝佳的机会;但 AI 技术发展历史悠久,大语言模型也是由更为基础的技术更新、迭代、融合而产生,对于初学者而言,从机器学习开始入门无疑是一个不错的选择。

对于机器学习入门而言,吴恩达老师在 Coursera 平台(https://www.coursera.org/)推出的《机器学习》在线课程(https://www.coursera.org/learn/machine-learning)广受好评;本文将以该课程内容为主体大纲,对机器学习中最基础的线性回归模型进行学习,了解机器学习的概念和线性回归模型的实现,并以个人的理解梳理知识框架,作为学习笔记。


LLM检索增强生成(RAG)的基本原理和实现

(2025.02.17) LLM
随着 LLM (Large Language Model)技术的快速发展,智能聊天机器人和自然语言处理(NLP)领域也上升到了一个新的高度,计算机可以「理解」人类的书写和说话方式,并依靠模型内部的知识解答问题;伴随着 Meta AI 的研究人员提出的检索增强生成(RAG)技术,即不用训练就可以扩展模型的知识储备,为基于 LLM 构建定制化的知识库提供了可行的方案。

本文就检索增强生成技术的基本原理进行介绍,并使用代码演示 RAG 技术在构建知识库方面的应用实施。


CodeQL入门和基本使用

(2024.10.08) 代码审计
CodeQL 是 GitHub 推出的一种静态代码分析工具,用于查找和修复代码中的漏洞和安全问题。该工具最早由 Semmle 团队开发并命名为 Semmle QL,应用于自家的源代码分析平台 LGTM(Looks Good To Me) 上;2020年,Github 收购了 Semmle 团队并成立了 Security Lab,整合 Semmle 团队的技术能力后推出了 CodeQL 工具,随后 CodeQL 成为了 Github 安全生态中的一个重要组成部分。

目前 CodeQL 已经成为静态代码分析的代表性工具,其关键的核心思想是将源代码按照语义进行解析并存储于数据库中,随即用户可以像对待数据一样查询代码,从而通过编写查询语句从代码中发现安全问题;因此 CodeQL(Code Query Language)整体看起来有点像 SQL(Structured Query Language)。

本文将介绍 CodeQL 的基本概念,结合官方教程学习基础的使用方法,并以 Python 为例演示 CodeQL 在具体编程语言方面的应用。


使用Peach进行基于变异和生成的fuzzing

(2024.08.28) fuzzing
Peach 是一个于 2004 年开发的模糊测试框架(SmartFuzzer),能够执行基于生成和变异的模糊测试。其核心思路在于其内部的 PeachPit 变异引擎,安全研究员可通过 xml 描述目标文档的详细格式(pit文件),在随后的 fuzzing 过程中引导变异数据的生成;相比于使用 afl/afl++ 进行常规化的 fuzzing,使用 Peach 能够生成更规范的变异数据,从而在一定程度上提高覆盖率。

Peach 项目目前有接近 20 年的发展历史;Peach2.0 使用 Python 进行开发并于 2007 年夏开源发布,其功能包括进程监控和使用 XML 创建模糊测试器;Peach3.0 使用了 Microsoft .NET Framework(C#) 完整重写了项目,并使用 Mono 实现了跨平台支持,于 2013 年初发布;直到 2020 年,Peach Fuzzer Professional v4 被 GitLab 收购并成为 GitLab 生态圈的一部分。

本文将简单介绍 Peach 的功能,通过实验的方式理解 Peach 的核心思路和基本使用方法;由于 Peach4.0 部分功能被修改用于适配 GitLab,同时该项目目前处于停止维护的状态,所以本文将以 Peach3.0 作为实验环境。


通过QEMU模拟运行ARM程序

(2024.08.07) 逆向分析
QEMU(Quick Emulator)是一款免费开源的模拟器和虚拟机,其能够像常规虚拟机一样配合 CPU 硬件进行虚拟化运行,同时还能在软件层面上实现跨架构的模拟运行;QEMU 提供了两种运行模式:系统模式支持对计算机的硬件设备进行模拟以实现操作系统的虚拟化运行,用户模式以二进制指令翻译的方式实现进程级别的模拟运行。

在日常工作中偶尔会遇到针对跨架构程序的运行、调试和分析,这就需要借助 QEMU 来进行;本文将以 x86 的宿主机环境 + ARM 的虚拟机环境为例,以 focal-server-cloudimg-arm64.img 镜像为样例,逐步介绍 QEMU 跨架构程序模拟运行的基本思路和操作方法。


基于树莓派DIY制作电子相框

(2024.05.22) 其他
最近家里拍摄的照片越来越多,但没有一个良好的展示的方式,通常冲洗照片可能还需要照片墙或者相册,这样也挺麻烦的,所以考虑 DIY 制作一个电子相框用来滚动播放,正巧家里还有一块闲置的树莓派 zero,本文就次进行记录。


调用ELF文件任意函数的几种方式

(2024.05.07) 开发/逆向分析
动态链接库是一种把共享的代码制作为公共的库文件,以减少软件的冗余存储占用以及提高运行效率的软件开发优化方案,如 Linux 下的动态链接库(Shared Object) .so 文件,根据设计开发人员可以通过调用动态链接库的导出函数,快速实现业务功能。

Linux 下常见的可执行文件 ELF 格式包括:二进制程序(EXEC)、动态链接库(so)、静态链接库(a)、内核模块(ko)、等等,那么这些格式是否可以像动态链接库的函数一样被外部所调用,从而在闭源情况下实现对软件的二次开发,或者用于辅助逆向分析呢?本文就此进行探讨和实现。


xz-utils后门代码分析

(2024.04.22) 逆向分析/恶意软件
xz-utils 是一种使用 LZMA 算法的数据压缩/解压工具,文件后缀名通常为 *.xz,是 Linux 下广泛使用的压缩格式之一。

2024.03.29 由微软工程师 Andres Freund 披露了开源项目 xz-utils 存在的后门漏洞,漏洞编号为 CVE-2024-3094,其通过供应链攻击的方式劫持 sshd 服务的身份认证逻辑,从而实现认证绕过和远程命令执行,该后门涉及 liblzma.so 版本为 5.6.0 和 5.6.1,影响范围包括 Debian、Ubuntu、Fedora、CentOS、RedHat、OpenSUSE 等多个主流 Linux 发行版,具体影响版本主要是以上发行版的测试版本和实验版本。

截止本文发布,距离 xz-utils 后门披露已经过去三个星期了,全球安全研究人员在互联网上发布了大量的高质量分析报告,这帮助我们对 xz-utils 后门事件进行详尽的理解。本文将从这些分析报告出发,对其进行翻译、整理和复现,并围绕着 xz-utils 后门代码部分进行分析研究,了解攻击者的技术方案和实施细节,从而在防御角度提供一定的技术支持。


afl语法变异插件Grammar-Mutator的基本使用

(2024.01.09) fuzzing
变异算法是 fuzzing 中非常重要的一个环节,良好的变异算法能产出较高的路径覆盖率,从而提高发现 crash 的概率;afl/afl++ 默认提供的变异算法在通用情况下表现优秀,但对于格式要求严格的数据则显得无能为力,基于语法的变异是一种优秀的变异算法优化方案,并具有良好的普适性,安全研究人员通过对理解数据格式编写对应的语法树生成器,从而可以准确的生成符合要求的数据,极大的提高路径覆盖率。

最近工作中和同事 @ghost461 一起研究学习 afl++ 的语法变异插件 Grammar-Mutator,本文对此进行梳理,并详细介绍 Grammar-Mutator 的使用和基本原理。

»>more papers