diff --git a/README.md b/README.md
index 7de5632..c25586f 100644
--- a/README.md
+++ b/README.md
@@ -1,50 +1,48 @@
-# HaE - Highlighter and Extractor
-
-核心功能作者: [@EvilChen](https://github.com/gh0stkey)(中孚信息元亨实验室)
-
-架构作者: [@0chencc](https://github.com/0Chencc)
-
-## 公共规则 & 打赏
-
-公共规则下载地址:https://gh0st.cn/HaE/
-
-如果你觉得HaE好用,可以打赏一下作者,给作者持续更新下去的动力!
-
-
-

+
-## 介绍
-**HaE**是基于 `BurpSuite` 插件 `JavaAPI` 开发的请求高亮标记与信息提取的辅助型插件。
+## 项目介绍
+
+**HaE**是基于 `BurpSuite Java插件API` 开发的请求高亮标记与信息提取的辅助型框架式插件,该插件可以通过自定义正则的方式匹配响应报文或请求报文,并对满足正则匹配的请求进行信息高亮与提取。

-该插件可以通过自定义正则的方式匹配**响应报文或请求报文**,可以自行决定符合该自定义正则匹配的相应请求是否需要高亮标记、信息提取。
+现代化Web应用走上前后端分离开发模式,这就导致在日常测试时候会有许多的请求流量,如果你想要尽可能全面的对一个Web应用进行测试评估,将花费大量精力浪费在无用的请求上;**HaE的出现正是为了解决这一类似场景**,借助HaE你可以有效的减少测试的时间,将更多的精力放在**有价值、有意义**的请求上,**大幅度**的减少无效测试时间,**提高漏洞挖掘效率**。
-**注**: `HaE`的使用,对测试人员来说需要基本的正则表达式基础,由于`Java`正则表达式的库并没有`Python`的优雅或方便,在使用正则的,HaE要求使用者必须使用`()`将所需提取的表达式内容包含;例如你要匹配一个**Shiro应用**的响应报文,正常匹配规则为`rememberMe=delete`,如果你要提取这段内容的话就需要变成`(rememberMe=delete)`。
+**注**: 要想灵活的使用`HaE`,你需要掌握正则表达式阅读、编写、修改能力;由于`Java`正则表达式的库并没有`Python`的优雅或方便,在使用正则的,HaE要求使用者必须使用`()`将所需提取的表达式内容包含;例如你要匹配一个**Shiro应用**的响应报文,正常匹配规则为`rememberMe=delete`,如果你要提取这段内容的话就需要变成`(rememberMe=delete)`。
## 使用方法
插件装载: `Extender - Extensions - Add - Select File - Next`
-初次装载`HaE`会初始化配置文件,默认配置文件内置一个正则: `Email`,初始化的配置文件会放在与`BurpSuite Jar`包同级目录下。
+初次装载`HaE`会初始化配置文件,默认配置文件内置一个正则: `Email`,初始化的配置文件会放在的`/用户根目录/.config/HaE/`目录下。
-除了初始化的配置文件外,还有`Setting.yml`,该文件用于存储配置文件路径;`HaE`支持自定义配置文件路径,你可以通过点击`Select File`按钮进行选择自定义配置文件。
+
-
+除了初始化的配置文件外,还有`Setting.yml`,该文件用于存储配置文件路径与排除后缀名;`HaE`支持自定义配置文件路径,你可以通过点击`Select File`按钮进行选择自定义配置文件。
-## 插件优点
+## 优势特点
+
+1. **精细化配置项**:高自由度配置更适配精细化场景需求;
+2. **简洁可视界面**:简洁的可视化界面让你更加清晰了解HaE的各项配置,操作更轻松,使用更简单;
+3. **颜色升级算法**:内置颜色升级算法,避免“屠龙者终成恶龙”场景,突出最具价值的请求;
+4. **标签化规则项**:标签化你的正则规则,让规则可分类,让管理更轻松;
+5. **数据集合面板**:将所有匹配数据集合到Databoard中,使得测试、梳理更高效;
+6. **高亮标记一体**:在Proxy - History页面你可以通过颜色高亮与Comment判断请求价值;
+7. **实战化官方库**:基于实战化场景、案例进行输出的官方规则库,提升测试实战性;
+8. **配置文件易读**:配置文件使用YAML格式存储,更加便于阅读与修改。
+
+| 界面名称 | 界面展示 |
+| ------------------------- | ----------------------------------------------------- |
+| Rules(规则信息管理) |

|
+| Config(配置信息管理) |

|
+| Databoard(数据集合面板) |

|
-1. 多选项自定义控制适配需求
-2. 多颜色高亮分类,将BurpSuite的所有高亮颜色集成: `red, orange, yellow, green, cyan, blue, pink, magenta, gray`
-3. **颜色升级算法**: 利用下标的方式进行优先级排序,当满足2个同颜色条件则以优先级顺序上升颜色(例如: **两个正则,颜色为橘黄色,该请求两个正则都匹配到了,那么将升级为红色**)
-4. 配置文件采用YAML格式存储,更加便于阅读和修改
-5. 内置简单缓存,在“多正则、大数据”的场景下减少卡顿现象
-6. **支持标签分页**,点击`...`即可添加新的标签页,对着标签页右键即可删除
-7. 高亮信息添加的同时添加Comment,便于查找请求
-
## 实际使用
@@ -56,41 +54,15 @@

+## 文末随笔
-## 正则优化
+正义感是一个不可丢失的东西。
-有些正则在实战应用场景中并不理想
+如果你觉得HaE好用,可以打赏一下作者,给作者持续更新下去的动力!
-在正则匹配手机号、身份证号码的时候(纯数字类)会存在一些误报(这里匹配身份证号码无法进行校验,误报率很高),但手机号处理这一块可以解决:
-
-原正则:
-
-```
-1[3-9]\d{9}
-```
-
-误报场景: `12315188888888123`,这时候会匹配到`15188888888`,而实际上这一段并不是手机号,所以修改正则为:
-
-```
-[^0-9]+(1[3-9]\d{9})[^0-9]+
-```
-
-也就是要求匹配的手机号前后不能为0-9的数字。
-
-## 实战用法
-
-1. CMS指纹识别,Discuz正则: `(Powered by Discuz!)`
-2. OSS对象存储信息泄露,正则: `([A|a]ccess[K|k]ey[I|i]d|[A|a]ccess[K|k]ey[S|s]ecret)`
-3. 内网地址信息提取,正则: `(?:10\.\d{1,3}\.\d{1,3}\.\d{1,3})|(?:172\.(?:(?:1[6-9])|(?:2\d)|(?:3[01]))\.\d{1,3}\.\d{1,3})|(?:192\.168\.\d{1,3}\.\d{1,3})`
-4. 实战插件关联搭配,漏洞挖掘案例: https://mp.weixin.qq.com/s/5vNn7dMRZBtv0ojPBAHV7Q
-
-...还有诸多使用方法等待大家去发掘。
-
-## 文末
-
-随笔: 正义感是一个不可丢失的东西。
-
-Github项目地址(BUG、需求、正则欢迎提交): https://github.com/gh0stkey/HaE
+
+

+
## 404StarLink 2.0 - Galaxy
diff --git a/images/16000710069404.jpg b/images/16000710069404.jpg
deleted file mode 100644
index 94a75ae..0000000
Binary files a/images/16000710069404.jpg and /dev/null differ
diff --git a/images/16000720732851.jpg b/images/16000720732851.jpg
deleted file mode 100644
index 67d2675..0000000
Binary files a/images/16000720732851.jpg and /dev/null differ
diff --git a/images/config.png b/images/config.png
new file mode 100644
index 0000000..b1a0c20
Binary files /dev/null and b/images/config.png differ
diff --git a/images/databoard.png b/images/databoard.png
new file mode 100644
index 0000000..9b76c60
Binary files /dev/null and b/images/databoard.png differ
diff --git a/images/logo.png b/images/logo.png
new file mode 100644
index 0000000..db79428
Binary files /dev/null and b/images/logo.png differ
diff --git a/images/rules.png b/images/rules.png
new file mode 100644
index 0000000..5cf7e09
Binary files /dev/null and b/images/rules.png differ
diff --git a/images/show_config.png b/images/show_config.png
new file mode 100644
index 0000000..1a44e1b
Binary files /dev/null and b/images/show_config.png differ
diff --git a/src/main/java/burp/BurpExtender.java b/src/main/java/burp/BurpExtender.java
index 9de4c1c..d1be700 100644
--- a/src/main/java/burp/BurpExtender.java
+++ b/src/main/java/burp/BurpExtender.java
@@ -19,7 +19,8 @@ import javax.swing.event.ChangeListener;
public class BurpExtender implements IBurpExtender, IHttpListener, IMessageEditorTabFactory, ITab {
private final MainUI main = new MainUI();
- private static PrintWriter stdout;
+ // stdout变成公开属性,便于其他类调用输出调试信息
+ public static PrintWriter stdout;
private IBurpExtenderCallbacks callbacks;
private static IExtensionHelpers helpers;
GetColorKey gck = new GetColorKey();
@@ -32,7 +33,7 @@ public class BurpExtender implements IBurpExtender, IHttpListener, IMessageEdito
this.callbacks = callbacks;
BurpExtender.helpers = callbacks.getHelpers();
- String version = "2.3";
+ String version = "2.4";
callbacks.setExtensionName(String.format("HaE (%s) - Highlighter and Extractor", version));
// 定义输出
stdout = new PrintWriter(callbacks.getStdout(), true);
@@ -75,15 +76,27 @@ public class BurpExtender implements IBurpExtender, IHttpListener, IMessageEdito
content = messageInfo.getResponse();
}
+ IHttpService iHttpService = null;
+ try {
+ iHttpService = messageInfo.getHttpService();
+ } catch (Exception ignored) {
+ }
+ // 获取请求主机信息
+ assert iHttpService != null;
+ String host = iHttpService.getHost();
+
String c = new String(content, StandardCharsets.UTF_8).intern();
- List