# LIAN莲花系统
**Repository Path**: fdu-ssr/lian
## Basic Information
- **Project Name**: LIAN莲花系统
- **Description**: 莲花系统是复旦大学自主研发的多语言、高精度程序安全分析框架
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 16
- **Forks**: 2
- **Created**: 2025-04-13
- **Last Updated**: 2026-03-29
## Categories & Tags
**Categories**: security-dev
**Tags**: None
## README
# 莲花Lian程序分析框架
莲花Lian系统是新一代面向多语言场景的高精度程序分析框架,旨在为多种语言提供统一的、强大的程序分析能力,包括指针分析、数据流分析、污点分析等。
## 背景
程序分析是安全领域基石性技术。针对主流静态语言(如 C/C++ 和 Java)的程序分析工具已经非常的成熟和强大。但是面向当前多样化的编程语言生态,程序分析的能力依然非常缺乏,严重影响软件安全性和可靠性的分析和加强。
很多编程语言已经非常流行。例如,Python在人工智能与数据工程领域占据主导地位;TypeScript在2025年已跃居GitHub语言流行度第一,它和JavaScript支撑着Web与跨平台应用开发;Go和Rust在云服务和系统编程中发挥重要作用。但是,到目前为止,传统工具在适配支持这些语言时往往存在以下问题:
- **语言绑定严重**:分析逻辑与特定语言(如 C/C++ 和 Java)的语法、类型系统深度耦合,支持新语言需推倒重来
- **动态行为失效**:分析算法非常依赖稳定的对象布局和类型声明,在处理无类型、动态对象演化时,要么过度近似,要么计算爆炸
## 统一程序分析
尽管语言语法千差万别,但在底层执行逻辑上,程序行为都可以规约为通用的语义操作,并进行统一的程序分析。
- **通用中间语言GIR (Generic IR)**:简洁、通用,既可支持静态类型语言,也可支持动态类型语言;仅需~1600行代码,即可将任一门语言翻译为GIR;
- **统一程序分析**:在GIR层上,实现高精度指针分析、数据流分析、污点分析;
- **兼顾语言差异性**:通过插件机制,支持自定义插件,为语言特性提供支持。
## 特点
* **源码输入**:支持源代码分析,无需编译器参与;
* **多语言支持**:支持Python、JavaScript、Java、TypeScript、Go等静态和动态语言;
* **指针级高精度**:实现流敏感(Flow-sensitive)和上下文敏感(Context-sensitive)的指针分析;
* **动态语义建模**:支持对原型链、高阶函数、动态属性解析的分析;
* **安全导向**:提供强大的污点分析引擎,方便快速构建漏洞挖掘工具。
## 使用
### 系统要求
* Linux 环境
* Python 3.10+
### 安装
克隆仓库:
```shell
$ git clone https://github.com/yang-guangliang/lian.git
$ cd lian
```
安装依赖:
```shell
$ pip install -r requirements.txt
```
### 运行
Lian 支持可视化界面与命令行两种模式:
**1. 启动可视化工具:**
```shell
$ ./scripts/lian-ui.sh
```

**2. 命令行直接分析:**
```shell
$ ./scripts/lian.sh -l
```
## 文档与支持
## 文档和支持
更多技术细节,请参考[中文文档](https://yian-lang.net/lian/cn/)。我们也提供了[程序分析讲义](https://yian-lang.net/lian/cn/02.background/2-1.basics/)(共四章,包括基础、数据流、指针分析、污点分析),供参考。
欢迎通过[Issues](https://gitee.com/fdu-ssr/lian/issues)提交反馈和建议!
## 项目状态
Lian是一个活跃的、研究驱动项目,由[复旦大学SSR(系统安全与可靠性)研究组](https://yian-lang.net/guangliang)独立开发。我们致力于构建一个通用、可扩展、高精度的程序安全分析基础设施。
如有问题,也欢迎直接联系作者杨广亮: yanggl at fudan.edu.cn