> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xray.cool/llms.txt
> Use this file to discover all available pages before exploring further.

# ChangeLog

> xpoc的更新日志

## 0.1.0（2024-07-19）

### 更新日志

**注意**：本次升级涉及较大配置文件变动。推荐在备份好原配置文件后删除旧文件，并根据新的 example 配置文件重新编写配置。如果未进行变更，系统会将配置文件进行备份，使用默认配置进行扫描。

#### 修复问题

1. **修复 Ctrl-C 无法中断扫描的问题**：
   * 修复了在扫描过程中按 Ctrl-C 无法中断操作的问题，提升用户体验。

#### 优化改进

1. **优化 debug 输出内容**：
   * 改进了调试信息的输出格式，使信息更加明确和美观，便于调试和排查问题。

2. **提高扫描性能，降低内存占用**：
   * 修复 go html 库的 maxbuf 配置未导出导致的可能存在的内存溢出问题。
   * 为响应数据的图标和标题增加了缓存机制，提升处理效率。
   * 增加 HTML 解析的最大长度限制，防止解析过长数据导致的问题。
   * 修复上游正则库中的垃圾回收（GC）问题，提升系统稳定性。
   * 优化插件执行效率，使扫描过程更为高效。
   * 优化缓存机制，减少内存使用量。

#### 新增功能

1. **新增 example 配置文件，减少非常用配置变更带来的冲突问题**：
   * 新版本 xray 2.0 系列工具会创建一个 example 文件，不再创建默认配置文件。用户可以复制 example 文件并去掉 example 后缀，然后修改其中内容。

2. **YAML 插件变化**：
   * 新增 `print` 函数：方便在调试场景下打印信息。
   * 新增 `uuid` 函数：支持生成随机的 UUID。
   * 新增 `format` 函数：支持格式化字符串，可以通过指定对齐字符、前缀和步进参数来调整字符串的显示样式。
   * 新增 `bload` 函数：支持将字符串数据按照特定编码规则转换为字节序列。
   * 新增 `gzip` 函数：支持对字符串或字节序列数据进行 GZIP 压缩。
   * 新增 `decToHex` 函数：支持将十进制转换为十六进制。
   * 在 YAML 插件中，定义变量时，下划线开头的变量将不会输出：
     * 这样在输出时，JSON 中不会包含某些不希望输出的变量值。
   * 增强 YAML 插件的鲁棒性，支持在函数中填写不同数据类型。所有只能填写字符串或字节的数据项，两者都可以填写，不再报错。
   * 支持函数调用和方法调用两种方式，即 `func(v1,v2)` 和 `v1.func(v2)` 均可，不再报错。
   * 修复 `icon` 函数，使其行为逻辑与 `getIconContent` 函数保持一致。
   * udp/tcp的request支持获取addrType类型的参数

3. **支持在未配置的情况下调用 dnslog.cn 进行漏洞检测**：
   * 新增对 dnslog.cn 的支持，即使未进行相关配置也能使用该服务进行漏洞检测。

#### 其他改进

1. **修复缓存和不合理的超时配置导致的扫描结果不稳定问题**：
   * 改进缓存机制和超时配置，解决因配置不当导致的扫描结果不稳定问题。

2. **为 group 命令添加 path 约定**：
   * 为 `group` 命令添加路径约定，以便使用 `group` 文件的相对路径。在 `group` 中使用 `{{path}}` 将用 `group` 文件本身的路径替换该内容。

3. **新特性：多目标输入支持多个 -t 参数**：
   * 取消多目标输入时使用逗号分隔的方式，改为支持以多个 `-t` 输入多个目标，因为 URL 中可能存在逗号，避免冲突。

## 0.0.8（2023-08-11）

### 新增特性

1. 新增QPS参数配置

### 修复与优化

1. 修复反连平台存在的问题
2. 优化服务识别结果展示
3. 修复yaml插件超时相关配置不生效的问题
4. 优化list命令，缩短md5展示长度

## 0.0.7（2023-06-21）

### 新增特性

支持在配置文件中配置自定义的全局header

例如：

```
  http-client:
    # ↱自定义全局http请求头: 为发出的所有数据包带上指定的自定义请求头
    headers: {
      test: test
    }
```

## 0.0.6（2023-06-16）

### 问题修复

修复list等命令报错的问题

## 0.0.5（2023-06-16）

### 新增特性

