22408备考经验贴
虽然之前说不把经验贴放上去,想了想还是放上来了,毕竟我感觉我考研的时候做的笔记还是比较有含金量的,对着考纲纯手打的,特别是408方面,就算你不考研其实多看看也挺有意义的😂 经验贴: https://zhuanlan.zhihu.com/p/1890507952798025542 我备考时的笔记: 高数笔记:https://www.mubu.com/…
新生Lab-2 安卓静态程序分析
背景 简介 Soot 最初由麦吉尔大学的 Sable 研究小组开发。关于 Soot 的第一篇论文发表于 1999 年的 CASCON 大会。自那时起,Soot 得到了来自研究界内外众多人士的贡献。目前,Soot 的维护工作由帕德博恩大学 Heinz Nixdorf 研究所的 Eric Bodden 软件工程小组负责。 Soot 将程序转换为IR,这…
从零开始的H2 JDBC url bypass之旅
JDBC简介 JDBC(Java Database Connectivity)是 Java 语言中访问数据库的标准 API,它允许我们通过统一的方式连接各种数据库(如 MySQL、PostgreSQL、SQLite、Oracle、H2 等),执行 SQL 查询和更新数据。 核心流程是: 加载数据库驱动 建立数据库连接(Connection) 创建执…
新生Lab-1 逆向分析+程序分析基础
安卓基础知识 安卓系统架构 Android 是一个由 Google 主导开发的 基于 Linux 内核的开源操作系统,最初是为移动设备(如智能手机和平板电脑)设计的,现在也被广泛用于 智能电视、可穿戴设备、汽车系统(Android Auto)、IoT设备等。 Android系统架构共分四层,从下往上分别是:Linux内核层、系统运行库层(程序库+a…
RAG技术简单入门
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了信息检索和生成式AI的技术框架,常用于问答系统、智能分析、知识驱动对话等应用场景。 传统的大语言模型(LLM)如 ChatGPT,知识固定在训练数据中,一旦训练完成,其知识不能实时更新。RAG 技术通过在推理时引入外部知识库,解决了这一问题。RAG 是一…
Tai-e Lab-作业 1:活跃变量分析和迭代求解器
环境配置 这里我使用的是教学版,Tai-e的实验作业去github下一份就行了:https://github.com/pascal-lab/Tai-e-assignments,因为Tai-e是用 Gradle 构建的,所以每个作业也符合 Gradle 的基本结构: build.gradle.kts,gradlew,gradlew.bat,gradl…
[读论文 ISSTA ’23]Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics
前言 比起啃代码,感觉还是啃论文舒服点,之前学习了南京大学李樾老师和谭添老师主讲的软件分析课程,对我的帮助很大,这里就来学习一下两位老师的代表作,这篇最初的关于Tai-e的论文。 背景 两位老师这篇论文翻译过来叫做:《利用经典优秀设计的Java开发人员友好型静态分析框架》,从标题也可以看出来,Soot的核心创新点其实就是它是一个开发者友好的静态分析…
CodeQL入门
前言 CodeQL 是 GitHub(实际上是Github收购的)推出的一种代码分析引擎和查询语言,用于查找软件中的漏洞和安全问题。它的核心理念是将代码表示成一种可以查询的数据库结构,开发者或研究人员可以像查询数据库一样查询代码的结构和行为,简单来说就是一种可以通过编写 QL 制定规则的静态分析工具(SAST)。 我自己也勉强算是搞SAST的,所以…