1. 新增对多种目标文件格式的支持：

   `-i` 参数支持自动识别文件类型并提取扫描目标

   * 支持 `CSV` / `Excel` 格式自动提取扫描目标
   * 支持将任意文件视为文本提取扫描目标
   * 支持对 `zip` 包中的文件自动识别扫描目标（识别其中可解析的 `文本/CSV/Excel` 格式）。

   例：

   ```bash theme={null}
   xpoc -i target.txt
   xpoc -i target.csv
   xpoc -i target.xlsx
   xpoc -i target.zip
   ```

2. 简化升级命令，执行  `xpoc up`  即可升级到最新版本，升级自身时也会同步更新插件。

3. 添加默认的扫描端口： `80,443,8080,8443,8888,8000,9090`

   输入目标为IP或域名且未指定扫描端口时会进行对这些端口的探测。
   （需删除当前配置文件，重新新生成配置后生效）默认端口可在配置文件中通过tcp\_ports参数编辑。

4. 降低默认的指纹识别强度，加快扫描进度。

   （需删除当前配置文件，重新新生成配置后生效）默认的指纹识别强度可在配置文件中通过max\_rarity参数编辑。

### 修复与优化

1. 优化策略文件加载，自定义策略自动继承全局命令行配置。

2. 修复目标文件中存在空行会解析错误的问题。

## 0.0.4（2023-05-30）

### 新增特性

1. 新增-v参数，可以打印当前情况下会执行的插件，可用于检查策略是否符合预期。

   例：`xpoc -v` 可打印默认策略下会执行的扫描插件。

2. 优化命令行体验，可在任意位置使用-h,-help参数打印帮助信息。

3. 优化命令行体验，目标可以在参数之前输入，多个目标可用空格或','进行分割。

   例：`xpoc testtest.fun -p 80,443`

### 修复与优化

* 优化升级检查功能
* 修复调度引擎中的问题
* 升级YAML PoC引擎

## 0.0.3（2023-05-25）

### 新增特性

简化默认参数和部分命令的使用

* `xpoc -t example.com` 可简化为 `xpoc example.com`
* `xpoc add -f ./myplugin.yaml` 可简化为 `xpoc add ./myplugin.yaml`
* `xpoc pull -id pluginID` 可简化为 `xpoc pull pluginID`

注意：需要删除当前配置文件，重新启动，自动生成新配置后方可生效

或在配置文件 “flag” 配置中，对希望缺省的参数值手工添加“,default”配置，如

```yaml theme={null}
    util-target-split:
        required_targets: t,default
```

### Tips

* 默认的配置文件位于 `$HOME/.xray/xpoc-config.yaml`
* -c 参数用于指定特定的配置文件

## 0.0.2（2023-05-24）

### 1. 新增特性

* add 命令支持glob语法，可以通过xpoc add -f ./plugin-path 的方式添加插件到插件仓库中，默认条件下会自动加载执行
* -r (-run) 参数支持glob语法，可通过glob语法过滤插件
* 域名目标支持通过-p参数指定端口扫描
* 新增get404Path函数，详情请见[函数介绍](https://docs.xray.cool/#/guide/poc/example/http/get404path)

### 2. 修复问题

* 结果导出选项提示错误的问题，使用-o result.json 或-o result.html 即可导出对应格式的报告。[#2](https://github.com/chaitin/xpoc/issues/2)
  [#3](https://github.com/chaitin/xpoc/issues/3)  [#5](https://github.com/chaitin/xpoc/issues/5)
* 修复部分情况下windows平台下插件加载报错的问题 [#2](https://github.com/chaitin/xpoc/issues/2)
* 修复部分情况下windows平台下启动阶段崩溃的问题

### 3. Tips

* -r  (-run) 参数用于执行指定插件，多个插件间','分割 支持glob语法，一般用于测试插件或过滤插件（常用）
* -e (-enable) 参数用于单次扫描添加插件，在默认策略（全量探测）基础上增加本地插件，支持glob语法

## 0.0.1（2023-05-24）

### 功能介绍

1. 拉取所有云端POC并扫描指定目标

   * `./xpoc -t https://example.com -html result.html`

2. 查看所有云端的POC

   * `./xpoc list -a`

3. 批量扫描

   * `./xpoc < targets.txt`
   * ` cat targets.txt | ./xpoc`
   * `./xpoc -i targets.txt`
