├── README.assets
├── image-20230731113927901.png
├── image-20230731114232032.png
├── image-20230731125457051.png
├── image-20230731125758549.png
├── image-20230731130825643.png
├── image-20230918094808503.png
├── image-20230918095032329.png
├── image-20230918095053003.png
├── image-20230918095204930.png
├── image-20230918095219483.png
├── image-20230918095254958.png
└── image-20230918095318949.png
├── README.md
├── pom.xml
└── src
└── main
├── java
└── com
│ └── ha1ey
│ └── CandleDragon
│ ├── AppStart.java
│ ├── common
│ ├── CommonUtils.java
│ ├── ComponentUtil.java
│ ├── JarLoader.java
│ ├── MyURLClassLoader.java
│ └── ProxyHandler.java
│ ├── controller
│ ├── Controller.java
│ ├── DebugController.java
│ ├── HomeController.java
│ └── SettingController.java
│ └── core
│ ├── ArgsInfoImpl.java
│ ├── DNSLogResultEntity.java
│ ├── HelpPluginImpl.java
│ ├── PluginImpl.java
│ ├── RegistersImpl.java
│ ├── ResultImpl.java
│ ├── TargetInfoImpl.java
│ └── UtilsPluginImpl.java
└── resources
├── css
└── main.css
├── fxml
├── Control.fxml
├── DeBug.fxml
├── Exploit
│ ├── Args_Exploit.fxml
│ └── Exploit.fxml
├── Home.fxml
└── Setting.fxml
├── icon
└── icon.png
└── json
└── av.json
/README.assets/image-20230731113927901.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230731113927901.png
--------------------------------------------------------------------------------
/README.assets/image-20230731114232032.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230731114232032.png
--------------------------------------------------------------------------------
/README.assets/image-20230731125457051.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230731125457051.png
--------------------------------------------------------------------------------
/README.assets/image-20230731125758549.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230731125758549.png
--------------------------------------------------------------------------------
/README.assets/image-20230731130825643.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230731130825643.png
--------------------------------------------------------------------------------
/README.assets/image-20230918094808503.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230918094808503.png
--------------------------------------------------------------------------------
/README.assets/image-20230918095032329.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230918095032329.png
--------------------------------------------------------------------------------
/README.assets/image-20230918095053003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230918095053003.png
--------------------------------------------------------------------------------
/README.assets/image-20230918095204930.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230918095204930.png
--------------------------------------------------------------------------------
/README.assets/image-20230918095219483.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230918095219483.png
--------------------------------------------------------------------------------
/README.assets/image-20230918095254958.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230918095254958.png
--------------------------------------------------------------------------------
/README.assets/image-20230918095318949.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/README.assets/image-20230918095318949.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CandleDragon
2 |
3 | ## 运行&打包
4 |
5 | JDK 1.8
6 |
7 | 打包命令:mvn package
8 |
9 | ## 插件页面
10 |
11 | 左边会初始化显示所有的插件名字,可以根据列表上方的输入框根据:`插件名字` `插件作者` `CNVD/CVE编号` `漏洞厂商` `漏洞名字` `披露时间` 关键字进行筛选。
12 |
13 | 鼠标放置某个插件上面会以悬浮框的形式显示插件的信息
14 |
15 | 
16 |
17 | 批量选中多个插件右键可以发送到`POC`页面进行扫描,批量选中不可选择发送到EXP,必须单个选中。
18 |
19 | 
20 |
21 | POC可以批量扫描多个插件和多个URL,扫描结果会输出在右边的表格和下发的结果输出区域。
22 |
23 |
24 |
25 | 选中EXP后,如果该插件编写了EXP可以跳转到漏洞利用的界面,根据插件定义好的参数进行输入
26 |
27 | 
28 |
29 | 最后会将输出结果打印到软件结果输出区域
30 |
31 | 
32 |
33 |
34 |
35 | ## 设置页面
36 |
37 | ### 自定义代理功能
38 |
39 | 可设置`HTTP`代理和`Socks`代理方便各种网络环境使用,开启代理功能后软件左下角会有代理开启提示,同时原代理参数不可标记,可以关闭后修改参数重新启动。
40 |
41 | 
42 |
43 |
44 |
45 | ### 自定义编码方式
46 |
47 | 默认使用`UTF-8`编码,可根据目标站点自行设置,插件中使用`Targetinfo#getCharset()`方法获取软件设置的自定义编码
48 |
49 | 
50 |
51 | ### 自定义超时时间
52 |
53 | 自定义Http超时时间,默认`1000`毫秒,插件中使用`TargetInfo#getTimeout()`方法获取软件设置的自定义超时时间
54 |
55 | 
56 |
57 | ### 自定义User-Agent
58 |
59 | 自定义User-Agent头,默认使用这些随机的User-Agent头,插件中使用`TargetInfo#getUserAgent()`方法获取软件设置的自定义UserAgent头
60 |
61 | 
62 |
63 | ### DNSLog
64 |
65 | 可以配合Poc插件定制需要DNSLog的场景。
66 |
67 |
68 |
69 | DNSLog的结果在这里显示
70 |
71 | 
72 |
73 |
74 |
75 | ## 插件编写
76 |
77 | ### 目录结构
78 |
79 | 
80 |
81 | 主要分为`插件注册接口实现类` `插件信息类` `插件POC` `插件EXP`
82 |
83 |
84 |
85 | ### 插件注册接口实现类
86 |
87 | 类名必须为PluginRegister,并实现`PluginManager`接口,需要在下面一次调用`doRegister`方法传入自己定义好的插件信息类对象。
88 |
89 | 例:
90 |
91 | ```java
92 | public class PluginRegister implements PluginManager {
93 | @Override
94 | public void registerPlugin(Register register) {
95 | register.doRegister(new PluginDemo()); //有几个插件就注册几个以此类推
96 | // register.doRegister(new PluginDemo1());
97 | // register.doRegister(new PluginDemo2());
98 | }
99 | }
100 | ```
101 |
102 |
103 |
104 | #### 插件信息
105 |
106 | 类名任意,但必须实现`IPlugin`接口,通过调用`PluginInfo`对象的多个方法自定义插件的信息,还需要关联这个插件对应的POC和多个EXP。
107 |
108 | 例:
109 |
110 | ```java
111 | public class PluginDemo implements IPlugin {
112 | @Override
113 | public void setPluginInfo(PluginInfo pluginInfo) {
114 |
115 | pluginInfo.setPluginName("插件名字");
116 | pluginInfo.setPluginAuthor("插件作者名");
117 | pluginInfo.setVulName("漏洞名");
118 | pluginInfo.setVulId("漏洞CNVD/cve");
119 | pluginInfo.setDescription("描述");
120 | pluginInfo.setVulCategory("漏洞类型");
121 | pluginInfo.setVulProduct("厂商");
122 | pluginInfo.setPluginVersion("插件版本");
123 | pluginInfo.setVulDisclosureTime("披露时间");
124 | pluginInfo.setVulScope("漏洞适应版本");
125 |
126 | List exploits = new ArrayList<>(); //新建一个用来存放exp的list,如果没有编写EXP可以不用创建EXP列表
127 | exploits.add(new EXPDEMO()); //有几个exp就添加几个
128 | // exploits.add(new EXPDEMO1());
129 | // exploits.add(new EXPDEMO2());
130 |
131 |
132 | pluginInfo.addPoc(new POCDEMO()); //添加这个插件的检测POC
133 |
134 | pluginInfo.addExploit(exploits); //最后将所有的exp列表添加到插件信息,如果没有写EXP可以不用调用此方法
135 | }
136 | }
137 | ```
138 |
139 |
140 |
141 | #### POC
142 |
143 | 类名任意,但必须实现`Poc`接口,通过`TargetInfo`对象获取程序前端自定义的参数,通过`Result`对象将想要输出的信息打印到程序前端显示。
144 |
145 | 例:
146 |
147 | ```java
148 | public class POCDEMO implements Poc {
149 | @Override
150 | public void doPoc(TargetInfo targetInfo, Result result) {
151 | targetInfo.getAddress(); //获取前端输入的URL地址
152 | targetInfo.getCharset(); //获取获取字符编码
153 | targetInfo.getTimeout(); //获取自定义超时时间
154 | targetInfo.getUserAgent(); //获取自定义UA头,默认随机
155 |
156 |
157 | result.setPocVul(true); //是否存在漏洞,最后会在扫描结果的表格中显示
158 | result.setPocVul(false);
159 | result.setPocMsg("Poc message"); //Poc扫描结果表格中显示的提示信息
160 |
161 |
162 | result.printFail(""); //打印失败信息
163 | result.printInfo(""); //打印普通信息
164 | result.printRaw(""); //打印原始信息
165 | result.printSuccess(""); //打印成功信息
166 | result.printError(new Throwable()); //打印 try catch的异常信息
167 |
168 | }
169 |
170 | }
171 | ```
172 |
173 |
174 |
175 | #### EXP
176 |
177 | 类名任意,但必须实现`Exploit`接口,`setExploitTitle()`方法定义程序漏洞利用的标题
178 |
179 | 
180 |
181 | 通过`HelpPlugin`对象的`createArgs`方法创建一个参数对象,最后将多个参数添加到一个List中并返回。
182 |
183 | 最后`doExploit`中的`argsmap`参数可以通过`argsmap.get("参数名字")`获取上面自定义参数的输入值。
184 |
185 | 例:
186 |
187 | ```java
188 | public class EXPDEMO implements Exploit {
189 | @Override
190 | public String initInfo() {
191 | return "该漏洞需要初始化的信息";
192 | }
193 |
194 | @Override
195 | public String setExploitTitle() {
196 | return "xxx插件xxx利用方式";
197 | }
198 |
199 | @Override
200 | public List setArgs(HelpPlugin helpPlugin) {
201 | List argsList = new ArrayList<>();
202 | ArgsInfo args1 = helpPlugin.createArgs();
203 | args1.setArgsName("参数名字");
204 | args1.setDescription("参数描述");
205 | args1.setDefaultValue("参数默认值");
206 |
207 | ArgsInfo args2 = helpPlugin.createArgs();
208 | args2.setArgsName("参数名字2");
209 | args2.setDescription("参数描述2");
210 | args2.setDefaultValue("参数默认值2");
211 |
212 | argsList.add(args1);
213 | argsList.add(args2);
214 |
215 | return argsList;
216 | }
217 |
218 |
219 | @Override
220 | public void doExploit(TargetInfo targetInfo, Map argsmap, Result result) {
221 | targetInfo.getAddress(); //获取前端输入的URL地址
222 | targetInfo.getCharset(); //获取获取字符编码
223 | targetInfo.getTimeout(); //获取自定义超时时间
224 | targetInfo.getUserAgent(); //获取自定义UA头,默认随机
225 |
226 | argsmap.get("参数名字"); //获取上面自定义的参数名的value
227 | result.printFail(""); //打印失败信息
228 | result.printInfo(""); //打印普通信息
229 | result.printRaw(""); //打印原始信息
230 | result.printSuccess(""); //打印成功信息
231 | result.printError(new Throwable()); //打印 try catch的异常信息
232 |
233 | }
234 | }
235 | ```
236 |
237 |
238 |
239 | ## 感谢
240 | 感谢 @V1rtu0l
241 |
242 | 感谢@c0ny1师傅的woodpecker项目https://github.com/woodpecker-framework
243 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | com.ha1ey
8 | CandleDragon
9 | 2.1.4
10 |
11 |
12 | 8
13 | 8
14 | UTF-8
15 |
16 |
17 |
18 |
19 |
20 | com.jfoenix
21 | jfoenix
22 | 8.0.10
23 |
24 |
25 | org.apache.commons
26 | commons-lang3
27 | 3.12.0
28 |
29 |
30 | org.fxmisc.richtext
31 | richtextfx
32 | 0.10.7
33 |
34 |
35 |
36 | de.jensd
37 | fontawesomefx
38 | 8.9
39 |
40 |
41 |
42 | cn.hutool
43 | hutool-all
44 | 5.8.20
45 |
46 |
47 |
48 | io.github.HHa1ey
49 | CandleDragonPluginSDK
50 | 1.3.8
51 |
52 |
53 |
54 | commons-logging
55 | commons-logging
56 | 1.2
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 | org.apache.maven.plugins
67 | maven-compiler-plugin
68 | 3.11.0
69 |
70 | 1.8
71 | 1.8
72 | UTF-8
73 |
74 |
75 |
76 |
77 |
78 | org.apache.maven.plugins
79 | maven-assembly-plugin
80 | 3.6.0
81 |
82 | ${project.artifactId}-${project.version}
83 | false
84 |
85 |
86 | com.ha1ey.CandleDragon.AppStart
87 |
88 |
89 |
90 | jar-with-dependencies
91 |
92 |
93 | ${project.build.directory}
94 |
95 |
96 |
97 |
98 | make-assembly
99 | package
100 |
101 | single
102 |
103 |
104 |
105 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/AppStart.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon;
2 |
3 |
4 | import javafx.application.Application;
5 | import javafx.fxml.FXMLLoader;
6 | import javafx.scene.Parent;
7 | import javafx.scene.Scene;
8 | import javafx.scene.image.Image;
9 | import javafx.stage.Stage;
10 |
11 | import java.util.Objects;
12 |
13 | public class AppStart extends Application {
14 | @Override
15 | public void start(Stage primaryStage) throws Exception {
16 | Parent root = FXMLLoader.load(Objects.requireNonNull(getClass().getClassLoader().getResource("fxml/Control.fxml")));
17 | primaryStage.getIcons().add(new Image(Objects.requireNonNull(getClass().getClassLoader().getResource("icon/icon.png")).toString()));
18 | primaryStage.setTitle("CandleDragon Vulnerability Exploitation Tools V 2.1.4 Author:Ha1ey");
19 | primaryStage.setScene(new Scene(root));
20 | primaryStage.show();
21 | }
22 |
23 | @Override
24 | public void stop() throws Exception {
25 | super.stop();
26 | System.exit(0);
27 | }
28 |
29 | public static void main(String[] args) {
30 | launch(args);
31 | }
32 | }
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/common/CommonUtils.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.common;
2 |
3 | import com.ha1ey.CandleDragon.core.PluginImpl;
4 | import com.ha1ey.CandleDragon.core.UtilsPluginImpl;
5 | import javafx.collections.FXCollections;
6 | import javafx.collections.ObservableList;
7 | import javafx.scene.control.Alert;
8 | import javafx.stage.Window;
9 |
10 | import java.io.FileInputStream;
11 | import java.io.IOException;
12 | import java.nio.ByteBuffer;
13 | import java.nio.CharBuffer;
14 | import java.nio.charset.CharsetEncoder;
15 | import java.nio.charset.StandardCharsets;
16 | import java.security.DigestInputStream;
17 | import java.security.MessageDigest;
18 | import java.security.NoSuchAlgorithmException;
19 | import java.text.SimpleDateFormat;
20 | import java.util.*;
21 |
22 | public class CommonUtils {
23 |
24 | public static ObservableList pluginList = FXCollections.observableArrayList();
25 | public static List utilsList = new LinkedList<>();
26 | public static List pluginFileHashList = new ArrayList<>();
27 | private static final String CODES = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
28 |
29 | //判断URL书写规范自动添加http
30 | public static String urlParse(String url){
31 | if(!url.contains("http")){
32 | url = "http://" +url;
33 | }
34 | if(url.endsWith("/")){
35 | url = url.substring(0, url.length() - 1);
36 | }
37 | return url;
38 | }
39 |
40 | public static String randomStr(int length){
41 | String str= "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
42 | Random random =new Random();
43 | StringBuffer sb = new StringBuffer();
44 | for (int i=0;i {
55 | window.hide();
56 | });
57 | alert.setHeaderText(alert_info);
58 | alert.show();
59 | }
60 |
61 | public static String getDate(){
62 | Date now = new Date();
63 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
64 | return simpleDateFormat.format(now);
65 | }
66 |
67 |
68 | public static String strToUnicode(String string){
69 | StringBuffer stringBuffer = new StringBuffer();
70 | try{
71 | CharsetEncoder encoder = StandardCharsets.UTF_8.newEncoder();
72 | CharBuffer charBuffer =CharBuffer.wrap(string);
73 | ByteBuffer byteBuffer = encoder.encode(charBuffer);
74 | while (byteBuffer.hasRemaining()){
75 | int code = byteBuffer.get() & 0xFF;
76 | stringBuffer.append(String.format("\\u%04x",code));
77 | }
78 | }catch (Exception e){
79 | e.printStackTrace();
80 | }
81 | return stringBuffer.toString();
82 | }
83 |
84 |
85 | public static String base64Encode(byte[] in) {
86 | StringBuilder out = new StringBuilder((in.length * 4) / 3);
87 | int b;
88 | for (int i = 0; i < in.length; i += 3) {
89 | b = (in[i] & 0xFC) >> 2;
90 | out.append(CODES.charAt(b));
91 | b = (in[i] & 0x03) << 4;
92 | if (i + 1 < in.length) {
93 | b |= (in[i + 1] & 0xF0) >> 4;
94 | out.append(CODES.charAt(b));
95 | b = (in[i + 1] & 0x0F) << 2;
96 | if (i + 2 < in.length) {
97 | b |= (in[i + 2] & 0xC0) >> 6;
98 | out.append(CODES.charAt(b));
99 | b = in[i + 2] & 0x3F;
100 | out.append(CODES.charAt(b));
101 | } else {
102 | out.append(CODES.charAt(b));
103 | out.append('=');
104 | }
105 | } else {
106 | out.append(CODES.charAt(b));
107 | out.append("==");
108 | }
109 | }
110 | return out.toString();
111 | }
112 |
113 |
114 | //解码
115 | public static byte[] base64Decode(String input) {
116 | return Base64.getDecoder().decode(input.getBytes());
117 | }
118 | public static String getMD5(String input) {
119 | try {
120 | MessageDigest md = MessageDigest.getInstance("MD5");
121 | md.update(input.getBytes());
122 | byte[] digest = md.digest();
123 |
124 | StringBuilder sb = new StringBuilder();
125 | for (byte b : digest) {
126 | sb.append(String.format("%02x", b));
127 | }
128 |
129 | return sb.toString();
130 | } catch (NoSuchAlgorithmException e) {
131 | // MD5 algorithm is not available
132 | e.printStackTrace();
133 | return null;
134 | }
135 | }
136 | public static String calculateMD5(String filePath) {
137 | try {
138 | MessageDigest md = MessageDigest.getInstance("MD5");
139 | FileInputStream fileInputStream = new FileInputStream(filePath);
140 | DigestInputStream digestInputStream = new DigestInputStream(fileInputStream, md);
141 | byte[] buffer = new byte[8192]; // 8 KB buffer
142 | int bytesRead;
143 | while ((bytesRead = digestInputStream.read(buffer)) != -1) {
144 | // Reading the file content while updating the digest
145 | }
146 | byte[] digest = md.digest();
147 | StringBuilder sb = new StringBuilder();
148 | for (byte b : digest) {
149 | sb.append(String.format("%02x", b));
150 | }
151 | return sb.toString();
152 | } catch (NoSuchAlgorithmException | IOException e) {
153 | e.printStackTrace();
154 | return null;
155 | }
156 | }
157 | }
158 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/common/ComponentUtil.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.common;
2 |
3 |
4 | import javafx.fxml.FXMLLoader;
5 | import javafx.scene.Parent;
6 |
7 | import java.util.Map;
8 |
9 | public class ComponentUtil {
10 |
11 | public static void addComponent(String componentName, String fxmlPath,Map components,Map controllers){
12 | try {
13 | FXMLLoader loader = new FXMLLoader(ComponentUtil.class.getClassLoader().getResource(fxmlPath));
14 | Parent component = loader.load();
15 | Object obj = loader.getController();
16 | components.put(componentName,component);
17 | controllers.put(componentName,obj);
18 | }catch (Exception e){
19 | e.printStackTrace();
20 | }
21 | }
22 |
23 | public static Parent loadComponent(String componentName, String fxmlPath,Map components){
24 | Parent component = null;
25 | try {
26 | FXMLLoader loader = new FXMLLoader(ComponentUtil.class.getClassLoader().getResource(fxmlPath));
27 | component = loader.load();
28 | components.put(componentName,component);
29 | }catch (Exception e){
30 | e.printStackTrace();
31 | }
32 | return component;
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/common/JarLoader.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.common;
2 |
3 |
4 | import com.ha1ey.CandleDragon.core.RegistersImpl;
5 | import com.ha1ey.CandleDragon.plugin.Register;
6 |
7 | import java.io.File;
8 | import java.io.IOException;
9 | import java.lang.reflect.Method;
10 | import java.nio.file.*;
11 | import java.nio.file.attribute.BasicFileAttributes;
12 | import java.util.ArrayList;
13 | import java.util.Enumeration;
14 | import java.util.List;
15 | import java.util.concurrent.ExecutorService;
16 | import java.util.concurrent.Executors;
17 | import java.util.concurrent.TimeUnit;
18 | import java.util.jar.JarEntry;
19 | import java.util.jar.JarFile;
20 |
21 | public class JarLoader {
22 |
23 | public static void loadJar() {
24 | ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
25 | try {
26 | String filePath = System.getProperty("user.dir") + File.separator + "plugin";
27 | Path dirPath = Paths.get(filePath);
28 | if (!Files.exists(dirPath)) {
29 | Files.createDirectory(dirPath);
30 | }
31 | List files = findFiles(dirPath);
32 | for (File file : files) {
33 | String fileMd5 = CommonUtils.calculateMD5(file.getPath());
34 | if (!CommonUtils.pluginFileHashList.contains(fileMd5)) {
35 | executorService.submit(() -> {
36 | try {
37 | JarFile jarFile = new JarFile(file);
38 | Enumeration entries = jarFile.entries();
39 | MyURLClassLoader myURLClassLoader = new MyURLClassLoader(file.getPath());
40 | while (entries.hasMoreElements()) {
41 | JarEntry jarEntry = entries.nextElement();
42 | String entryName = jarEntry.getName();
43 | if (entryName.endsWith("PluginRegister.class")) {
44 | String className = entryName.replace("/", ".").substring(0, entryName.length() - 6);
45 | Class> clazz = myURLClassLoader.loadClass(className);
46 | Method method = clazz.getMethod("registerPlugin", Register.class);
47 | method.invoke(clazz.newInstance(), new RegistersImpl());
48 | CommonUtils.pluginFileHashList.add(fileMd5);
49 | break;
50 | }
51 | }
52 | } catch (Exception e) {
53 | e.printStackTrace();
54 | }
55 |
56 | });
57 | }
58 | }
59 | executorService.shutdown();
60 | executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
61 | } catch (Exception e) {
62 | e.printStackTrace();
63 | }
64 | }
65 |
66 | private static List findFiles(Path dir) throws IOException {
67 | List jarFiles = new ArrayList<>();
68 | Files.walkFileTree(dir, new SimpleFileVisitor() {
69 | @Override
70 | public FileVisitResult visitFile(Path filePath, BasicFileAttributes attrs) {
71 | if (filePath.toString().endsWith(".jar")) {
72 | jarFiles.add(filePath.toFile());
73 | }
74 | return FileVisitResult.CONTINUE;
75 | }
76 | });
77 | return jarFiles;
78 | }
79 |
80 |
81 | }
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/common/MyURLClassLoader.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.common;
2 |
3 | import java.io.File;
4 | import java.lang.reflect.Method;
5 | import java.net.URL;
6 | import java.net.URLClassLoader;
7 |
8 | public class MyURLClassLoader extends ClassLoader{
9 | public URLClassLoader classLoader;
10 |
11 |
12 | public MyURLClassLoader(String JarName) {
13 | try{
14 | File file = new File(JarName);
15 | URL url = file.toURI().toURL();
16 | URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url});
17 | this.classLoader = urlClassLoader;
18 | }catch (Exception e){
19 | e.printStackTrace();
20 | }
21 |
22 | }
23 |
24 | @Override
25 | public Class> loadClass(String className) {
26 | Class> clazz = null;
27 | try {
28 | Method method = this.classLoader.getClass().getDeclaredMethod("findClass", String.class);
29 | method.setAccessible(true);
30 | clazz = (Class>) method.invoke(classLoader,className);
31 | }catch (Exception e){
32 | e.printStackTrace();
33 | }
34 | return clazz;
35 | }
36 | }
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/common/ProxyHandler.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.common;
2 |
3 | import org.apache.commons.lang3.StringUtils;
4 |
5 | import java.lang.reflect.InvocationHandler;
6 | import java.lang.reflect.Method;
7 | import java.net.Authenticator;
8 | import java.net.PasswordAuthentication;
9 |
10 | public class ProxyHandler implements InvocationHandler {
11 | private Object obj;
12 | private String proxyAddress;
13 | private String proxyPort;
14 | private String proxyUsername;
15 | private String proxyPassword;
16 | private String proxyType;
17 |
18 | public ProxyHandler(Object obj, String proxyAddress, String proxyPort, String proxyUsername, String proxyPassword, String proxyType) {
19 | this.obj = obj;
20 | this.proxyAddress = proxyAddress;
21 | this.proxyPort = proxyPort;
22 | this.proxyUsername = proxyUsername;
23 | this.proxyPassword = proxyPassword;
24 | this.proxyType = proxyType;
25 | }
26 |
27 | public ProxyHandler(Object obj, String proxyAddress, String proxyPort, String proxyType) {
28 | this.obj = obj;
29 | this.proxyAddress = proxyAddress;
30 | this.proxyPort = proxyPort;
31 | this.proxyType = proxyType;
32 | }
33 |
34 |
35 |
36 |
37 | @Override
38 | public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
39 | if (proxyType.equals("HTTP")){
40 | System.setProperty("http.proxyHost",this.proxyAddress);
41 | System.setProperty("http.proxyPort",this.proxyPort);
42 | System.setProperty("https.proxyHost",this.proxyAddress);
43 | System.setProperty("https.proxyPort",this.proxyPort);
44 | }
45 | if (proxyType.equals("SOCKS")){
46 | System.setProperty("socksProxyHost",this.proxyAddress);
47 | System.setProperty("socksProxyPort",this.proxyPort);
48 | }
49 |
50 | if (!StringUtils.isEmpty(this.proxyUsername)&&!StringUtils.isEmpty(this.proxyPassword)){
51 | Authenticator.setDefault(new Authenticator() {
52 | @Override
53 | protected PasswordAuthentication getPasswordAuthentication() {
54 | return new PasswordAuthentication(proxyUsername,proxyPassword.toCharArray());
55 | }
56 | });
57 | }
58 | Object result = method.invoke(obj,args);
59 |
60 | System.clearProperty("http.proxyHost");
61 | System.clearProperty("http.proxyPort");
62 | System.clearProperty("https.proxyHost");
63 | System.clearProperty("https.proxyPort");
64 | System.clearProperty("socksProxyHost");
65 | System.clearProperty("socksProxyPort");
66 | Authenticator.setDefault(null);
67 |
68 | return result;
69 | }
70 |
71 |
72 | }
73 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/controller/Controller.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.controller;
2 |
3 | import com.ha1ey.CandleDragon.common.CommonUtils;
4 | import com.ha1ey.CandleDragon.common.ComponentUtil;
5 | import com.ha1ey.CandleDragon.core.UtilsPluginImpl;
6 | import com.jfoenix.controls.JFXTabPane;
7 | import com.jfoenix.controls.JFXTextArea;
8 | import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView;
9 | import javafx.fxml.FXML;
10 | import javafx.geometry.Orientation;
11 | import javafx.scene.Node;
12 | import javafx.scene.Parent;
13 | import javafx.scene.control.Label;
14 | import javafx.scene.control.*;
15 | import javafx.scene.layout.HBox;
16 | import javafx.scene.layout.Priority;
17 |
18 | import java.awt.*;
19 | import java.net.URI;
20 | import java.util.HashMap;
21 |
22 |
23 | public class Controller {
24 | @FXML
25 | private HBox functionsHBox;
26 | @FXML
27 | private Label proxyStatusLabel;
28 | @FXML
29 | private FontAwesomeIconView utils;
30 | @FXML
31 | private FontAwesomeIconView setting;
32 | @FXML
33 | private FontAwesomeIconView debug;
34 | @FXML
35 | private FontAwesomeIconView github;
36 | @FXML
37 | private FontAwesomeIconView reload;
38 | @FXML
39 | private FontAwesomeIconView vul;
40 |
41 | public static HashMap components = new HashMap<>();
42 | public static HashMap controllers = new HashMap<>();
43 |
44 |
45 | @FXML
46 | private void initialize() {
47 | ComponentUtil.addComponent("home", "fxml/Home.fxml", components, controllers);
48 | ComponentUtil.addComponent("setting", "fxml/Setting.fxml", components, controllers);
49 | ComponentUtil.addComponent("debug", "fxml/DeBug.fxml", components, controllers);
50 | controllers.put("control", this);
51 | proxyStatusLabel.setText("ProxyStatus: \tClose");
52 |
53 | initTips();
54 | runHome();
55 | }
56 |
57 | private void initTips(){
58 | Tooltip reloadtip = new Tooltip("reload plugins");
59 | reload.setOnMouseEntered(event -> {
60 | reloadtip.show(reload, event.getScreenX() + 10, event.getScreenY() + 10);
61 | });
62 |
63 | reload.setOnMouseExited(event -> {
64 | reloadtip.hide();
65 | });
66 |
67 |
68 | Tooltip vultip = new Tooltip("Vul module");
69 | vul.setOnMouseEntered(event -> {
70 | vultip.show(vul, event.getScreenX() + 10, event.getScreenY() + 10);
71 | });
72 |
73 | vul.setOnMouseExited(event -> {
74 | vultip.hide();
75 | });
76 |
77 |
78 | Tooltip utilstip = new Tooltip("Utils module");
79 | utils.setOnMouseEntered(event -> {
80 | utilstip.show(utils, event.getScreenX() + 10, event.getScreenY() + 10);
81 | });
82 |
83 | utils.setOnMouseExited(event -> {
84 | utilstip.hide();
85 | });
86 |
87 |
88 | Tooltip settingtip = new Tooltip("setting module");
89 | setting.setOnMouseEntered(event -> {
90 | settingtip.show(setting, event.getScreenX() + 10, event.getScreenY() + 10);
91 | });
92 |
93 | setting.setOnMouseExited(event -> {
94 | settingtip.hide();
95 | });
96 |
97 |
98 | Tooltip debugtip = new Tooltip("debug module");
99 | debug.setOnMouseEntered(event -> {
100 | debugtip.show(debug, event.getScreenX() + 10, event.getScreenY() + 10);
101 | });
102 |
103 | debug.setOnMouseExited(event -> {
104 | debugtip.hide();
105 | });
106 |
107 | Tooltip githubtip = new Tooltip("github module");
108 | github.setOnMouseEntered(event -> {
109 | githubtip.show(github, event.getScreenX() + 10, event.getScreenY() + 10);
110 | });
111 |
112 | github.setOnMouseExited(event -> {
113 | githubtip.hide();
114 | });
115 | }
116 |
117 | public void setProxyStatusLabel(String proxyIP, String proxyPort, String proxyType, Boolean isProxy) {
118 | if (isProxy && !proxyIP.isEmpty() && !proxyPort.isEmpty()) {
119 | proxyStatusLabel.setText("ProxyStatus: \t" + proxyType + "\t" + proxyIP + ":" + proxyPort + "\tOpen");
120 | } else {
121 | proxyStatusLabel.setText("ProxyStatus: \tClose");
122 | }
123 |
124 | }
125 |
126 |
127 | @FXML
128 | private void runHome() {
129 | HBox mainHBox = (HBox) components.get("home");
130 | if (functionsHBox.getChildren().size() > 1) {
131 | functionsHBox.getChildren().remove(1);
132 | }
133 | functionsHBox.getChildren().add(1, mainHBox);
134 | functionsHBox.setHgrow(mainHBox, Priority.ALWAYS);
135 |
136 | }
137 |
138 |
139 | @FXML
140 | private void runSetting() {
141 | SplitPane settingSplitPane = (SplitPane) components.get("setting");
142 | if (functionsHBox.getChildren().size() > 1) {
143 | functionsHBox.getChildren().remove(1);
144 | }
145 | functionsHBox.getChildren().add(1, settingSplitPane);
146 | functionsHBox.setHgrow(settingSplitPane, Priority.ALWAYS);
147 | }
148 |
149 |
150 | @FXML
151 | private void runUtils() {
152 | JFXTabPane utilsTabPane = new JFXTabPane();
153 | if (CommonUtils.utilsList != null) {
154 | for (UtilsPluginImpl util : CommonUtils.utilsList) {
155 | Node node = util.getView();
156 | Tab tab = new Tab();
157 | SplitPane splitPane = new SplitPane();
158 | splitPane.setOrientation(Orientation.VERTICAL);
159 | TitledPane tips = new TitledPane();
160 | tips.setText("Tips");
161 | JFXTextArea textArea = new JFXTextArea();
162 | textArea.setText(util.getDescription());
163 | tips.setContent(textArea);
164 | splitPane.getItems().add(0, tips);
165 | splitPane.getItems().add(node);
166 | if (!util.getUtilName().isEmpty()) {
167 | tab.setText(util.getUtilName());
168 | } else {
169 | tab.setText("Default UtilName");
170 | }
171 |
172 | tab.setContent(splitPane);
173 | utilsTabPane.getTabs().add(tab);
174 | }
175 | }
176 |
177 |
178 | if (functionsHBox.getChildren().size() > 1) {
179 | functionsHBox.getChildren().remove(1);
180 | }
181 | functionsHBox.getChildren().add(1, utilsTabPane);
182 | functionsHBox.setHgrow(utilsTabPane, Priority.ALWAYS);
183 | }
184 |
185 |
186 | @FXML
187 | private void runBug() {
188 | JFXTabPane debugTabPane = (JFXTabPane) components.get("debug");
189 | if (functionsHBox.getChildren().size() > 1) {
190 | functionsHBox.getChildren().remove(1);
191 | }
192 | functionsHBox.getChildren().add(1, debugTabPane);
193 | functionsHBox.setHgrow(debugTabPane, Priority.ALWAYS);
194 | }
195 |
196 | @FXML
197 | private void reloadPlugin(){
198 | HomeController homeController = (HomeController) controllers.get("home");
199 | homeController.initPlugin();
200 |
201 | }
202 |
203 |
204 | @FXML
205 | private void runGithub() {
206 | URI uri = URI.create("https://github.com/HHa1ey/CandleDragon");
207 | Desktop desktop = Desktop.getDesktop();
208 | if (desktop.isSupported(Desktop.Action.BROWSE)) {
209 | try {
210 | desktop.browse(uri);
211 | } catch (Exception e) {
212 | e.printStackTrace();
213 | }
214 | }
215 |
216 | }
217 |
218 |
219 | }
220 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/controller/DebugController.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.controller;
2 |
3 | import com.ha1ey.CandleDragon.core.DNSLogResultEntity;
4 | import javafx.fxml.FXML;
5 | import javafx.scene.control.TableCell;
6 | import javafx.scene.control.TableColumn;
7 | import javafx.scene.control.TableView;
8 | import javafx.scene.control.cell.PropertyValueFactory;
9 |
10 | /**
11 | * @author Ha1ey
12 | * @descrition
13 | * @date 2023-07-31 16:28
14 | **/
15 | public class DebugController {
16 | @FXML
17 | private TableView dnslogResultTable;
18 | @FXML
19 | private TableColumn dnslogReqIPCol;
20 | @FXML
21 | private TableColumn dnslogCreateTimeCol;
22 | @FXML
23 | private TableColumn dnslogDomainCol;
24 | @FXML
25 | private TableColumn dnslogResultIDCol;
26 |
27 |
28 | @FXML
29 | private void initialize() {
30 | initDNSLogResult();
31 | }
32 |
33 |
34 | private void initDNSLogResult() {
35 | dnslogResultIDCol.setCellFactory((tableColumn) -> new TableCell() {
36 | @Override
37 | protected void updateItem(String item, boolean empty) {
38 | super.updateItem(item, empty);
39 | this.setText(null);
40 | this.setGraphic(null);
41 | if (!empty) {
42 | this.setText(String.valueOf(this.getIndex() + 1));
43 | }
44 | }
45 | });
46 |
47 | dnslogReqIPCol.setCellValueFactory(new PropertyValueFactory<>("Reqip"));
48 | dnslogCreateTimeCol.setCellValueFactory(new PropertyValueFactory<>("Time"));
49 | dnslogDomainCol.setCellValueFactory(new PropertyValueFactory<>("Domain"));
50 | }
51 |
52 |
53 | public TableView getDnslogResultTable() {
54 | return this.dnslogResultTable;
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/controller/HomeController.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.controller;
2 |
3 | import com.ha1ey.CandleDragon.common.CommonUtils;
4 | import com.ha1ey.CandleDragon.common.ComponentUtil;
5 | import com.ha1ey.CandleDragon.common.JarLoader;
6 | import com.ha1ey.CandleDragon.common.ProxyHandler;
7 | import com.ha1ey.CandleDragon.core.*;
8 | import com.ha1ey.CandleDragon.plugin.ArgsInfo;
9 | import com.ha1ey.CandleDragon.plugin.Exploit;
10 | import com.ha1ey.CandleDragon.plugin.Poc;
11 | import com.jfoenix.controls.JFXListView;
12 | import com.jfoenix.controls.JFXTabPane;
13 | import com.jfoenix.controls.JFXTextArea;
14 | import com.jfoenix.controls.JFXTextField;
15 | import javafx.application.Platform;
16 | import javafx.collections.FXCollections;
17 | import javafx.collections.ObservableList;
18 | import javafx.collections.transformation.FilteredList;
19 | import javafx.fxml.FXML;
20 | import javafx.scene.Node;
21 | import javafx.scene.control.*;
22 | import javafx.scene.control.cell.PropertyValueFactory;
23 | import javafx.scene.input.MouseButton;
24 | import javafx.scene.input.MouseEvent;
25 | import javafx.scene.text.Font;
26 | import org.fxmisc.richtext.CodeArea;
27 | import org.fxmisc.richtext.LineNumberFactory;
28 | import org.fxmisc.richtext.model.Paragraph;
29 | import org.reactfx.collection.LiveList;
30 |
31 | import java.lang.reflect.InvocationTargetException;
32 | import java.lang.reflect.Method;
33 | import java.lang.reflect.Proxy;
34 | import java.text.SimpleDateFormat;
35 | import java.util.*;
36 | import java.util.concurrent.ExecutorService;
37 | import java.util.concurrent.Executors;
38 | import java.util.regex.Matcher;
39 | import java.util.regex.Pattern;
40 |
41 | import static com.ha1ey.CandleDragon.common.CommonUtils.pluginList;
42 |
43 |
44 | public class HomeController {
45 | @FXML
46 | private JFXListView pluginListView;
47 | @FXML
48 | private JFXTextField pluginKeywordsText;
49 | @FXML
50 | private JFXTextField exploitTargetAddressText;
51 | @FXML
52 | private JFXTabPane exploitTabPane;
53 | @FXML
54 | private JFXListView scanPocList;
55 | @FXML
56 | private SplitPane targetInfoSplitPane;
57 | CodeArea pocTargetAddressTextArea;
58 | @FXML
59 | private TableView pocResultTable;
60 | @FXML
61 | private TableColumn pocResPluginNameCol;
62 | @FXML
63 | private TableColumn pocResTargetCol;
64 | @FXML
65 | private TableColumn isvulCol;
66 | @FXML
67 | private TableColumn pocMsgCol;
68 | @FXML
69 | private TableColumn pocTimeCol;
70 | @FXML
71 | private JFXTabPane pocexpTabPane;
72 | @FXML
73 | private JFXTextArea pocResultText;
74 |
75 |
76 | private JFXTextArea exploitResutlText;
77 | private final HashMap expMap = new HashMap<>();
78 | Font defaultFont = Font.getDefault();
79 |
80 |
81 | //init
82 | @FXML
83 | private void initialize() {
84 | initPlugin();
85 | initPocPane();
86 | initSearchKeywords();
87 | }
88 |
89 |
90 | //Load Plugin and Display pluginlist
91 | public void initPlugin() {
92 | JarLoader.loadJar();
93 | pluginListView.setItems(CommonUtils.pluginList);
94 | pluginListView.setCellFactory(param -> new ListCell() {
95 | private Tooltip tooltip = new Tooltip();
96 |
97 | @Override
98 | protected void updateItem(PluginImpl item, boolean empty) {
99 | super.updateItem(item, empty);
100 | if (empty || item == null) {
101 | setText(null);
102 | setTooltip(null);
103 | } else {
104 | String pluginInfo = "Plugin Name:" + item.getPluginName() + "\n" +
105 | "Plugin Version:" + item.getPluginVersion() + "\n" +
106 | "Author:" + item.getPluginAuthor() + "\n" +
107 | "Plugin Description:" + item.getDescription() + "\n" +
108 | "Vul Name:" + item.getVulName() + "\n" +
109 | "Vul Id:" + item.getVulId() + "\n" +
110 | "Vul Category:" + item.getVulCategory() + "\n" +
111 | "Vul Disclosure Time:" + item.getVulDisclosureTime() + "\n" +
112 | "Vul Scope:" + item.getVulScope() + "\n" +
113 | "Vul Product:" + item.getProduct();
114 | setText(item.getPluginName());
115 | tooltip.setText(pluginInfo);
116 | setOnMouseEntered(event -> {
117 | tooltip.show(this, event.getScreenX() + 10, event.getScreenY() + 10);
118 | });
119 |
120 | setOnMouseExited(event -> {
121 | tooltip.hide();
122 | });
123 |
124 |
125 | }
126 | }
127 | });
128 |
129 | pluginListView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
130 |
131 | }
132 |
133 |
134 | private void initSearchKeywords() {
135 | ObservableList items = FXCollections.observableArrayList();
136 | FilteredList filteredItems = new FilteredList<>(items);
137 | items.addAll(pluginList);
138 | pluginListView.setItems(filteredItems);
139 | pluginKeywordsText.setOnKeyReleased(searchKeywordsEvent -> {
140 | String filterText = pluginKeywordsText.getText().toLowerCase();
141 | filteredItems.setPredicate(item ->
142 | (filterText.isEmpty() || item.getPluginName() != null && item.getPluginName().toLowerCase().contains(filterText)) ||
143 | (filterText.isEmpty() || item.getPluginAuthor() != null && item.getPluginAuthor().toLowerCase().contains(filterText)) ||
144 | (filterText.isEmpty() || item.getProduct() != null && item.getProduct().toLowerCase().contains(filterText)) ||
145 | (filterText.isEmpty() || item.getVulId() != null && item.getVulId().toLowerCase().contains(filterText)) ||
146 | (filterText.isEmpty() || item.getVulName() != null && item.getVulName().toLowerCase().contains(filterText)) ||
147 | (filterText.isEmpty() || item.getVulDisclosureTime() != null && item.getVulDisclosureTime().toLowerCase().contains(filterText))
148 | );
149 | });
150 | }
151 |
152 |
153 | //monitor pluginlist
154 | @FXML
155 | public void monitorPluginList(MouseEvent event) {
156 | ContextMenu contextMenu = new ContextMenu();
157 | MenuItem toPocScan = new MenuItem("To Poc");
158 | MenuItem toExploit = new MenuItem("To Exploit");
159 | contextMenu.getItems().add(toPocScan);
160 | contextMenu.getItems().add(toExploit);
161 | if (event.getButton() == MouseButton.SECONDARY && pluginListView.getSelectionModel().getSelectedItems().size() > 1) {
162 | toExploit.setDisable(true);
163 | ListCell cell = getClickedCell(event);
164 | if (cell.getText() != null) {
165 | contextMenu.show(cell, event.getScreenX(), event.getScreenY());
166 | }
167 | } else if (event.getButton() == MouseButton.SECONDARY && pluginListView.getSelectionModel().getSelectedItems().size() == 1) {
168 | if (pluginListView.getSelectionModel().getSelectedItem().getExploits() == null) {
169 | toExploit.setDisable(true);
170 | }
171 | ListCell cell = getClickedCell(event);
172 | if (cell.getText() != null) {
173 | contextMenu.show(cell, event.getScreenX(), event.getScreenY());
174 | }
175 | }
176 |
177 | toPocScan.setOnAction(toPocScanEvent -> {
178 | pocexpTabPane.getSelectionModel().select(0);
179 | List selectedPlugins = pluginListView.getSelectionModel().getSelectedItems();
180 | for (PluginImpl plugin : selectedPlugins) {
181 | if (!scanPocList.getItems().contains(plugin)) {
182 | scanPocList.getItems().add(plugin);
183 | }
184 |
185 | }
186 | });
187 |
188 |
189 | toExploit.setOnAction(toExploitEvent -> {
190 | pocexpTabPane.getSelectionModel().select(1);
191 | List exploits = pluginListView.getSelectionModel().getSelectedItem().getExploits();
192 | for (Exploit exploit : exploits) {
193 | Tab expTab = new Tab();
194 | expTab.setClosable(true);
195 | expTab.setText(exploit.setExploitTitle());
196 | expTab.setId(String.valueOf(exploit));
197 | expMap.put(String.valueOf(exploit), exploit);
198 | exploitTabPane.getTabs().add(expTab);
199 | exploitTabPane.getSelectionModel().select(expTab);
200 | HelpPluginImpl helpPlugin = new HelpPluginImpl();
201 | List argsInfoList = exploit.setArgs(helpPlugin);
202 | if (argsInfoList == null) {
203 | SplitPane splitPane = (SplitPane) ComponentUtil.loadComponent(String.valueOf(exploit), "fxml/Exploit/Exploit.fxml", Controller.components);
204 | TitledPane resultTitledPane = (TitledPane) splitPane.getItems().get(0);
205 | exploitResutlText = (JFXTextArea) resultTitledPane.getContent();
206 |
207 | try {
208 | Method initInfoMethod = exploit.getClass().getMethod("initInfo");
209 | if (initInfoMethod != null) {
210 | Object result = initInfoMethod.invoke(exploit);
211 | if (result == null) {
212 | exploitResutlText.appendText("Default Information is Null\n");
213 | } else {
214 | exploitResutlText.appendText("【#INFO#】\n" + result + "\n---------------------------------------------------------------------------------------------------------\n\n");
215 | }
216 | }
217 | } catch (InvocationTargetException e) {
218 | exploitResutlText.appendText("Method 'initInfo' does not exist.未编写初始化信息\n");
219 | } catch (Exception e) {
220 | e.printStackTrace();
221 | }
222 |
223 | expTab.setContent(splitPane);
224 | } else {
225 | SplitPane splitPane = (SplitPane) ComponentUtil.loadComponent(String.valueOf(exploit), "fxml/Exploit/Args_Exploit.fxml", Controller.components);
226 | TitledPane argsTilePane = (TitledPane) splitPane.getItems().get(0);
227 | TitledPane resultTitledPane = (TitledPane) splitPane.getItems().get(1);
228 | exploitResutlText = (JFXTextArea) resultTitledPane.getContent();
229 | try {
230 | Method initInfoMethod = exploit.getClass().getMethod("initInfo");
231 | if (initInfoMethod != null) {
232 | Object result = initInfoMethod.invoke(exploit);
233 | if (result == null) {
234 | exploitResutlText.appendText("Default Information is Null\n");
235 | } else {
236 | exploitResutlText.appendText("【#INFO#】\n" + result + "\n---------------------------------------------------------------------------------------------------------\n\n");
237 | }
238 | }
239 | } catch (InvocationTargetException e) {
240 | exploitResutlText.appendText("Method 'initInfo' does not exist.未编写初始化信息\n");
241 | } catch (Exception e) {
242 | e.printStackTrace();
243 | }
244 |
245 |
246 | CodeArea argsCodeArea = new CodeArea();
247 | argsCodeArea.setStyle("-fx-font-size: " + defaultFont.getSize() + "px; -fx-font-family: " + defaultFont.getFamily() + ";");
248 | argsCodeArea.setWrapText(true);
249 | argsCodeArea.setId("argsCodeArea");
250 | argsCodeArea.getStylesheets().add(Objects.requireNonNull(getClass().getClassLoader().getResource("css/main.css")).toExternalForm());
251 | argsCodeArea.setParagraphGraphicFactory(LineNumberFactory.get(argsCodeArea));
252 |
253 | Tooltip argsDescTip = new Tooltip();
254 | Tooltip.install(argsCodeArea, argsDescTip);
255 | StringBuilder stringBuilder = new StringBuilder();
256 | for (int i = 0; i < argsInfoList.size(); i++) {
257 | ArgsInfoImpl args = (ArgsInfoImpl) argsInfoList.get(i);
258 | String argsName = args.getArgsName();
259 | if (!args.getDefaultValue().isEmpty()) {
260 | argsCodeArea.appendText(argsName + "=" + args.getDefaultValue());
261 | } else {
262 | argsCodeArea.appendText(argsName + "=");
263 | }
264 | if (args.getDescription() != null) {
265 | stringBuilder.append(args.getArgsName()).append("\t//").append(args.getDescription()).append(System.getProperty("line.separator"));
266 | }
267 |
268 | if (i < argsInfoList.size() - 1) {
269 | argsCodeArea.appendText(System.getProperty("line.separator"));
270 | }
271 | }
272 | argsDescTip.setText(stringBuilder.toString());
273 | argsCodeArea.setOnMouseMoved(event1 -> {
274 | argsDescTip.show(argsCodeArea, event1.getScreenX() + 10, event1.getScreenY() + 10);
275 | });
276 | argsCodeArea.setOnMouseExited(event1 -> {
277 | argsDescTip.hide();
278 | });
279 |
280 |
281 | argsTilePane.setContent(argsCodeArea);
282 | expTab.setContent(splitPane);
283 | }
284 |
285 | }
286 |
287 | });
288 |
289 |
290 | }
291 |
292 | private ListCell getClickedCell(MouseEvent event) {
293 | Node node = event.getPickResult().getIntersectedNode();
294 | while (node != null && !(node instanceof ListCell)) {
295 | node = node.getParent();
296 | }
297 | return (ListCell) node;
298 | }
299 |
300 | private void initPocPane() {
301 | scanPocList.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
302 | scanPocList.setCellFactory(param -> new ListCell() {
303 | @Override
304 | protected void updateItem(PluginImpl item, boolean empty) {
305 | super.updateItem(item, empty);
306 | if (empty || item == null) {
307 | setText(null);
308 | } else {
309 | setText(item.getPluginName());
310 | }
311 | }
312 | });
313 |
314 | pocTargetAddressTextArea = new CodeArea();
315 | pocTargetAddressTextArea.setStyle("-fx-font-size: " + defaultFont.getSize() + "px; -fx-font-family: " + defaultFont.getFamily() + ";");
316 | pocTargetAddressTextArea.getStylesheets().add(Objects.requireNonNull(getClass().getClassLoader().getResource("css/main.css")).toExternalForm());
317 | pocTargetAddressTextArea.setWrapText(true);
318 | pocTargetAddressTextArea.setId("pocTargetAddressTextArea");
319 | pocTargetAddressTextArea.setParagraphGraphicFactory(LineNumberFactory.get(pocTargetAddressTextArea));
320 | targetInfoSplitPane.getItems().add(0, pocTargetAddressTextArea);
321 |
322 | pocResPluginNameCol.setCellValueFactory(new PropertyValueFactory<>("PluginName"));
323 | pocResTargetCol.setCellValueFactory(new PropertyValueFactory<>("PocTarget"));
324 | isvulCol.setCellValueFactory(new PropertyValueFactory<>("PocVul"));
325 | pocMsgCol.setCellValueFactory(new PropertyValueFactory<>("PocMsg"));
326 | pocTimeCol.setCellValueFactory(new PropertyValueFactory<>("PocTime"));
327 | pocResultTable.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
328 | ContextMenu contextMenu = new ContextMenu();
329 | MenuItem clearTableview = new MenuItem("delete result");
330 | contextMenu.getItems().add(clearTableview);
331 | pocResultTable.setContextMenu(contextMenu);
332 | clearTableview.setOnAction(clearTableviewEvent -> {
333 | List list = new ArrayList<>(pocResultTable.getSelectionModel().getSelectedItems());
334 | pocResultTable.getItems().removeAll(list);
335 | });
336 |
337 | }
338 |
339 |
340 | @FXML
341 | private void monitorPocPlugin(MouseEvent event) {
342 | ContextMenu contextMenu = new ContextMenu();
343 | MenuItem removePlugin = new MenuItem("remove plugin");
344 | contextMenu.getItems().add(removePlugin);
345 | if (event.getButton() == MouseButton.SECONDARY && !scanPocList.getSelectionModel().getSelectedItems().isEmpty()) {
346 | ListCell cell = getClickedCell(event);
347 | if (cell != null) {
348 | contextMenu.show(cell, event.getScreenX(), event.getScreenY());
349 | }
350 | } else if (event.getClickCount() == 2 && !scanPocList.getSelectionModel().getSelectedItems().isEmpty()) {
351 | List list = new ArrayList<>(scanPocList.getSelectionModel().getSelectedItems());
352 | scanPocList.getItems().removeAll(list);
353 | }
354 |
355 | removePlugin.setOnAction(removePluginEvent -> {
356 | List list = new ArrayList<>(scanPocList.getSelectionModel().getSelectedItems());
357 | scanPocList.getItems().removeAll(list);
358 | });
359 | }
360 |
361 |
362 | //runPoc
363 | @FXML
364 | private void startPoc() {
365 | if (pocTargetAddressTextArea.getText().isEmpty()) {
366 | CommonUtils.alert("Please input url");
367 | return;
368 | }
369 | if (scanPocList.getItems().isEmpty()) {
370 | CommonUtils.alert("Please select plugin");
371 | return;
372 | }
373 | String[] urls = pocTargetAddressTextArea.getText().split("\n");
374 | ObservableList plugins = FXCollections.observableArrayList(scanPocList.getItems());
375 | //proxy
376 | SettingController settingController = (SettingController) Controller.controllers.get("setting");
377 | ExecutorService executorService = Executors.newFixedThreadPool(urls.length);
378 | Boolean proxyStatus = settingController.getProxyStatus();
379 | for (PluginImpl plugin : plugins) {
380 | for (String url : urls) {
381 | Runnable scanTask = () -> {
382 | TargetInfoImpl targetInfo = new TargetInfoImpl();
383 | targetInfo.setAddress(url);
384 | targetInfo.setUserAgent(settingController.getUserAgent());
385 | targetInfo.setTimeout(settingController.getTimeout());
386 | targetInfo.setCharset(settingController.getCharset());
387 | targetInfo.setDnslog(settingController.getDNSLog());
388 | targetInfo.setCookie(settingController.getCustomCookie());
389 | ResultImpl result = new ResultImpl();
390 | result.setPluginName(plugin.getPluginName());
391 | result.setPocTarget(url);
392 | Date date = new Date();
393 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
394 | result.setPocTime(simpleDateFormat.format(date));
395 | if (proxyStatus) {
396 | String proxyIP = settingController.getProxyIP();
397 | String proxyPort = settingController.getProxyPort();
398 | String proxyUsername = settingController.getProxyUsername();
399 | String proxyPassword = settingController.getProxyPassword();
400 | String proxyType = settingController.getProxyType();
401 | Poc proxyObj;
402 | if (!proxyUsername.isEmpty() && !proxyPassword.isEmpty()) {
403 | proxyObj = (Poc) Proxy.newProxyInstance(plugin.getPoc().getClass().getClassLoader(), new Class[]{Poc.class}, new ProxyHandler(plugin.getPoc(), proxyIP, proxyPort, proxyUsername, proxyPassword, proxyType));
404 | }
405 | proxyObj = (Poc) Proxy.newProxyInstance(plugin.getPoc().getClass().getClassLoader(), new Class[]{Poc.class}, new ProxyHandler(plugin.getPoc(), proxyIP, proxyPort, proxyType));
406 | proxyObj.doPoc(targetInfo, result);
407 |
408 | } else {
409 | plugin.getPoc().doPoc(targetInfo, result);
410 | }
411 |
412 |
413 | Platform.runLater(() -> {
414 | pocResultTable.getItems().addAll(result);
415 | //print poc result
416 | pocResultText.appendText("【»»»»】" + plugin.getPluginName() + "\tis Started\n\n");
417 | if (!result.getInfo().isEmpty()) {
418 | pocResultText.appendText(String.join("\n", result.getInfo()) + "\n");
419 | }
420 | if (!result.getSuccess().isEmpty()) {
421 | pocResultText.appendText(String.join("\n", result.getSuccess()) + "\n");
422 | }
423 | if (!result.getRaw().isEmpty()) {
424 | pocResultText.appendText(String.join("\n", result.getRaw()) + "\n");
425 | }
426 | if (!result.getFail().isEmpty()) {
427 | pocResultText.appendText(String.join("\n", result.getFail()) + "\n");
428 | }
429 | if (!result.getError().isEmpty()) {
430 | pocResultText.appendText(String.join("\n", result.getError()) + "\n");
431 | }
432 | pocResultText.appendText("\n【««««】" + plugin.getPluginName() + "\tis Stoped\n---------------------------------------------------------------------------------------------------------\n\n");
433 | });
434 | };
435 | executorService.execute(scanTask);
436 |
437 | }
438 | }
439 | executorService.shutdown();
440 |
441 | }
442 |
443 | //runExploit
444 | @FXML
445 | private void startExploit() {
446 | if (exploitTargetAddressText.getText().isEmpty()) {
447 | CommonUtils.alert("Please input url");
448 | return;
449 | }
450 | if (exploitTabPane.getSelectionModel().isEmpty()) {
451 | CommonUtils.alert("Please select plugin");
452 | return;
453 | }
454 |
455 | Tab selected = exploitTabPane.getSelectionModel().getSelectedItem();
456 | Exploit exploit = expMap.get(selected.getId());
457 | TargetInfoImpl targetInfo = new TargetInfoImpl();
458 | ResultImpl result = new ResultImpl();
459 | HashMap argsMap = new HashMap<>();
460 | String exploitTargetAddress = CommonUtils.urlParse(exploitTargetAddressText.getText());
461 | targetInfo.setAddress(exploitTargetAddress);
462 | SettingController settingController = (SettingController) Controller.controllers.get("setting");
463 | targetInfo.setUserAgent(settingController.getUserAgent());
464 | targetInfo.setTimeout(settingController.getTimeout());
465 | targetInfo.setCharset(settingController.getCharset());
466 | targetInfo.setDnslog(settingController.getDNSLog());
467 | SplitPane splitPane = (SplitPane) Controller.components.get(String.valueOf(exploit));
468 | List argsInfoList = exploit.setArgs(new HelpPluginImpl());
469 | if (argsInfoList != null) {
470 | List argsNames = new ArrayList<>();
471 | for (ArgsInfo argsInfo : argsInfoList) {
472 | ArgsInfoImpl args = (ArgsInfoImpl) argsInfo;
473 | String argsName = args.getArgsName();
474 | argsNames.add(argsName);
475 | }
476 | CodeArea argsCodeArea = (CodeArea) splitPane.lookup("#argsCodeArea");
477 | LiveList, String, Collection>> lines = argsCodeArea.getParagraphs();
478 | String key = null;
479 | String value = null;
480 | for (Paragraph, String, Collection> line : lines) {
481 | Pattern keyPattern = Pattern.compile("^[^=]*");
482 | Matcher keyMatcher = keyPattern.matcher(line.getText());
483 | if (keyMatcher.find()) {
484 | key = keyMatcher.group();
485 | }
486 | Pattern valuePattern = Pattern.compile("(?<=\\=)(.*)");
487 | Matcher valueMatcher = valuePattern.matcher(line.getText());
488 | if (valueMatcher.find()) {
489 | value = valueMatcher.group();
490 | }
491 | if (argsNames.contains(key)) {
492 | argsMap.put(key, value);
493 | }
494 | }
495 | }
496 |
497 |
498 | //proxy
499 | Boolean isProxy = settingController.getProxyStatus();
500 | if (isProxy) {
501 | String proxyIP = settingController.getProxyIP();
502 | String proxyPort = settingController.getProxyPort();
503 | String proxyUsername = settingController.getProxyUsername();
504 | String proxyPassword = settingController.getProxyPassword();
505 | String proxyType = settingController.getProxyType();
506 | Exploit proxyObj;
507 | if (!proxyUsername.isEmpty() && !proxyPassword.isEmpty()) {
508 | proxyObj = (Exploit) Proxy.newProxyInstance(exploit.getClass().getClassLoader(), new Class[]{Exploit.class}, new ProxyHandler(exploit, proxyIP, proxyPort, proxyUsername, proxyPassword, proxyType));
509 | } else {
510 | proxyObj = (Exploit) Proxy.newProxyInstance(exploit.getClass().getClassLoader(), new Class[]{Exploit.class}, new ProxyHandler(exploit, proxyIP, proxyPort, proxyType));
511 | proxyObj.doExploit(targetInfo, argsMap, result);
512 | }
513 | } else {
514 | exploit.doExploit(targetInfo, argsMap, result);
515 | }
516 |
517 | //result
518 | exploitResutlText.appendText("【»»»»】" + exploit.setExploitTitle() + "\tis Started\n\n");
519 | if (!result.getInfo().isEmpty()) {
520 | exploitResutlText.appendText(String.join("\n", result.getInfo()) + "\n");
521 | }
522 | if (!result.getSuccess().isEmpty()) {
523 | exploitResutlText.appendText(String.join("\n", result.getSuccess()) + "\n");
524 | }
525 | if (!result.getRaw().isEmpty()) {
526 | exploitResutlText.appendText(String.join("\n", result.getRaw()) + "\n");
527 | }
528 | if (!result.getFail().isEmpty()) {
529 | exploitResutlText.appendText(String.join("\n", result.getFail()) + "\n");
530 | }
531 | if (!result.getError().isEmpty()) {
532 | exploitResutlText.appendText(String.join("\n", result.getError()) + "\n");
533 | }
534 | exploitResutlText.appendText("\n【««««】" + exploit.setExploitTitle() + "\tis Stoped\n---------------------------------------------------------------------------------------------------------\n\n");
535 |
536 |
537 | }
538 |
539 |
540 | }
541 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/controller/SettingController.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.controller;
2 |
3 | import cn.hutool.http.HttpRequest;
4 | import cn.hutool.http.HttpResponse;
5 | import cn.hutool.json.JSONArray;
6 | import cn.hutool.json.JSONObject;
7 | import com.ha1ey.CandleDragon.common.CommonUtils;
8 | import com.ha1ey.CandleDragon.core.DNSLogResultEntity;
9 | import com.jfoenix.controls.JFXCheckBox;
10 | import com.jfoenix.controls.JFXComboBox;
11 | import com.jfoenix.controls.JFXRadioButton;
12 | import com.jfoenix.controls.JFXTextField;
13 | import javafx.event.ActionEvent;
14 | import javafx.fxml.FXML;
15 | import javafx.scene.control.TitledPane;
16 | import javafx.scene.control.ToggleGroup;
17 | import org.fxmisc.richtext.CodeArea;
18 | import org.fxmisc.richtext.LineNumberFactory;
19 | import org.fxmisc.richtext.model.Paragraph;
20 | import org.reactfx.collection.LiveList;
21 |
22 | import java.net.InetAddress;
23 | import java.time.LocalDateTime;
24 | import java.time.ZoneId;
25 | import java.time.ZoneOffset;
26 | import java.time.ZonedDateTime;
27 | import java.time.format.DateTimeFormatter;
28 | import java.util.*;
29 |
30 | public class SettingController {
31 | @FXML
32 | private JFXComboBox proxyTypeComboBox;
33 | @FXML
34 | private JFXTextField proxyIPText;
35 | @FXML
36 | private JFXTextField proxyPortText;
37 | @FXML
38 | private JFXTextField proxyUsernameText;
39 | @FXML
40 | private JFXTextField proxyPasswordText;
41 | Boolean isProxy;
42 | @FXML
43 | private JFXCheckBox proxySwitch;
44 | @FXML
45 | private JFXTextField timeoutText;
46 | @FXML
47 | private TitledPane uaTitlePane;
48 |
49 |
50 | CodeArea codeArea;
51 |
52 |
53 | @FXML
54 | private JFXRadioButton gbkRadioButton;
55 | @FXML
56 | private JFXRadioButton usasciiRadioButton;
57 | @FXML
58 | private JFXRadioButton isoRadioButton;
59 |
60 | @FXML
61 | private JFXRadioButton utf8RadioButton;
62 |
63 | @FXML
64 | private JFXTextField dnslogApiText;
65 | @FXML
66 | private JFXTextField dnslogDomainText;
67 | @FXML
68 | private JFXTextField dnslogTokenText;
69 | @FXML
70 | private JFXTextField dnslogRefreshTimeText;
71 | @FXML
72 | private JFXComboBox dnslogComboxBox;
73 |
74 | @FXML
75 | private JFXTextField customCookieText;
76 |
77 | private final List ualist = new ArrayList<>();
78 | private long lastTimestamp = 0;
79 |
80 |
81 | @FXML
82 | private void initialize() {
83 | initProxyParams();
84 | initHttp();
85 | initCharset();
86 | initDNSLog();
87 |
88 | }
89 |
90 |
91 | //Proxy
92 | private void initProxyParams() {
93 | proxyTypeComboBox.getItems().add(0, "HTTP");
94 | proxyTypeComboBox.getItems().add(1, "SOCKS");
95 | proxyTypeComboBox.getSelectionModel().selectFirst();
96 | isProxy = false;
97 | proxySwitch.setSelected(false);
98 | proxySwitch.setOnAction(event -> {
99 | Controller controller = (Controller) Controller.controllers.get("control");
100 | String proxyType = proxyTypeComboBox.getSelectionModel().getSelectedItem();
101 | if (proxySwitch.isSelected()) {
102 | if (!proxyIPText.getText().isEmpty() && !proxyPortText.getText().isEmpty()) {
103 | isProxy = true;
104 | proxyTypeComboBox.setDisable(true);
105 | proxyIPText.setDisable(true);
106 | proxyPortText.setDisable(true);
107 | proxyUsernameText.setDisable(true);
108 | proxyPasswordText.setDisable(true);
109 | controller.setProxyStatusLabel(proxyIPText.getText(), proxyPortText.getText(), proxyType, isProxy);
110 | } else {
111 | CommonUtils.alert("Please input proxyip and proxyport");
112 | proxySwitch.setSelected(false);
113 | }
114 | } else {
115 | isProxy = false;
116 | controller.setProxyStatusLabel(proxyIPText.getText(), proxyPortText.getText(), proxyType, isProxy);
117 | proxyTypeComboBox.setDisable(false);
118 | proxyIPText.setDisable(false);
119 | proxyPortText.setDisable(false);
120 | proxyUsernameText.setDisable(false);
121 | proxyPasswordText.setDisable(false);
122 | }
123 | });
124 | }
125 |
126 |
127 | //charset
128 | private void initCharset() {
129 | ToggleGroup toggleGroup = new ToggleGroup();
130 | toggleGroup.getToggles().add(gbkRadioButton);
131 | toggleGroup.getToggles().add(usasciiRadioButton);
132 | toggleGroup.getToggles().add(isoRadioButton);
133 | toggleGroup.getToggles().add(utf8RadioButton);
134 | utf8RadioButton.setSelected(true);
135 | }
136 |
137 | private void initHttp() {
138 |
139 | ualist.add("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
140 | ualist.add("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36");
141 | ualist.add("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36");
142 | ualist.add("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2226.0 Safari/537.36");
143 | ualist.add("Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko");
144 | ualist.add("Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko");
145 | ualist.add("Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0");
146 | ualist.add("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0; InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)");
147 | ualist.add("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)");
148 | ualist.add("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)");
149 | ualist.add("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)");
150 | ualist.add("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 2.0.50727; WOW64)");
151 | ualist.add("Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)");
152 | ualist.add("Mozilla/4.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)");
153 | ualist.add("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) ChromePlus/4.0.222.3 Chrome/4.0.222.3 Safari/532.2");
154 | ualist.add("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 ChromePlus/4.0.222.3 Chrome/4.0.222.3 Safari/525.28.3");
155 | ualist.add("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1");
156 | ualist.add("Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0");
157 | ualist.add("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0");
158 | ualist.add("Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/31.0");
159 | ualist.add("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20130401 Firefox/31.0");
160 | ualist.add("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0");
161 |
162 |
163 | codeArea = new CodeArea();
164 | codeArea.setParagraphGraphicFactory(LineNumberFactory.get(codeArea));
165 | codeArea.setWrapText(true);
166 | for (int i = 0; i < ualist.size(); i++) {
167 | String ua = ualist.get(i);
168 | codeArea.appendText(ua);
169 | if (i < ualist.size() - 1) {
170 | codeArea.appendText(System.getProperty("line.separator"));
171 | }
172 | }
173 | codeArea.getStylesheets().add(Objects.requireNonNull(getClass().getClassLoader().getResource("css/main.css")).toExternalForm());
174 | uaTitlePane.setContent(codeArea);
175 |
176 |
177 | }
178 |
179 |
180 | //DNSLog
181 | private void initDNSLog() {
182 | dnslogComboxBox.getItems().add(0, "RACP");
183 | dnslogComboxBox.getItems().add("Custom DNSLogPlatform");
184 | dnslogComboxBox.getSelectionModel().selectFirst();
185 | dnslogApiText.setDisable(true);
186 | dnslogComboxBox.setOnAction(event -> {
187 | if (dnslogComboxBox.getSelectionModel().getSelectedItem().equals("Custom DNSLogPlatform")){
188 | dnslogApiText.setDisable(false);
189 | }else {
190 | dnslogApiText.setDisable(true);
191 | }
192 | });
193 |
194 | }
195 |
196 | @FXML
197 | private void autoRefresh(ActionEvent actionEvent) {
198 | if (dnslogDomainText.getText().isEmpty() || dnslogTokenText.getText().isEmpty()){
199 | CommonUtils.alert("Please input DNSLog Domain or DNSLogToken !");
200 | return;
201 | }
202 | Timer timer = new Timer();
203 | TimerTask task = new TimerTask() {
204 | @Override
205 | public void run() {
206 | DebugController debugController = (DebugController) Controller.controllers.get("debug");
207 | HttpResponse r = HttpRequest.get("http://107.182.20.190/v1/records?token=" + dnslogTokenText.getText() + "&search=" + dnslogDomainText.getText()).execute();
208 | if (r.getStatus() == 200 && r.body() != null) {
209 | JSONObject jsonObject = new JSONObject(r.body());
210 | JSONArray jsonArray = jsonObject.getJSONArray("records");
211 | List sortedRecords = new ArrayList<>();
212 | for (Object obj : jsonArray) {
213 | sortedRecords.add((JSONObject) obj);
214 | }
215 |
216 | Collections.sort(sortedRecords,((o1, o2) -> {
217 | long timestamp1 = Long.parseLong((String) o1.get("createTime"));
218 | long timestamp2 = Long.parseLong((String) o2.get("createTime"));
219 | return Long.compare(timestamp1,timestamp2);
220 | }));
221 |
222 | for (JSONObject jsonObj : sortedRecords){
223 | String createTime = (String) jsonObj.get("createTime");
224 | long timestamp = Long.parseLong(createTime);
225 | if (timestamp > lastTimestamp){
226 | String domain = (String) jsonObj.get("queryDomain");
227 | String reqip = (String) jsonObj.get("ip");
228 |
229 | LocalDateTime dateTime = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.of("+8"));
230 | ZoneId zoneId = ZoneId.of("Asia/Shanghai");
231 | ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneId);
232 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
233 | String time = zonedDateTime.format(formatter);
234 | DNSLogResultEntity dnsLogResult = new DNSLogResultEntity();
235 | dnsLogResult.setDomain(domain);
236 | dnsLogResult.setTime(time);
237 | dnsLogResult.setReqip(reqip);
238 | debugController.getDnslogResultTable().getItems().add(dnsLogResult);
239 | }
240 | }
241 | if (!sortedRecords.isEmpty()){
242 | JSONObject lastRecord = sortedRecords.get(sortedRecords.size() - 1);
243 | String lastCreateTime = (String) lastRecord.get("createTime");
244 | lastTimestamp = Long.parseLong(lastCreateTime);
245 | }
246 |
247 | }
248 |
249 | }
250 | };
251 | timer.scheduleAtFixedRate(task, 0, Integer.parseInt(dnslogRefreshTimeText.getText()));
252 |
253 | }
254 |
255 | @FXML
256 | private void testDNSLog() {
257 | if (dnslogDomainText.getText().isEmpty()){
258 | CommonUtils.alert("Please input DNSLog Domain!");
259 | return;
260 | }
261 | try {
262 | InetAddress.getByName(dnslogDomainText.getText());
263 | } catch (Exception ignored) {
264 | }
265 | }
266 |
267 | @FXML
268 | private void getDNSLogResult() {
269 | if (dnslogDomainText.getText().isEmpty() || dnslogTokenText.getText().isEmpty()){
270 | CommonUtils.alert("Please input DNSLog Domain or DNSLogToken !");
271 | return;
272 | }
273 | DebugController debugController = (DebugController) Controller.controllers.get("debug");
274 | HttpResponse r = HttpRequest.get("http://107.182.20.190/v1/records?token=" + dnslogTokenText.getText() + "&search=" + dnslogDomainText.getText()).execute();
275 | if (r.getStatus() == 200 && r.body() != null) {
276 | JSONObject jsonObject = new JSONObject(r.body());
277 | JSONArray jsonArray = jsonObject.getJSONArray("records");
278 | List sortedRecords = new ArrayList<>();
279 | for (Object obj : jsonArray) {
280 | sortedRecords.add((JSONObject) obj);
281 | }
282 |
283 | Collections.sort(sortedRecords,((o1, o2) -> {
284 | long timestamp1 = Long.parseLong((String) o1.get("createTime"));
285 | long timestamp2 = Long.parseLong((String) o2.get("createTime"));
286 | return Long.compare(timestamp1,timestamp2);
287 | }));
288 |
289 | for (JSONObject jsonObj : sortedRecords){
290 | String createTime = (String) jsonObj.get("createTime");
291 | long timestamp = Long.parseLong(createTime);
292 | if (timestamp > lastTimestamp){
293 | String domain = (String) jsonObj.get("queryDomain");
294 | String reqip = (String) jsonObj.get("ip");
295 |
296 | LocalDateTime dateTime = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.of("+8"));
297 | ZoneId zoneId = ZoneId.of("Asia/Shanghai");
298 | ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneId);
299 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
300 | String time = zonedDateTime.format(formatter);
301 | DNSLogResultEntity dnsLogResult = new DNSLogResultEntity();
302 | dnsLogResult.setDomain(domain);
303 | dnsLogResult.setTime(time);
304 | dnsLogResult.setReqip(reqip);
305 | debugController.getDnslogResultTable().getItems().add(dnsLogResult);
306 | }
307 | }
308 | if (!sortedRecords.isEmpty()){
309 | JSONObject lastRecord = sortedRecords.get(sortedRecords.size() - 1);
310 | String lastCreateTime = (String) lastRecord.get("createTime");
311 | lastTimestamp = Long.parseLong(lastCreateTime);
312 | }
313 |
314 | }
315 | }
316 |
317 |
318 | public String getCharset() {
319 | String charset = null;
320 | if (gbkRadioButton.isSelected()) {
321 | charset = "GBK";
322 | }
323 | if (usasciiRadioButton.isSelected()) {
324 | charset = "US-ASCII";
325 | }
326 | if (isoRadioButton.isSelected()) {
327 | charset = "ISO-8859-1";
328 | }
329 | if (utf8RadioButton.isSelected()) {
330 | charset = "UTF-8";
331 | }
332 | return charset;
333 | }
334 |
335 | public String getUserAgent() {
336 | LiveList, String, Collection>> lines = codeArea.getParagraphs();
337 | String ua;
338 | if (lines.size() > 1) {
339 | Random random = new Random();
340 | int randomIndex = random.nextInt(lines.size());
341 | Paragraph, String, Collection> randomLine = lines.get(randomIndex);
342 | ua = randomLine.getText();
343 | } else {
344 | ua = codeArea.getParagraph(0).getText();
345 | }
346 |
347 | return ua;
348 | }
349 |
350 | public int getTimeout() {
351 | return Integer.parseInt(timeoutText.getText());
352 | }
353 |
354 | public String getDNSLog() {
355 | return dnslogDomainText.getText();
356 | }
357 |
358 | public String getProxyIP() {
359 | return proxyIPText.getText();
360 | }
361 |
362 | public String getProxyPort() {
363 | return proxyPortText.getText();
364 | }
365 |
366 | public String getProxyUsername() {
367 | return proxyUsernameText.getText();
368 | }
369 |
370 | public String getProxyPassword() {
371 | return proxyPasswordText.getText();
372 | }
373 |
374 | public String getProxyType() {
375 | return proxyTypeComboBox.getSelectionModel().getSelectedItem();
376 | }
377 |
378 | public Boolean getProxyStatus() {
379 | return isProxy;
380 | }
381 |
382 | public String getCustomCookie(){
383 | return customCookieText.getText();
384 | }
385 |
386 |
387 | }
388 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/core/ArgsInfoImpl.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.core;
2 |
3 | import com.ha1ey.CandleDragon.plugin.ArgsInfo;
4 |
5 | public class ArgsInfoImpl implements ArgsInfo {
6 | private String argsName;
7 | private String defaultValue;
8 | private String description;
9 | public String getArgsName() {
10 | return argsName;
11 | }
12 |
13 | public String getDefaultValue() {
14 | return defaultValue;
15 | }
16 |
17 | public String getDescription() {
18 | return description;
19 | }
20 |
21 |
22 | @Override
23 | public void setArgsName(String str) {
24 | this.argsName = str;
25 | }
26 |
27 | @Override
28 | public void setDefaultValue(String str) {
29 | this.defaultValue = str;
30 | }
31 |
32 | @Override
33 | public void setDescription(String str) {
34 | this.description = str;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/core/DNSLogResultEntity.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.core;
2 |
3 | /**
4 | * @author Ha1ey
5 | * @descrition
6 | * @date 2023-07-31 23:29
7 | **/
8 | public class DNSLogResultEntity {
9 | private String time;
10 | private String reqip;
11 | private String domain;
12 |
13 |
14 | public String getTime() {
15 | return time;
16 | }
17 |
18 | public void setTime(String time) {
19 | this.time = time;
20 | }
21 |
22 | public String getReqip() {
23 | return reqip;
24 | }
25 |
26 | public void setReqip(String reqip) {
27 | this.reqip = reqip;
28 | }
29 |
30 | public String getDomain() {
31 | return domain;
32 | }
33 |
34 | public void setDomain(String domain) {
35 | this.domain = domain;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/core/HelpPluginImpl.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.core;
2 |
3 | import com.ha1ey.CandleDragon.plugin.ArgsInfo;
4 | import com.ha1ey.CandleDragon.plugin.HelpPlugin;
5 |
6 | public class HelpPluginImpl implements HelpPlugin {
7 | @Override
8 | public ArgsInfo createArgs() {
9 | return new ArgsInfoImpl();
10 | }
11 |
12 |
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/core/PluginImpl.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.core;
2 |
3 |
4 | import com.ha1ey.CandleDragon.plugin.*;
5 |
6 | import java.util.List;
7 |
8 | public class PluginImpl implements PluginInfo {
9 |
10 |
11 | private String pluginName;
12 | private String pluginVersion;
13 | private String pluginAuthor;
14 | private String vulName;
15 | private String vulId;
16 | private String vulCategory;
17 | private String product;
18 | private String vulScope;
19 | private String description;
20 | private String vulDisclosureTime;
21 |
22 | private List exploits;
23 |
24 | private Poc poc;
25 |
26 | public String getPluginName() {
27 | return pluginName;
28 | }
29 |
30 | public String getPluginVersion() {
31 | return pluginVersion;
32 | }
33 |
34 | public String getPluginAuthor() {
35 | return pluginAuthor;
36 | }
37 |
38 | public String getVulName() {
39 | return vulName;
40 | }
41 |
42 | public String getVulId() {
43 | return vulId;
44 | }
45 |
46 | public String getVulCategory() {
47 | return vulCategory;
48 | }
49 |
50 | public String getProduct() {
51 | return product;
52 | }
53 |
54 | public String getVulScope() {
55 | return vulScope;
56 | }
57 |
58 | public String getDescription() {
59 | return description;
60 | }
61 |
62 | public String getVulDisclosureTime() {
63 | return vulDisclosureTime;
64 | }
65 |
66 | public List getExploits() {
67 | return exploits;
68 | }
69 |
70 | public Poc getPoc() {
71 | return poc;
72 | }
73 |
74 |
75 |
76 | @Override
77 | public void setPluginName(String name) {
78 | this.pluginName = name;
79 | }
80 |
81 | @Override
82 | public void setPluginVersion(String version) {
83 | this.pluginVersion = version;
84 | }
85 |
86 | @Override
87 | public void setPluginAuthor(String author) {
88 | this.pluginAuthor = author;
89 | }
90 |
91 | @Override
92 | public void setVulName(String vulName) {
93 | this.vulName = vulName;
94 | }
95 |
96 | @Override
97 | public void setVulId(String vid) {
98 | this.vulId = vid;
99 | }
100 |
101 |
102 | @Override
103 | public void setVulCategory(String category) {
104 | this.vulCategory = category;
105 | }
106 |
107 | @Override
108 | public void setVulProduct(String product) {
109 | this.product = product;
110 | }
111 |
112 | @Override
113 | public void setVulScope(String scope) {
114 | this.vulScope = scope;
115 | }
116 |
117 |
118 | @Override
119 | public void setDescription(String description) {
120 | this.description = description;
121 | }
122 |
123 | @Override
124 | public void setVulDisclosureTime(String disclosureTime) {
125 | this.vulDisclosureTime = disclosureTime;
126 | }
127 |
128 | @Override
129 | public void addExploit(List list) {
130 | this.exploits = list;
131 | }
132 |
133 | @Override
134 | public void addPoc(Poc poc) {
135 | this.poc = poc;
136 | }
137 |
138 | }
139 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/core/RegistersImpl.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.core;
2 |
3 |
4 | import com.ha1ey.CandleDragon.common.CommonUtils;
5 | import com.ha1ey.CandleDragon.plugin.IPlugin;
6 | import com.ha1ey.CandleDragon.plugin.Register;
7 | import com.ha1ey.CandleDragon.plugin.UtilPlugin;
8 |
9 |
10 | public class RegistersImpl implements Register {
11 |
12 | @Override
13 | public void doRegister(IPlugin plugin) {
14 | PluginImpl pluginImpl = new PluginImpl();
15 | plugin.setPluginInfo(pluginImpl);
16 | CommonUtils.pluginList.add(pluginImpl);
17 | }
18 |
19 | @Override
20 | public void addUtil(UtilPlugin utilPlugin) {
21 | UtilsPluginImpl utilsImpl = new UtilsPluginImpl();
22 | utilPlugin.setUtilInfo(utilsImpl);
23 | CommonUtils.utilsList.add(utilsImpl);
24 | }
25 |
26 |
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/core/ResultImpl.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.core;
2 |
3 | import com.ha1ey.CandleDragon.common.CommonUtils;
4 | import com.ha1ey.CandleDragon.plugin.Result;
5 |
6 | import java.io.PrintWriter;
7 | import java.io.StringWriter;
8 | import java.io.Writer;
9 | import java.util.ArrayList;
10 | import java.util.List;
11 |
12 | public class ResultImpl implements Result {
13 | private List info = new ArrayList<>();
14 | private List error = new ArrayList<>();
15 | private List raw = new ArrayList<>();
16 | private List fail = new ArrayList<>();
17 | private List success = new ArrayList<>();
18 |
19 |
20 | private String pluginName;
21 |
22 | private String pocTarget;
23 | private Boolean pocVul;
24 |
25 | private String pocMsg;
26 | private String pocTime;
27 |
28 |
29 | public ResultImpl() {
30 |
31 | }
32 |
33 | public List getInfo() {
34 | return this.info;
35 | }
36 |
37 | public List getError() {
38 | return this.error;
39 | }
40 |
41 | public List getRaw() {
42 | return this.raw;
43 | }
44 |
45 | public List getFail() {
46 | return this.fail;
47 | }
48 |
49 | public List getSuccess() {
50 | return this.success;
51 | }
52 |
53 |
54 |
55 |
56 | public String getPocTarget() {
57 | return pocTarget;
58 | }
59 |
60 | public Boolean getPocVul() {
61 | return pocVul;
62 | }
63 |
64 | public String getPocMsg() {
65 | return pocMsg;
66 | }
67 |
68 | public String getPocTime() {
69 | return this.pocTime;
70 | }
71 | public String getPluginName(){
72 | return this.pluginName;
73 | }
74 | public void setPluginName(String str){
75 | this.pluginName = str;
76 | }
77 | public void setPocTime(String pocTime){
78 | this.pocTime = pocTime;
79 | }
80 | public void setPocTarget(String target) {
81 | this.pocTarget = target;
82 | }
83 |
84 |
85 | @Override
86 | public void printInfo(String str) {
87 | this.info.add("【!】"+str);
88 | }
89 |
90 | @Override
91 | public void printError(Throwable throwable) {
92 | Writer result = new StringWriter();
93 | PrintWriter printWriter = new PrintWriter(result);
94 | throwable.fillInStackTrace().printStackTrace(printWriter);
95 | this.error.add("【x】"+ result.toString());
96 | }
97 |
98 | @Override
99 | public void printRaw(String str) {
100 | this.raw.add("【*】"+str);
101 | }
102 |
103 | @Override
104 | public void printFail(String str) {
105 | this.fail.add("【-】"+str);
106 | }
107 |
108 | @Override
109 | public void printSuccess(String str) {
110 | this.fail.add("【✓】"+str);
111 | }
112 |
113 |
114 |
115 | @Override
116 | public void setPocVul(boolean isvul) {
117 | this.pocVul = isvul;
118 | }
119 |
120 | @Override
121 | public void setPocMsg(String msg) {
122 | this.pocMsg = msg;
123 | }
124 |
125 |
126 | @Override
127 | public boolean isPocVul() {
128 | return this.pocVul;
129 | }
130 |
131 |
132 | }
133 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/core/TargetInfoImpl.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.core;
2 |
3 | import com.ha1ey.CandleDragon.plugin.TargetInfo;
4 |
5 | public class TargetInfoImpl implements TargetInfo {
6 | private String address;
7 | private String userAgent;
8 | private int timeout;
9 | private String charset;
10 | private String dnslog;
11 | private String cookie;
12 |
13 | public void setDnslog(String dnslog){
14 | this.dnslog = dnslog;
15 | }
16 | public void setUserAgent(String userAgent) {
17 | this.userAgent = userAgent;
18 | }
19 |
20 | public void setTimeout(int timeout) {
21 | this.timeout = timeout;
22 | }
23 |
24 | public void setAddress(String address) {
25 | this.address = address;
26 | }
27 | public void setCharset(String charset){
28 | this.charset = charset;
29 | }
30 |
31 | public void setCookie(String cookie){
32 | this.cookie = cookie;
33 | }
34 | @Override
35 | public String getAddress() {
36 | return this.address;
37 | }
38 |
39 | @Override
40 | public String getUserAgent() {
41 | return this.userAgent;
42 | }
43 |
44 | @Override
45 | public int getTimeout() {
46 | return this.timeout;
47 | }
48 |
49 | @Override
50 | public String getCharset() {
51 | return this.charset;
52 | }
53 |
54 | @Override
55 | public String getDNSLog() {
56 | return this.dnslog;
57 | }
58 |
59 | @Override
60 | public String getCookie() {
61 | return this.cookie;
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/main/java/com/ha1ey/CandleDragon/core/UtilsPluginImpl.java:
--------------------------------------------------------------------------------
1 | package com.ha1ey.CandleDragon.core;
2 |
3 |
4 | import com.ha1ey.CandleDragon.plugin.UtilInfo;
5 | import javafx.scene.Node;
6 |
7 | /**
8 | * @Author Ha1ey
9 | * @Date 2023/9/8 17:34
10 | * @PackageName:com.ha1ey.CandleDragon.core
11 | * @ClassName: UtilsPluginImpl
12 | * @Description: TODO
13 | */
14 | public class UtilsPluginImpl implements UtilInfo {
15 |
16 | private Node view;
17 | private String utilName;
18 | private String description;
19 |
20 | public String getUtilName() {
21 | return utilName;
22 | }
23 |
24 | public String getDescription() {
25 | return description;
26 | }
27 |
28 | @Override
29 | public void setView(Node node) {
30 | this.view = node;
31 | }
32 |
33 | @Override
34 | public void setUtilName(String name) {
35 | this.utilName = name;
36 | }
37 |
38 | @Override
39 | public void setDescription(String name) {
40 | this.description = name;
41 | }
42 |
43 | public Node getView(){
44 | return this.view;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/resources/css/main.css:
--------------------------------------------------------------------------------
1 | /*.root{*/
2 | /* -fx-background-color: black;*/
3 | /* -fx-text-fill: white;*/
4 | /* -fx-border-color: black;*/
5 | /*}*/
6 |
7 | /*.table-view{*/
8 | /* -fx-background-color: black;*/
9 | /* -fx-border-color: black;*/
10 | /*}*/
11 |
12 |
13 | /*.list-view{*/
14 | /* -fx-background-color: black;*/
15 | /* -fx-border-color: black;*/
16 | /*}*/
17 | /*.list-cell{*/
18 | /* -fx-background-color: black;*/
19 | /* -fx-text-fill: white;*/
20 | /*}*/
21 |
22 |
23 | /*.list-view .list-cell:selected {*/
24 | /* -fx-background-color: green;*/
25 | /*}*/
26 |
27 | /*.list-view .scroll-bar:vertical {*/
28 | /* -fx-background-color: #000000;*/
29 | /*}*/
30 |
31 |
32 |
33 |
34 | /*.label{*/
35 | /* -fx-background-color: black;*/
36 | /* -fx-text-fill: white;*/
37 |
38 | /*}*/
39 |
40 |
41 |
42 |
43 |
44 | /* button */
45 | /*.jfx-button {*/
46 | /* -jfx-button-type: RAISED;*/
47 | /* -fx-background-color: #109755;*/
48 | /* -fx-background-radius:5;*/
49 | /* -fx-text-fill:#ffffff;*/
50 | /* -fx-border-radius:1;*/
51 | /* -fx-border-insets:-5;*/
52 | /*}*/
53 |
54 | /*.jfx-button:hover{*/
55 | /* -fx-background-color: #86eeb8;*/
56 | /*}*/
57 |
58 | /*.jfx-button:focused{*/
59 | /* -fx-background-color: #025e2c;*/
60 | /*}*/
61 |
62 |
63 |
64 |
65 |
66 |
67 | /*!* Tab *!*/
68 | .tab-label {
69 | -fx-text-fill: #000000;
70 | -fx-font-size: 12;
71 | }
72 |
73 | .tab:selected .tab-label {
74 | -fx-text-fill: #000000;
75 | -fx-font-size: 12;
76 | }
77 |
78 |
79 | .jfx-tab-pane .tab:selected{
80 | -fx-background-color: rgba(33, 33, 35, 0.34);
81 | }
82 |
83 | .jfx-tab-pane .tab-selected-line {
84 | -fx-background-color: transparent;
85 | }
86 |
87 | .jfx-tab-pane{
88 | -fx-background-color: white;
89 | }
90 |
91 | /*.jfx-tab-pane .headers-region {*/
92 | /* -fx-background-color: rgba(33, 33, 35, 0.34);*/
93 | /*}*/
94 | .jfx-tab-pane .tab-header-background {
95 | -fx-background-color: rgba(33, 33, 35, 0.34);
96 | }
97 |
98 | /*Text*/
99 | .text-area{
100 | -fx-background-color:white;
101 | }
102 |
103 | /*.text-field{*/
104 | /* -fx-text-fill: white;*/
105 | /* -fx-background-color:black;*/
106 | /*}*/
107 |
108 |
109 |
110 | /*.titled-pane > .title*/
111 | /*{*/
112 | /* -fx-background-color: rgb(49, 51, 56);*/
113 | /* -fx-border-color: rgb(0, 0, 0);*/
114 | /*}*/
115 |
116 |
117 | /*.titled-pane > .title > .text*/
118 | /*{*/
119 | /* -fx-fill: WHITE;*/
120 | /*}*/
121 |
122 |
123 |
124 | /*.split-pane > .split-pane-divider {*/
125 | /* -fx-background-color: #04622f;*/
126 | /*}*/
127 |
128 |
129 |
130 |
131 |
132 |
--------------------------------------------------------------------------------
/src/main/resources/fxml/Control.fxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/main/resources/fxml/DeBug.fxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/main/resources/fxml/Exploit/Args_Exploit.fxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/main/resources/fxml/Exploit/Exploit.fxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/main/resources/fxml/Home.fxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/src/main/resources/fxml/Setting.fxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/src/main/resources/icon/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HHa1ey/CandleDragon/da848fde212d8e6c59254fba5bab4089ec6b62c0/src/main/resources/icon/icon.png
--------------------------------------------------------------------------------
/src/main/resources/json/av.json:
--------------------------------------------------------------------------------
1 | {
2 | "360tray.exe": "360安全卫士-实时保护",
3 | "360safe.exe": "360安全卫士-主程序",
4 | "ZhuDongFangYu.exe": "360安全卫士-主动防御",
5 | "360skylarsvc": "360终端安全管理系统",
6 | "360sd.exe": "360杀毒",
7 | "a2guard.exe": "a-squared杀毒",
8 | "ad-watch.exe": "Lavasoft杀毒",
9 | "cleaner8.exe": "The Cleaner杀毒",
10 | "vba32lder.exe": "vb32杀毒",
11 | "MongoosaGUI.exe": "Mongoosa杀毒",
12 | "CorantiControlCenter32.exe": "Coranti2012杀毒",
13 | "F-PROT.exe": "F-Prot AntiVirus",
14 | "CMCTrayIcon.exe": "CMC杀毒",
15 | "K7TSecurity.exe": "K7杀毒",
16 | "UnThreat.exe": "UnThreat杀毒",
17 | "CKSoftShiedAntivirus4.exe": "Shield Antivirus杀毒",
18 | "AVWatchService.exe": "VIRUSfighter杀毒",
19 | "ArcaTasksService.exe": "ArcaVir杀毒",
20 | "iptray.exe": "Immunet杀毒",
21 | "PSafeSysTray.exe": "PSafe杀毒",
22 | "nspupsvc.exe": "nProtect杀毒",
23 | "SpywareTerminatorShield.exe": "SpywareTerminator杀毒",
24 | "BKavService.exe": "Bkav杀毒",
25 | "MsMpEng.exe": "Microsoft Security Essentials",
26 | "NisSrv.exe": "Microsoft Security Essentials",
27 | "MsSense.exe": "Microsoft Security Essentials",
28 | "msseces.exe": "Microsoft Security Essentials",
29 | "SBAMSvc.exe": "VIPRE",
30 | "ccSvcHst.exe": "Norton杀毒",
31 | "f-secure.exe": "冰岛",
32 | "avp.exe": "Kaspersky",
33 | "KvMonXP.exe": "江民杀毒",
34 | "RavMonD.exe": "瑞星杀毒",
35 | "VSSTAT.exe": "McAfee",
36 | "vsstat.exe": "McAfee",
37 | "Mcshield.exe": "Mcafee",
38 | "Tbmon.exe": "Mcafee",
39 | "vshwin32.exe": "McAfee",
40 | "VSHWIN32.exe": "McAfee",
41 | "Frameworkservice.exe": "Mcafee",
42 | "fcagate.exe":"McAfee",
43 | "mfevtps.exe": "Mcafee",
44 | "shstat.exe": "Mcafee",
45 | "vstskmgr.exe": "Mcafee",
46 | "engineserver.exe": "Mcafee",
47 | "mfeann.exe": "Mcafee",
48 | "udaterui.exe": "Mcafee",
49 | "naprdmgr.exe": "Mcafee",
50 | "mctary.exe":"McAfee",
51 | "mctray.exe": "Mcafee",
52 | "fcagswd.exe":"McAfee",
53 | "mfemms.exe":"McAfee",
54 | "fcags.exe":"McAfee",
55 | "masvc.exe":"McAfee",
56 | "mcamnsvc.exe":"McAfee",
57 | "mfeesp.exe":"McAfee",
58 | "mfeconsole.exe":"McAfee",
59 | "macompatsvc.exe":"McAfee",
60 | "mfetp.exe":"McAfee",
61 | "mfefire.exe":"McAfee",
62 | "mfefw.exe":"McAfee",
63 | "mfewch.exe":"McAfee",
64 | "mfewc.exe":"McAfee",
65 | "mfecanary.exe":"McAfee",
66 | "egui.exe": "ESET NOD32",
67 | "ekrn.exe": "ESET NOD32",
68 | "eguiProxy.exe": "ESET NOD32",
69 | "EShaSrv.exe": "ESET NOD32",
70 | "kxetray.exe": "金山毒霸",
71 | "kxescore.exe": "金山毒霸",
72 | "kupdata.exe": "金山毒霸",
73 | "kwsprotect64.exe": "金山毒霸",
74 | "knsdtray.exe": "可牛杀毒",
75 | "TMBMSRV.exe": "趋势杀毒",
76 | "avcenter.exe": "Avira(小红伞)",
77 | "avguard.exe": "Avira(小红伞)",
78 | "avgnt.exe": "Avira(小红伞)",
79 | "sched.exe": "Avira(小红伞)",
80 | "ashDisp.exe": "Avast网络安全",
81 | "rtvscan.exe": "诺顿杀毒",
82 | "ccapp.exe": "Symantec Norton",
83 | "NPFMntor.exe": "Norton杀毒软件相关进程",
84 | "ccSetMgr.exe": "赛门铁克",
85 | "ccRegVfy.exe": "Norton杀毒软件自身完整性检查程序",
86 | "vptray.exe": "Norton病毒防火墙-盾牌图标程序",
87 | "ksafe.exe": "金山卫士",
88 | "QQPCRTP.exe": "QQ电脑管家",
89 | "Miner.exe": "流量矿石",
90 | "AYAgent.exe": "韩国胶囊",
91 | "patray.exe": "安博士",
92 | "V3Svc.exe": "安博士V3",
93 | "avgwdsvc.exe": "AVG杀毒",
94 | "QUHLPSVC.exe": "QUICK HEAL杀毒",
95 | "mssecess.exe": "微软杀毒",
96 | "SavProgress.exe": "Sophos杀毒",
97 | "SophosUI.exe": "Sophos杀毒",
98 | "SophosFS.exe": "Sophos杀毒",
99 | "SophosHealth.exe": "Sophos杀毒",
100 | "SophosSafestore64.exe": "Sophos杀毒",
101 | "SophosCleanM.exe": "Sophos杀毒",
102 | "fsavgui.exe": "F-Secure杀毒",
103 | "vsserv.exe": "比特梵德",
104 | "remupd.exe": "熊猫卫士",
105 | "FortiTray.exe": "飞塔",
106 | "safedog.exe": "安全狗",
107 | "parmor.exe": "木马克星",
108 | "Iparmor.exe.exe": "木马克星",
109 | "beikesan.exe": "贝壳云安全",
110 | "KSWebShield.exe": "金山网盾",
111 | "TrojanHunter.exe": "木马猎手",
112 | "GG.exe": "巨盾网游安全盾",
113 | "adam.exe": "绿鹰安全精灵",
114 | "AST.exe": "超级巡警",
115 | "ananwidget.exe": "墨者安全专家",
116 | "avg.exe": "AVG Anti-Virus",
117 | "spidernt.exe": "Dr.web",
118 | "avgaurd.exe": "Avira Antivir",
119 | "cpf.exe": "Comodo",
120 | "outpost.exe": "Outpost Firewall",
121 | "rfwmain.exe": "瑞星防火墙",
122 | "kpfwtray.exe": "金山网镖",
123 | "FYFireWall.exe": "风云防火墙",
124 | "MPMon.exe": "微点主动防御",
125 | "pfw.exe": "天网防火墙",
126 | "S.exe": "在抓鸡",
127 | "1433.exe": "在扫1433",
128 | "DUB.exe": "在爆破",
129 | "ServUDaemon.exe": "发现S-U",
130 | "BaiduSdSvc.exe": "百度杀毒-服务进程",
131 | "BaiduSdTray.exe": "百度杀毒-托盘进程",
132 | "BaiduSd.exe": "百度杀毒-主程序",
133 | "SafeDogGuardCenter.exe": "安全狗",
134 | "safedogupdatecenter.exe": "安全狗",
135 | "safedogguardcenter.exe": "安全狗",
136 | "SafeDogSiteIIS.exe": "安全狗",
137 | "SafeDogTray.exe": "安全狗",
138 | "SafeDogServerUI.exe": "安全狗",
139 | "D_Safe_Manage.exe": "D盾",
140 | "d_manage.exe": "D盾",
141 | "yunsuo_agent_service.exe": "云锁",
142 | "yunsuo_agent_daemon.exe": "云锁",
143 | "gov_defence_daemon.exe":"云锁",
144 | "gov_defence_service.exe":"云锁",
145 | "HwsPanel.exe": "护卫神",
146 | "hws_ui.exe": "护卫神",
147 | "hws.exe": "护卫神",
148 | "hwsd.exe": "护卫神",
149 | "hipstray.exe": "火绒",
150 | "wsctrl.exe": "火绒",
151 | "usysdiag.exe": "火绒",
152 | "HipsDaemon.exe": "火绒",
153 | "HipsLog.exe": "火绒",
154 | "HipsMain.exe": "火绒",
155 | "WEBSCANX.exe": "网络病毒克星",
156 | "SPHINX.exe": "SPHINX防火墙",
157 | "bddownloader.exe": "百度卫士",
158 | "baiduansvx.exe": "百度卫士-主进程",
159 | "AvastUI.exe": "Avast!5主程序",
160 | "emet_agent.exe": "EMET",
161 | "emet_service.exe": "EMET",
162 | "firesvc.exe": "McAfee",
163 | "firetray.exe": "McAfee",
164 | "hipsvc.exe": "McAfee",
165 | "mcafeefire.exe": "McAfee",
166 | "scan32.exe": "McAfee",
167 | "mcscript.exe": "McAfee",
168 | "updaterui.exe": "McAfee",
169 | "cleanup.exe": "McAfee",
170 | "cmdagent.exe": "McAfee",
171 | "frminst.exe": "McAfee",
172 | "mcscript_inuse.exe": "McAfee",
173 | "AAWTray.exe": "已知杀软进程,名称暂未收录",
174 | "Ad-Aware.exe": "已知杀软进程,名称暂未收录",
175 | "MSASCui.exe": "Windows Defender Antivirus",
176 | "SecurityHealthService.exe": "Windows Defender Antivirus",
177 | "SecurityHealthService": "Windows Defender Antivirus",
178 | "SecurityHealthSystray.exe": "Windows Defender Antivirus",
179 | "MpCmdRun.exe": "Windows Defender Antivirus",
180 | "smartscreen.exe":"Windows Defender Antivirus",
181 | "_avp32.exe": "卡巴斯基",
182 | "_avpcc.exe": "卡巴斯基",
183 | "_avpm.exe": "卡巴斯基",
184 | "aAvgApi.exe": "AVG",
185 | "ackwin32.exe": "已知杀软进程,名称暂未收录",
186 | "adaware.exe": "已知杀软进程,名称暂未收录",
187 | "advxdwin.exe": "已知杀软进程,名称暂未收录",
188 | "agentsvr.exe": "已知杀软进程,名称暂未收录",
189 | "agentw.exe": "已知杀软进程,名称暂未收录",
190 | "alertsvc.exe": "Norton AntiVirus",
191 | "alevir.exe": "已知杀软进程,名称暂未收录",
192 | "alogserv.exe": "McAfee VirusScan",
193 | "amon9x.exe": "已知杀软进程,名称暂未收录",
194 | "anti-trojan.exe": "Anti-Trojan Elite",
195 | "antivirus.exe": "已知杀软进程,名称暂未收录",
196 | "ants.exe": "已知杀软进程,名称暂未收录",
197 | "apimonitor.exe": "已知杀软进程,名称暂未收录",
198 | "aplica32.exe": "已知杀软进程,名称暂未收录",
199 | "apvxdwin.exe": "熊猫卫士",
200 | "arr.exe": "Application Request Route",
201 | "atcon.exe": "已知杀软进程,名称暂未收录",
202 | "atguard.exe": "AntiVir",
203 | "atro55en.exe": "已知杀软进程,名称暂未收录",
204 | "atupdater.exe": "已知杀软进程,名称暂未收录",
205 | "atwatch.exe": "Mustek",
206 | "au.exe": "NSIS",
207 | "aupdate.exe": "赛门铁克",
208 | "auto-protect.nav80try.exe": "已知杀软进程,名称暂未收录",
209 | "autodown.exe": "AntiVirus AutoUpdater",
210 | "autotrace.exe": "已知杀软进程,名称暂未收录",
211 | "autoupdate.exe": "已知杀软进程,名称暂未收录",
212 | "avconsol.exe": "McAfee",
213 | "ave32.exe": "已知杀软进程,名称暂未收录",
214 | "avgcc32.exe": "AVG",
215 | "avgctrl.exe": "AVG",
216 | "avgemc.exe": "AVG",
217 | "avgrsx.exe": "AVG",
218 | "avgserv.exe": "AVG",
219 | "avgserv9.exe": "AVG",
220 | "avgw.exe": "AVG",
221 | "avkpop.exe": "G DATA SOFTWARE AG",
222 | "avkserv.exe": "G DATA SOFTWARE AG",
223 | "avkservice.exe": "G DATA SOFTWARE AG",
224 | "avkwctl9.exe": "G Data文件系统实时监控",
225 | "avltmain.exe": "Panda Software Aplication",
226 | "avnt.exe": "H+BEDV Datentechnik GmbH",
227 | "avp32.exe": "已知杀软进程,名称暂未收录",
228 | "avpcc.exe": "Kaspersky",
229 | "avpdos32.exe": "Kaspersky AntiVirus",
230 | "avpm.exe": "Kaspersky AntiVirus",
231 | "avptc32.exe": "Kaspersky AntiVirus",
232 | "avpupd.exe": "Kaspersky AntiVirus",
233 | "avsched32.exe": "H+BEDV",
234 | "avsynmgr.exe": "McAfee",
235 | "avwin.exe": "H+BEDV",
236 | "avwin95.exe": "已知杀软进程,名称暂未收录",
237 | "avwinnt.exe": "已知杀软进程,名称暂未收录",
238 | "avwupd.exe": "已知杀软进程,名称暂未收录",
239 | "avwupd32.exe": "已知杀软进程,名称暂未收录",
240 | "avwupsrv.exe": "H+BEDV",
241 | "avxmonitor9x.exe": "已知杀软进程,名称暂未收录",
242 | "avxmonitornt.exe": "已知杀软进程,名称暂未收录",
243 | "avxquar.exe": "已知杀软进程,名称暂未收录",
244 | "backweb.exe": "已知杀软进程,名称暂未收录",
245 | "bargains.exe": "Exact Advertising SpyWare",
246 | "bd_professional.exe": "已知杀软进程,名称暂未收录",
247 | "beagle.exe": "Avast",
248 | "belt.exe": "已知杀软进程,名称暂未收录",
249 | "bidef.exe": "已知杀软进程,名称暂未收录",
250 | "bidserver.exe": "已知杀软进程,名称暂未收录",
251 | "bipcp.exe": "已知杀软进程,名称暂未收录",
252 | "bipcpevalsetup.exe": "已知杀软进程,名称暂未收录",
253 | "bisp.exe": "已知杀软进程,名称暂未收录",
254 | "blackd.exe": "BlackICE",
255 | "blackice.exe": "BlackICE",
256 | "blink.exe": "micromedia",
257 | "blss.exe": "CBlaster",
258 | "bootconf.exe": "已知杀软进程,名称暂未收录",
259 | "bootwarn.exe": "赛门铁克",
260 | "borg2.exe": "已知杀软进程,名称暂未收录",
261 | "bpc.exe": "Grokster",
262 | "brasil.exe": "Exact Advertising",
263 | "bs120.exe": "已知杀软进程,名称暂未收录",
264 | "bundle.exe": "已知杀软进程,名称暂未收录",
265 | "bvt.exe": "已知杀软进程,名称暂未收录",
266 | "ccevtmgr.exe": "Norton Internet Security",
267 | "ccpxysvc.exe": "已知杀软进程,名称暂未收录",
268 | "cdp.exe": "CyberLink Corp",
269 | "cfd.exe": "Motive Communications",
270 | "cfgwiz.exe": "Norton AntiVirus",
271 | "cfiadmin.exe": "已知杀软进程,名称暂未收录",
272 | "cfiaudit.exe": "已知杀软进程,名称暂未收录",
273 | "cfinet.exe": "已知杀软进程,名称暂未收录",
274 | "cfinet32.exe": "已知杀软进程,名称暂未收录",
275 | "claw95.exe": "已知杀软进程,名称暂未收录",
276 | "claw95cf.exe": "已知杀软进程,名称暂未收录",
277 | "clean.exe": "windows流氓软件清理大师",
278 | "cleaner.exe": "windows流氓软件清理大师",
279 | "cleaner3.exe": "windows流氓软件清理大师",
280 | "cleanpc.exe": "windows流氓软件清理大师",
281 | "click.exe": "已知杀软进程,名称暂未收录",
282 | "cmesys.exe": "已知杀软进程,名称暂未收录",
283 | "cmgrdian.exe": "已知杀软进程,名称暂未收录",
284 | "cmon016.exe": "已知杀软进程,名称暂未收录",
285 | "connectionmonitor.exe": "已知杀软进程,名称暂未收录",
286 | "cpd.exe": "McAfee",
287 | "cpf9x206.exe": "已知杀软进程,名称暂未收录",
288 | "cpfnt206.exe": "已知杀软进程,名称暂未收录",
289 | "ctrl.exe": "已知杀软进程,名称暂未收录",
290 | "cv.exe": "已知杀软进程,名称暂未收录",
291 | "cwnb181.exe": "已知杀软进程,名称暂未收录",
292 | "cwntdwmo.exe": "已知杀软进程,名称暂未收录",
293 | "datemanager.exe": "已知杀软进程,名称暂未收录",
294 | "dcomx.exe": "已知杀软进程,名称暂未收录",
295 | "defalert.exe": "赛门铁克",
296 | "defscangui.exe": "赛门铁克",
297 | "defwatch.exe": "Norton Antivirus",
298 | "deputy.exe": "已知杀软进程,名称暂未收录",
299 | "divx.exe": "已知杀软进程,名称暂未收录",
300 | "dllcache.exe": "已知杀软进程,名称暂未收录",
301 | "dllreg.exe": "已知杀软进程,名称暂未收录",
302 | "doors.exe": "已知杀软进程,名称暂未收录",
303 | "dpf.exe": "已知杀软进程,名称暂未收录",
304 | "dpfsetup.exe": "已知杀软进程,名称暂未收录",
305 | "dpps2.exe": "PanicWare",
306 | "drwatson.exe": "已知杀软进程,名称暂未收录",
307 | "drweb32.exe": "已知杀软进程,名称暂未收录",
308 | "drwebupw.exe": "已知杀软进程,名称暂未收录",
309 | "dssagent.exe": "Broderbund",
310 | "dvp95.exe": "已知杀软进程,名称暂未收录",
311 | "dvp95_0.exe": "已知杀软进程,名称暂未收录",
312 | "ecengine.exe": "已知杀软进程,名称暂未收录",
313 | "efpeadm.exe": "已知杀软进程,名称暂未收录",
314 | "emsw.exe": "Alset Inc",
315 | "ent.exe": "已知杀软进程,名称暂未收录",
316 | "esafe.exe": "已知杀软进程,名称暂未收录",
317 | "escanhnt.exe": "已知杀软进程,名称暂未收录",
318 | "escanv95.exe": "已知杀软进程,名称暂未收录",
319 | "espwatch.exe": "已知杀软进程,名称暂未收录",
320 | "ethereal.exe": "RationalClearCase",
321 | "etrustcipe.exe": "已知杀软进程,名称暂未收录",
322 | "evpn.exe": "已知杀软进程,名称暂未收录",
323 | "exantivirus-cnet.exe": "已知杀软进程,名称暂未收录",
324 | "exe.avxw.exe": "已知杀软进程,名称暂未收录",
325 | "expert.exe": "已知杀软进程,名称暂未收录",
326 | "explore.exe": "已知杀软进程,名称暂未收录",
327 | "f-agnt95.exe": "已知杀软进程,名称暂未收录",
328 | "f-prot95.exe": "已知杀软进程,名称暂未收录",
329 | "f-stopw.exe": "已知杀软进程,名称暂未收录",
330 | "fameh32.exe": "F-Secure",
331 | "fast.exe": "FastUsr",
332 | "fch32.exe": "F-Secure",
333 | "fih32.exe": "F-Secure",
334 | "findviru.exe": "F-Secure",
335 | "firewall.exe": "AshampooSoftware",
336 | "fnrb32.exe": "F-Secure",
337 | "fp-win.exe": "F-Prot Antivirus OnDemand",
338 | "fp-win_trial.exe": "已知杀软进程,名称暂未收录",
339 | "fprot.exe": "已知杀软进程,名称暂未收录",
340 | "frw.exe": "已知杀软进程,名称暂未收录",
341 | "fsaa.exe": "F-Secure",
342 | "fsav.exe": "F-Secure",
343 | "fsav32.exe": "F-Secure",
344 | "fsav530stbyb.exe": "F-Secure",
345 | "fsav530wtbyb.exe": "F-Secure",
346 | "fsav95.exe": "F-Secure",
347 | "fsgk32.exe": "F-Secure",
348 | "fsm32.exe": "F-Secure",
349 | "fsma32.exe": "F-Secure",
350 | "fsmb32.exe": "F-Secure",
351 | "gator.exe": "已知杀软进程,名称暂未收录",
352 | "gbmenu.exe": "已知杀软进程,名称暂未收录",
353 | "gbpoll.exe": "已知杀软进程,名称暂未收录",
354 | "generics.exe": "已知杀软进程,名称暂未收录",
355 | "gmt.exe": "已知杀软进程,名称暂未收录",
356 | "guard.exe": "ewido",
357 | "guarddog.exe": "ewido",
358 | "hacktracersetup.exe": "已知杀软进程,名称暂未收录",
359 | "hbinst.exe": "已知杀软进程,名称暂未收录",
360 | "hbsrv.exe": "已知杀软进程,名称暂未收录",
361 | "hotactio.exe": "已知杀软进程,名称暂未收录",
362 | "hotpatch.exe": "已知杀软进程,名称暂未收录",
363 | "htlog.exe": "已知杀软进程,名称暂未收录",
364 | "htpatch.exe": "Silicon Integrated Systems Corporation",
365 | "hwpe.exe": "已知杀软进程,名称暂未收录",
366 | "hxdl.exe": "已知杀软进程,名称暂未收录",
367 | "hxiul.exe": "已知杀软进程,名称暂未收录",
368 | "iamapp.exe": "赛门铁克",
369 | "iamserv.exe": "赛门铁克",
370 | "iamstats.exe": "赛门铁克",
371 | "ibmasn.exe": "已知杀软进程,名称暂未收录",
372 | "ibmavsp.exe": "已知杀软进程,名称暂未收录",
373 | "icload95.exe": "已知杀软进程,名称暂未收录",
374 | "icloadnt.exe": "已知杀软进程,名称暂未收录",
375 | "icmon.exe": "已知杀软进程,名称暂未收录",
376 | "icsupp95.exe": "已知杀软进程,名称暂未收录",
377 | "icsuppnt.exe": "已知杀软进程,名称暂未收录",
378 | "idle.exe": "已知杀软进程,名称暂未收录",
379 | "iedll.exe": "已知杀软进程,名称暂未收录",
380 | "iedriver.exe": "Urlblaze.com",
381 | "iface.exe": "Panda Antivirus Module",
382 | "ifw2000.exe": "已知杀软进程,名称暂未收录",
383 | "inetlnfo.exe": "已知杀软进程,名称暂未收录",
384 | "infus.exe": "Infus Dialer",
385 | "infwin.exe": "Msviewparasite",
386 | "init.exe": "已知杀软进程,名称暂未收录",
387 | "intdel.exe": "Inet Delivery",
388 | "intren.exe": "已知杀软进程,名称暂未收录",
389 | "iomon98.exe": "已知杀软进程,名称暂未收录",
390 | "istsvc.exe": "已知杀软进程,名称暂未收录",
391 | "jammer.exe": "已知杀软进程,名称暂未收录",
392 | "jdbgmrg.exe": "已知杀软进程,名称暂未收录",
393 | "jedi.exe": "已知杀软进程,名称暂未收录",
394 | "kavlite40eng.exe": "已知杀软进程,名称暂未收录",
395 | "kavpers40eng.exe": "已知杀软进程,名称暂未收录",
396 | "kavpf.exe": "Kaspersky",
397 | "kazza.exe": "Kaspersky",
398 | "keenvalue.exe": "EUNIVERSE INC",
399 | "kerio-pf-213-en-win.exe": "已知杀软进程,名称暂未收录",
400 | "kerio-wrl-421-en-win.exe": "已知杀软进程,名称暂未收录",
401 | "kerio-wrp-421-en-win.exe": "已知杀软进程,名称暂未收录",
402 | "kernel32.exe": "已知杀软进程,名称暂未收录",
403 | "killprocesssetup161.exe": "已知杀软进程,名称暂未收录",
404 | "launcher.exe": "Intercort Systems",
405 | "ldnetmon.exe": "已知杀软进程,名称暂未收录",
406 | "ldpro.exe": "已知杀软进程,名称暂未收录",
407 | "ldpromenu.exe": "已知杀软进程,名称暂未收录",
408 | "ldscan.exe": "Windows Trojans Inspector",
409 | "lnetinfo.exe": "已知杀软进程,名称暂未收录",
410 | "loader.exe": "已知杀软进程,名称暂未收录",
411 | "localnet.exe": "已知杀软进程,名称暂未收录",
412 | "lockdown.exe": "已知杀软进程,名称暂未收录",
413 | "lockdown2000.exe": "已知杀软进程,名称暂未收录",
414 | "lookout.exe": "已知杀软进程,名称暂未收录",
415 | "lordpe.exe": "已知杀软进程,名称暂未收录",
416 | "lsetup.exe": "已知杀软进程,名称暂未收录",
417 | "luall.exe": "赛门铁克",
418 | "luau.exe": "赛门铁克",
419 | "lucomserver.exe": "Norton",
420 | "luinit.exe": "已知杀软进程,名称暂未收录",
421 | "luspt.exe": "已知杀软进程,名称暂未收录",
422 | "mapisvc32.exe": "已知杀软进程,名称暂未收录",
423 | "mcagent.exe": "McAfee",
424 | "mcmnhdlr.exe": "McAfee",
425 | "mctool.exe": "McAfee",
426 | "mcupdate.exe": "McAfee",
427 | "mcvsrte.exe": "McAfee",
428 | "mcvsshld.exe": "McAfee",
429 | "md.exe": "已知杀软进程,名称暂未收录",
430 | "mfin32.exe": "MyFreeInternetUpdate",
431 | "mfw2en.exe": "MyFreeInternetUpdate",
432 | "mfweng3.02d30.exe": "MyFreeInternetUpdate",
433 | "mgavrtcl.exe": "McAfee",
434 | "mgavrte.exe": "McAfee",
435 | "mghtml.exe": "McAfee",
436 | "mgui.exe": "BullGuard",
437 | "minilog.exe": "Zone Alarm",
438 | "mmod.exe": "EzulaInc",
439 | "monitor.exe": "已知杀软进程,名称暂未收录",
440 | "moolive.exe": "已知杀软进程,名称暂未收录",
441 | "mostat.exe": "WurldMediaInc",
442 | "mpfagent.exe": "McAfee",
443 | "mpfservice.exe": "McAfee",
444 | "mpftray.exe": "McAfee",
445 | "mrflux.exe": "已知杀软进程,名称暂未收录",
446 | "msapp.exe": "已知杀软进程,名称暂未收录",
447 | "msbb.exe": "已知杀软进程,名称暂未收录",
448 | "msblast.exe": "已知杀软进程,名称暂未收录",
449 | "mscache.exe": "Integrated Search Technologies Spyware",
450 | "msccn32.exe": "已知杀软进程,名称暂未收录",
451 | "mscman.exe": "OdysseusMarketingInc",
452 | "msconfig.exe": "已知杀软进程,名称暂未收录",
453 | "msdm.exe": "已知杀软进程,名称暂未收录",
454 | "msdos.exe": "已知杀软进程,名称暂未收录",
455 | "msiexec16.exe": "已知杀软进程,名称暂未收录",
456 | "msinfo32.exe": "已知杀软进程,名称暂未收录",
457 | "mslaugh.exe": "已知杀软进程,名称暂未收录",
458 | "msmgt.exe": "Total Velocity Spyware",
459 | "msmsgri32.exe": "已知杀软进程,名称暂未收录",
460 | "mssmmc32.exe": "已知杀软进程,名称暂未收录",
461 | "mssys.exe": "已知杀软进程,名称暂未收录",
462 | "msvxd.exe": "W32/Datom-A",
463 | "mu0311ad.exe": "已知杀软进程,名称暂未收录",
464 | "mwatch.exe": "已知杀软进程,名称暂未收录",
465 | "n32scanw.exe": "已知杀软进程,名称暂未收录",
466 | "nav.exe": "Reuters Limited",
467 | "navap.navapsvc.exe": "已知杀软进程,名称暂未收录",
468 | "navapsvc.exe": "Norton",
469 | "navapw32.exe": "Norton",
470 | "navdx.exe": "已知杀软进程,名称暂未收录",
471 | "navlu32.exe": "Norton",
472 | "navnt.exe": "已知杀软进程,名称暂未收录",
473 | "navstub.exe": "已知杀软进程,名称暂未收录",
474 | "navw32.exe": "Norton Antivirus",
475 | "navwnt.exe": "已知杀软进程,名称暂未收录",
476 | "nc2000.exe": "已知杀软进程,名称暂未收录",
477 | "ncinst4.exe": "已知杀软进程,名称暂未收录",
478 | "ndd32.exe": "诺顿磁盘医生",
479 | "neomonitor.exe": "已知杀软进程,名称暂未收录",
480 | "neowatchlog.exe": "NeoWatch",
481 | "netarmor.exe": "已知杀软进程,名称暂未收录",
482 | "netd32.exe": "已知杀软进程,名称暂未收录",
483 | "netinfo.exe": "已知杀软进程,名称暂未收录",
484 | "netmon.exe": "已知杀软进程,名称暂未收录",
485 | "netscanpro.exe": "已知杀软进程,名称暂未收录",
486 | "netspyhunter-1.2.exe": "已知杀软进程,名称暂未收录",
487 | "netstat.exe": "已知杀软进程,名称暂未收录",
488 | "netutils.exe": "已知杀软进程,名称暂未收录",
489 | "nisserv.exe": "Norton",
490 | "nisum.exe": "Norton",
491 | "nmain.exe": "Norton",
492 | "nod32.exe": "ESET NOD32",
493 | "normist.exe": "已知杀软进程,名称暂未收录",
494 | "norton_internet_secu_3.0_407.exe": "已知杀软进程,名称暂未收录",
495 | "notstart.exe": "已知杀软进程,名称暂未收录",
496 | "npf40_tw_98_nt_me_2k.exe": "已知杀软进程,名称暂未收录",
497 | "npfmessenger.exe": "已知杀软进程,名称暂未收录",
498 | "nprotect.exe": "赛门铁克",
499 | "npscheck.exe": "Norton",
500 | "npssvc.exe": "已知杀软进程,名称暂未收录",
501 | "nsched32.exe": "已知杀软进程,名称暂未收录",
502 | "nssys32.exe": "已知杀软进程,名称暂未收录",
503 | "nstask32.exe": "已知杀软进程,名称暂未收录",
504 | "nsupdate.exe": "已知杀软进程,名称暂未收录",
505 | "nt.exe": "已知杀软进程,名称暂未收录",
506 | "ntrtscan.exe": "趋势科技防毒墙网络版客户端",
507 | "ntvdm.exe": "已知杀软进程,名称暂未收录",
508 | "ntxconfig.exe": "已知杀软进程,名称暂未收录",
509 | "nui.exe": "已知杀软进程,名称暂未收录",
510 | "nupgrade.exe": "已知杀软进程,名称暂未收录",
511 | "nvarch16.exe": "已知杀软进程,名称暂未收录",
512 | "nvc95.exe": "已知杀软进程,名称暂未收录",
513 | "nvsvc32.exe": "已知杀软进程,名称暂未收录",
514 | "nwinst4.exe": "已知杀软进程,名称暂未收录",
515 | "nwservice.exe": "已知杀软进程,名称暂未收录",
516 | "nwtool16.exe": "已知杀软进程,名称暂未收录",
517 | "ollydbg.exe": "已知杀软进程,名称暂未收录",
518 | "onsrvr.exe": "已知杀软进程,名称暂未收录",
519 | "optimize.exe": "已知杀软进程,名称暂未收录",
520 | "ostronet.exe": "已知杀软进程,名称暂未收录",
521 | "otfix.exe": "已知杀软进程,名称暂未收录",
522 | "outpostinstall.exe": "Outpost",
523 | "outpostproinstall.exe": "已知杀软进程,名称暂未收录",
524 | "padmin.exe": "已知杀软进程,名称暂未收录",
525 | "panixk.exe": "已知杀软进程,名称暂未收录",
526 | "patch.exe": "趋势科技",
527 | "pavcl.exe": "已知杀软进程,名称暂未收录",
528 | "pavproxy.exe": "熊猫卫士",
529 | "pavsched.exe": "已知杀软进程,名称暂未收录",
530 | "pavw.exe": "已知杀软进程,名称暂未收录",
531 | "pccwin98.exe": "已知杀软进程,名称暂未收录",
532 | "pcfwallicon.exe": "已知杀软进程,名称暂未收录",
533 | "pcip10117_0.exe": "已知杀软进程,名称暂未收录",
534 | "pcscan.exe": "趋势科技",
535 | "pdsetup.exe": "已知杀软进程,名称暂未收录",
536 | "periscope.exe": "已知杀软进程,名称暂未收录",
537 | "persfw.exe": "Tiny Personal Firewall",
538 | "perswf.exe": "已知杀软进程,名称暂未收录",
539 | "pf2.exe": "已知杀软进程,名称暂未收录",
540 | "pfwadmin.exe": "已知杀软进程,名称暂未收录",
541 | "pgmonitr.exe": "PromulGate SpyWare",
542 | "pingscan.exe": "已知杀软进程,名称暂未收录",
543 | "platin.exe": "已知杀软进程,名称暂未收录",
544 | "pop3trap.exe": "PC-cillin",
545 | "poproxy.exe": "NortonAntiVirus",
546 | "popscan.exe": "已知杀软进程,名称暂未收录",
547 | "portdetective.exe": "已知杀软进程,名称暂未收录",
548 | "portmonitor.exe": "已知杀软进程,名称暂未收录",
549 | "powerscan.exe": "Integrated Search Technologies",
550 | "ppinupdt.exe": "已知杀软进程,名称暂未收录",
551 | "pptbc.exe": "已知杀软进程,名称暂未收录",
552 | "ppvstop.exe": "已知杀软进程,名称暂未收录",
553 | "prizesurfer.exe": "Prizesurfer",
554 | "prmt.exe": "OpiStat",
555 | "prmvr.exe": "Adtomi",
556 | "procdump.exe": "已知杀软进程,名称暂未收录",
557 | "processmonitor.exe": "Sysinternals",
558 | "procexplorerv1.0.exe": "已知杀软进程,名称暂未收录",
559 | "programauditor.exe": "已知杀软进程,名称暂未收录",
560 | "proport.exe": "已知杀软进程,名称暂未收录",
561 | "protectx.exe": "ProtectX",
562 | "pspf.exe": "已知杀软进程,名称暂未收录",
563 | "purge.exe": "已知杀软进程,名称暂未收录",
564 | "qconsole.exe": "Norton AntiVirus Quarantine Console",
565 | "qserver.exe": "Norton Internet Security",
566 | "rapapp.exe": "BlackICE",
567 | "rav7.exe": "已知杀软进程,名称暂未收录",
568 | "rav7win.exe": "已知杀软进程,名称暂未收录",
569 | "rav8win32eng.exe": "已知杀软进程,名称暂未收录",
570 | "ray.exe": "已知杀软进程,名称暂未收录",
571 | "rb32.exe": "RapidBlaster",
572 | "rcsync.exe": "PrizeSurfer",
573 | "realmon.exe": "Realmon",
574 | "reged.exe": "已知杀软进程,名称暂未收录",
575 | "regedit.exe": "已知杀软进程,名称暂未收录",
576 | "regedt32.exe": "已知杀软进程,名称暂未收录",
577 | "rescue.exe": "已知杀软进程,名称暂未收录",
578 | "rescue32.exe": "卡巴斯基互联网安全套装",
579 | "rrguard.exe": "已知杀软进程,名称暂未收录",
580 | "rshell.exe": "已知杀软进程,名称暂未收录",
581 | "rtvscn95.exe": "Real-time Virus Scanner",
582 | "rulaunch.exe": "McAfee User Interface",
583 | "run32dll.exe": "PAL PC Spy",
584 | "rundll.exe": "已知杀软进程,名称暂未收录",
585 | "rundll16.exe": "已知杀软进程,名称暂未收录",
586 | "ruxdll32.exe": "已知杀软进程,名称暂未收录",
587 | "safeweb.exe": "PSafe Tecnologia",
588 | "sahagent.exescan32.exe": "已知杀软进程,名称暂未收录",
589 | "save.exe": "已知杀软进程,名称暂未收录",
590 | "savenow.exe": "已知杀软进程,名称暂未收录",
591 | "sbserv.exe": "Norton Antivirus",
592 | "sc.exe": "已知杀软进程,名称暂未收录",
593 | "scam32.exe": "已知杀软进程,名称暂未收录",
594 | "scan95.exe": "已知杀软进程,名称暂未收录",
595 | "scanpm.exe": "已知杀软进程,名称暂未收录",
596 | "scrscan.exe": "360杀毒",
597 | "serv95.exe": "已知杀软进程,名称暂未收录",
598 | "setup_flowprotector_us.exe": "已知杀软进程,名称暂未收录",
599 | "setupvameeval.exe": "已知杀软进程,名称暂未收录",
600 | "sfc.exe": "System file checker",
601 | "sgssfw32.exe": "已知杀软进程,名称暂未收录",
602 | "sh.exe": "MKS Toolkit for Win3",
603 | "shellspyinstall.exe": "已知杀软进程,名称暂未收录",
604 | "shn.exe": "已知杀软进程,名称暂未收录",
605 | "showbehind.exe": "MicroSmarts Enterprise Component",
606 | "smc.exe": "赛门铁克",
607 | "smcGui.exe": "赛门铁克",
608 | "snac.exe": "赛门铁克",
609 | "sms.exe": "已知杀软进程,名称暂未收录",
610 | "smss32.exe": "已知杀软进程,名称暂未收录",
611 | "soap.exe": "System Soap Pro",
612 | "sofi.exe": "已知杀软进程,名称暂未收录",
613 | "sperm.exe": "已知杀软进程,名称暂未收录",
614 | "spf.exe": "已知杀软进程,名称暂未收录",
615 | "spoler.exe": "已知杀软进程,名称暂未收录",
616 | "spoolcv.exe": "已知杀软进程,名称暂未收录",
617 | "spoolsv32.exe": "已知杀软进程,名称暂未收录",
618 | "spyxx.exe": "已知杀软进程,名称暂未收录",
619 | "srexe.exe": "已知杀软进程,名称暂未收录",
620 | "srng.exe": "已知杀软进程,名称暂未收录",
621 | "ss3edit.exe": "已知杀软进程,名称暂未收录",
622 | "ssg_4104.exe": "已知杀软进程,名称暂未收录",
623 | "ssgrate.exe": "已知杀软进程,名称暂未收录",
624 | "st2.exe": "已知杀软进程,名称暂未收录",
625 | "start.exe": "已知杀软进程,名称暂未收录",
626 | "stcloader.exe": "已知杀软进程,名称暂未收录",
627 | "supftrl.exe": "已知杀软进程,名称暂未收录",
628 | "support.exe": "已知杀软进程,名称暂未收录",
629 | "supporter5.exe": "eScorcher反病毒",
630 | "svchostc.exe": "已知杀软进程,名称暂未收录",
631 | "svchosts.exe": "已知杀软进程,名称暂未收录",
632 | "sweep95.exe": "已知杀软进程,名称暂未收录",
633 | "sweepnet.sweepsrv.sys.swnetsup.exe": "已知杀软进程,名称暂未收录",
634 | "symproxysvc.exe": "赛门铁克",
635 | "symtray.exe": "Symantec",
636 | "sysedit.exe": "已知杀软进程,名称暂未收录",
637 | "sysupd.exe": "已知杀软进程,名称暂未收录",
638 | "taskmg.exe": "已知杀软进程,名称暂未收录",
639 | "taskmo.exe": "已知杀软进程,名称暂未收录",
640 | "taumon.exe": "已知杀软进程,名称暂未收录",
641 | "tbscan.exe": "ThunderBYTE",
642 | "tc.exe": "TimeCalende",
643 | "tca.exe": "已知杀软进程,名称暂未收录",
644 | "tcm.exe": "已知杀软进程,名称暂未收录",
645 | "tds-3.exe": "已知杀软进程,名称暂未收录",
646 | "tds2-98.exe": "已知杀软进程,名称暂未收录",
647 | "tds2-nt.exe": "已知杀软进程,名称暂未收录",
648 | "teekids.exe": "已知杀软进程,名称暂未收录",
649 | "tfak.exe": "已知杀软进程,名称暂未收录",
650 | "tfak5.exe": "已知杀软进程,名称暂未收录",
651 | "tgbob.exe": "已知杀软进程,名称暂未收录",
652 | "titanin.exe": "TitanHide",
653 | "titaninxp.exe": "已知杀软进程,名称暂未收录",
654 | "tracert.exe": "已知杀软进程,名称暂未收录",
655 | "trickler.exe": "已知杀软进程,名称暂未收录",
656 | "trjscan.exe": "已知杀软进程,名称暂未收录",
657 | "trjsetup.exe": "已知杀软进程,名称暂未收录",
658 | "trojantrap3.exe": "已知杀软进程,名称暂未收录",
659 | "tsadbot.exe": "已知杀软进程,名称暂未收录",
660 | "tvmd.exe": "Total Velocity",
661 | "tvtmd.exe": "Total Velocity",
662 | "undoboot.exe": "已知杀软进程,名称暂未收录",
663 | "updat.exe": "已知杀软进程,名称暂未收录",
664 | "update.exe": "已知杀软进程,名称暂未收录",
665 | "upgrad.exe": "已知杀软进程,名称暂未收录",
666 | "utpost.exe": "已知杀软进程,名称暂未收录",
667 | "vbcmserv.exe": "已知杀软进程,名称暂未收录",
668 | "vbcons.exe": "已知杀软进程,名称暂未收录",
669 | "vbust.exe": "已知杀软进程,名称暂未收录",
670 | "vbwin9x.exe": "已知杀软进程,名称暂未收录",
671 | "vbwinntw.exe": "已知杀软进程,名称暂未收录",
672 | "vcsetup.exe": "已知杀软进程,名称暂未收录",
673 | "vet32.exe": "已知杀软进程,名称暂未收录",
674 | "vet95.exe": "已知杀软进程,名称暂未收录",
675 | "vettray.exe": "eTrust",
676 | "vfsetup.exe": "已知杀软进程,名称暂未收录",
677 | "vir-help.exe": "已知杀软进程,名称暂未收录",
678 | "virusmdpersonalfirewall.exe": "已知杀软进程,名称暂未收录",
679 | "vnlan300.exe": "已知杀软进程,名称暂未收录",
680 | "vnpc3000.exe": "已知杀软进程,名称暂未收录",
681 | "vpc32.exe": "Symantec",
682 | "vpc42.exe": "Symantec",
683 | "vpfw30s.exe": "已知杀软进程,名称暂未收录",
684 | "vscan40.exe": "已知杀软进程,名称暂未收录",
685 | "vscenu6.02d30.exe": "已知杀软进程,名称暂未收录",
686 | "vsched.exe": "已知杀软进程,名称暂未收录",
687 | "vsecomr.exe": "已知杀软进程,名称暂未收录",
688 | "vsisetup.exe": "已知杀软进程,名称暂未收录",
689 | "vsmain.exe": "McAfee",
690 | "vswin9xe.exe": "已知杀软进程,名称暂未收录",
691 | "vswinntse.exe": "已知杀软进程,名称暂未收录",
692 | "vswinperse.exe": "已知杀软进程,名称暂未收录",
693 | "w32dsm89.exe": "已知杀软进程,名称暂未收录",
694 | "w9x.exe": "已知杀软进程,名称暂未收录",
695 | "watchdog.exe": "已知杀软进程,名称暂未收录",
696 | "webdav.exe": "已知杀软进程,名称暂未收录",
697 | "webtrap.exe": "已知杀软进程,名称暂未收录",
698 | "wfindv32.exe": "已知杀软进程,名称暂未收录",
699 | "whoswatchingme.exe": "已知杀软进程,名称暂未收录",
700 | "wimmun32.exe": "已知杀软进程,名称暂未收录",
701 | "win-bugsfix.exe": "已知杀软进程,名称暂未收录",
702 | "win32.exe": "已知杀软进程,名称暂未收录",
703 | "win32us.exe": "已知杀软进程,名称暂未收录",
704 | "winactive.exe": "已知杀软进程,名称暂未收录",
705 | "window.exe": "已知杀软进程,名称暂未收录",
706 | "windows.exe": "已知杀软进程,名称暂未收录",
707 | "wininetd.exe": "已知杀软进程,名称暂未收录",
708 | "wininitx.exe": "已知杀软进程,名称暂未收录",
709 | "winlogin.exe": "已知杀软进程,名称暂未收录",
710 | "winmain.exe": "已知杀软进程,名称暂未收录",
711 | "winnet.exe": "已知杀软进程,名称暂未收录",
712 | "winppr32.exe": "已知杀软进程,名称暂未收录",
713 | "winrecon.exe": "已知杀软进程,名称暂未收录",
714 | "winservn.exe": "已知杀软进程,名称暂未收录",
715 | "winssk32.exe": "已知杀软进程,名称暂未收录",
716 | "winstart.exe": "已知杀软进程,名称暂未收录",
717 | "winstart001.exe": "已知杀软进程,名称暂未收录",
718 | "wintsk32.exe": "已知杀软进程,名称暂未收录",
719 | "winupdate.exe": "已知杀软进程,名称暂未收录",
720 | "wkufind.exe": "已知杀软进程,名称暂未收录",
721 | "wnad.exe": "已知杀软进程,名称暂未收录",
722 | "wnt.exe": "已知杀软进程,名称暂未收录",
723 | "wradmin.exe": "已知杀软进程,名称暂未收录",
724 | "wrctrl.exe": "已知杀软进程,名称暂未收录",
725 | "wsbgate.exe": "已知杀软进程,名称暂未收录",
726 | "wupdater.exe": "已知杀软进程,名称暂未收录",
727 | "wupdt.exe": "已知杀软进程,名称暂未收录",
728 | "wyvernworksfirewall.exe": "已知杀软进程,名称暂未收录",
729 | "xpf202en.exe": "已知杀软进程,名称暂未收录",
730 | "zapro.exe": "Zone Alarm",
731 | "zapsetup3001.exe": "已知杀软进程,名称暂未收录",
732 | "zatutor.exe": "已知杀软进程,名称暂未收录",
733 | "zonalm2601.exe": "已知杀软进程,名称暂未收录",
734 | "AVPM.exe": "Kaspersky",
735 | "A2CMD.exe": "Emsisoft Anti-Malware",
736 | "A2SERVICE.exe": "a-squared free",
737 | "A2FREE.exe": "a-squared Free",
738 | "ADVCHK.exe": "Norton AntiVirus",
739 | "AGB.exe": "安天防线",
740 | "AKRNL.exe": "已知杀软进程,名称暂未收录",
741 | "AHPROCMONSERVER.exe": "安天防线",
742 | "AIRDEFENSE.exe": "AirDefense",
743 | "ALERTSVC.exe": "Norton AntiVirus",
744 | "AVIRA.exe": "小红伞杀毒",
745 | "AMON.exe": "Tiny Personal Firewall",
746 | "TROJAN.exe": "已知杀软进程,名称暂未收录",
747 | "AVZ.exe": "AVZ",
748 | "ANTIVIR.exe": "已知杀软进程,名称暂未收录",
749 | "APVXDWIN.exe": "熊猫卫士",
750 | "ARMOR2NET.exe": "已知杀软进程,名称暂未收录",
751 | "ASH.exeexe.exe": "已知杀软进程,名称暂未收录",
752 | "ASHENHCD.exe": "已知杀软进程,名称暂未收录",
753 | "ASHMAISV.exe": "Alwil",
754 | "ASHPOPWZ.exe": "已知杀软进程,名称暂未收录",
755 | "ASHSERV.exe": "Avast Anti-virus",
756 | "ASHSIMPL.exe": "AVAST!VirusCleaner",
757 | "ASHSKPCK.exe": "已知杀软进程,名称暂未收录",
758 | "ASHWEBSV.exe": "Avast",
759 | "ASWUPDSV.exe": "Avast",
760 | "ASWSCAN.exe": "Avast",
761 | "AVCIMAN.exe": "熊猫卫士",
762 | "AVCONSOL.exe": "McAfee",
763 | "AVENGINE.exe": "熊猫卫士",
764 | "AVESVC.exe": "Avira AntiVir Security Service",
765 | "AVEVAL.exe": "已知杀软进程,名称暂未收录",
766 | "AVEVL32.exe": "已知杀软进程,名称暂未收录",
767 | "AVGAM.exe": "AVG",
768 | "AVGCC.exe": "AVG",
769 | "AVGCHSVX.exe": "AVG",
770 | "AVGCSRVX.exe": "AVG",
771 | "AVGNSX.exe": "AVG",
772 | "AVGCC32.exe": "AVG",
773 | "AVGCTRL.exe": "AVG",
774 | "AVGEMC.exe": "AVG",
775 | "AVGFWSRV.exe": "AVG",
776 | "AVGNTMGR.exe": "AVG",
777 | "AVGSERV.exe": "AVG",
778 | "AVGTRAY.exe": "AVG",
779 | "AVGUPSVC.exe": "AVG",
780 | "AVINITNT.exe": "Command AntiVirus for NT Server",
781 | "AVKSERV.exe": "已知杀软进程,名称暂未收录",
782 | "AVKSERVICE.exe": "已知杀软进程,名称暂未收录",
783 | "AVKWCTL.exe": "G Data文件系统实时监控",
784 | "AVP32.exe": "已知杀软进程,名称暂未收录",
785 | "AVPCC.exe": "Kaspersky",
786 | "AVSERVER.exe": "Kerio MailServer",
787 | "AVSCHED32.exe": "H+BEDV",
788 | "AVSYNMGR.exe": "McAfee",
789 | "AVWUPD32.exe": "已知杀软进程,名称暂未收录",
790 | "AVWUPSRV.exe": "H+BEDV",
791 | "AVXMONITOR.exe": "已知杀软进程,名称暂未收录",
792 | "AVXQUAR.exe": "已知杀软进程,名称暂未收录",
793 | "BDSWITCH.exe": "BitDefender Module",
794 | "BLACKD.exe": "BlackICE",
795 | "BLACKICE.exe": "BlackICE",
796 | "CAFIX.exe": "已知杀软进程,名称暂未收录",
797 | "BITDEFENDER.exe": "已知杀软进程,名称暂未收录",
798 | "CCEVTMGR.exe": "Norton Internet Security",
799 | "CFP.exe": "COMODO",
800 | "CFPCONFIG.exe": "已知杀软进程,名称暂未收录",
801 | "CFIAUDIT.exe": "已知杀软进程,名称暂未收录",
802 | "CLAMTRAY.exe": "ClemWin Free Antivirus",
803 | "clamscan.exe": "ClemWin Free Antivirus",
804 | "CLAMWIN.exe": "ClamWin Portable",
805 | "CUREIT.exe": "DrWeb CureIT",
806 | "DEFWATCH.exe": "Norton Antivirus",
807 | "DRVIRUS.exe": "已知杀软进程,名称暂未收录",
808 | "DRWADINS.exe": "Dr.Web",
809 | "DRWEB.exe": "Dr.Web",
810 | "DEFENDERDAEMON.exe": "ShadowDefender",
811 | "DWEBLLIO.exe": "已知杀软进程,名称暂未收录",
812 | "DWEBIO.exe": "已知杀软进程,名称暂未收录",
813 | "ESCANH95.exe": "已知杀软进程,名称暂未收录",
814 | "ESCANHNT.exe": "已知杀软进程,名称暂未收录",
815 | "EWIDOCTRL.exe": "Ewido Security Suite",
816 | "EZANTIVIRUSREGISTRATIONCHECK.exe": "e-Trust Antivirus",
817 | "F-AGNT95.exe": "已知杀软进程,名称暂未收录",
818 | "FAMEH32.exe": "已知杀软进程,名称暂未收录",
819 | "FILEMON.exe": "已知杀软进程,名称暂未收录",
820 | "FIREWALL.exe": "AshampooSoftware",
821 | "FORTICLIENT.exe": "已知杀软进程,名称暂未收录",
822 | "FORTISCAN.exe": "已知杀软进程,名称暂未收录",
823 | "FPAVSERVER.exe": "已知杀软进程,名称暂未收录",
824 | "FPROTTRAY.exe": "F-PROT Antivirus",
825 | "FPWIN.exe": "Verizon",
826 | "FRESHCLAM.exe": "ClamAV",
827 | "FSAV32.exe": "F-Secure",
828 | "FSBWSYS.exe": "F-secure",
829 | "F-SCHED.exe": "已知杀软进程,名称暂未收录",
830 | "FSDFWD.exe": "F-Secure",
831 | "FSGK32.exe": "F-Secure",
832 | "FSGK32ST.exe": "F-Secure",
833 | "FSGUIEXE.exe": "已知杀软进程,名称暂未收录",
834 | "FSMA32.exe": "F-Secure",
835 | "FSMB32.exe": "F-Secure",
836 | "FSPEX.exe": "已知杀软进程,名称暂未收录",
837 | "FSSM32.exe": "F-Secure",
838 | "F-STOPW.exe": "已知杀软进程,名称暂未收录",
839 | "GCASDTSERV.exe": "已知杀软进程,名称暂未收录",
840 | "GCASSERV.exe": "已知杀软进程,名称暂未收录",
841 | "GIANTANTISPYWARE.exe": "已知杀软进程,名称暂未收录",
842 | "GUARDGUI.exe": "网游保镖",
843 | "GUARDNT.exe": "IKARUS",
844 | "GUARDXSERVICE.exe": "已知杀软进程,名称暂未收录",
845 | "GUARDXKICKOFF.exe": "已知杀软进程,名称暂未收录",
846 | "HREGMON.exe": "已知杀软进程,名称暂未收录",
847 | "HRRES.exe": "已知杀软进程,名称暂未收录",
848 | "HSOCKPE.exe": "已知杀软进程,名称暂未收录",
849 | "HUPDATE.exe": "已知杀软进程,名称暂未收录",
850 | "IAMAPP.exe": "赛门铁克",
851 | "IAMSERV.exe": "赛门铁克",
852 | "ICLOAD95.exe": "已知杀软进程,名称暂未收录",
853 | "ICLOADNT.exe": "已知杀软进程,名称暂未收录",
854 | "ICMON.exe": "已知杀软进程,名称暂未收录",
855 | "ICSSUPPNT.exe": "已知杀软进程,名称暂未收录",
856 | "ICSUPP95.exe": "已知杀软进程,名称暂未收录",
857 | "ICSUPPNT.exe": "已知杀软进程,名称暂未收录",
858 | "INETUPD.exe": "已知杀软进程,名称暂未收录",
859 | "INOCIT.exe": "eTrust",
860 | "INORPC.exe": "eTrust",
861 | "INORT.exe": "eTrust",
862 | "INOTASK.exe": "eTrust",
863 | "INOUPTNG.exe": "eTrust",
864 | "IOMON98.exe": "已知杀软进程,名称暂未收录",
865 | "ISAFE.exe": "eTrust",
866 | "ISATRAY.exe": "已知杀软进程,名称暂未收录",
867 | "KAV.exe": "Kaspersky",
868 | "KAVMM.exe": "Kaspersky",
869 | "KAVPF.exe": "Kaspersky",
870 | "KAVPFW.exe": "Kaspersky",
871 | "KAVSTART.exe": "Kaspersky",
872 | "KAVSVC.exe": "Kaspersky",
873 | "KAVSVCUI.exe": "Kaspersky",
874 | "KMAILMON.exe": "金山毒霸",
875 | "MAMUTU.exe": "已知杀软进程,名称暂未收录",
876 | "MCAGENT.exe": "McAfee",
877 | "MCMNHDLR.exe": "McAfee",
878 | "MCREGWIZ.exe": "McAfee",
879 | "MCUPDATE.exe": "McAfee",
880 | "MCVSSHLD.exe": "McAfee",
881 | "MINILOG.exe": "Zone Alarm",
882 | "MYAGTSVC.exe": "McAfee",
883 | "MYAGTTRY.exe": "McAfee",
884 | "NAVAPSVC.exe": "Norton",
885 | "NAVAPW32.exe": "Norton",
886 | "NAVLU32.exe": "Norton",
887 | "NAVW32.exe": "Norton Antivirus",
888 | "NEOWATCHLOG.exe": "NeoWatch",
889 | "NEOWATCHTRAY.exe": "NeoWatch",
890 | "NISSERV.exe": "Norton",
891 | "NISUM.exe": "Norton",
892 | "NMAIN.exe": "Norton",
893 | "NOD32.exe": "ESET NOD32",
894 | "NORMIST.exe": "已知杀软进程,名称暂未收录",
895 | "NOTSTART.exe": "已知杀软进程,名称暂未收录",
896 | "NPAVTRAY.exe": "已知杀软进程,名称暂未收录",
897 | "NPFMSG.exe": "Norman个人防火墙",
898 | "NPROTECT.exe": "赛门铁克",
899 | "NSCHED32.exe": "已知杀软进程,名称暂未收录",
900 | "NSMDTR.exe": "Norton",
901 | "NSSSERV.exe": "已知杀软进程,名称暂未收录",
902 | "NSSTRAY.exe": "已知杀软进程,名称暂未收录",
903 | "NTRTSCAN.exe": "趋势科技",
904 | "NTOS.exe": "已知杀软进程,名称暂未收录",
905 | "NTXCONFIG.exe": "已知杀软进程,名称暂未收录",
906 | "NUPGRADE.exe": "已知杀软进程,名称暂未收录",
907 | "NVCOD.exe": "已知杀软进程,名称暂未收录",
908 | "NVCTE.exe": "已知杀软进程,名称暂未收录",
909 | "NVCUT.exe": "已知杀软进程,名称暂未收录",
910 | "NWSERVICE.exe": "已知杀软进程,名称暂未收录",
911 | "OFCPFWSVC.exe": "OfficeScanNT",
912 | "ONLINENT.exe": "已知杀软进程,名称暂未收录",
913 | "OPSSVC.exe": "已知杀软进程,名称暂未收录",
914 | "OP_MON.exe": "OutpostFirewall",
915 | "PAVFIRES.exe": "熊猫卫士",
916 | "PAVFNSVR.exe": "熊猫卫士",
917 | "PAVKRE.exe": "熊猫卫士",
918 | "PAVPROT.exe": "熊猫卫士",
919 | "PAVPROXY.exe": "已知杀软进程,名称暂未收录",
920 | "PAVPRSRV.exe": "熊猫卫士",
921 | "PAVSRV51.exe": "熊猫卫士",
922 | "PAVSS.exe": "熊猫卫士",
923 | "PCCGUIDE.exe": "PC-cillin",
924 | "PCCIOMON.exe": "PC-cillin",
925 | "PCCNTMON.exe": "PC-cillin",
926 | "PCCPFW.exe": "趋势科技",
927 | "PCCTLCOM.exe": "趋势科技",
928 | "PCTAV.exe": "PC Tools AntiVirus",
929 | "PERSFW.exe": "已知杀软进程,名称暂未收录",
930 | "PERTSK.exe": "已知杀软进程,名称暂未收录",
931 | "PERVAC.exe": "已知杀软进程,名称暂未收录",
932 | "PESTPATROL.exe": "Ikarus",
933 | "PNMSRV.exe": "已知杀软进程,名称暂未收录",
934 | "PREVSRV.exe": "熊猫卫士",
935 | "PREVX.exe": "已知杀软进程,名称暂未收录",
936 | "PSIMSVC.exe": "已知杀软进程,名称暂未收录",
937 | "QHONLINE.exe": "已知杀软进程,名称暂未收录",
938 | "QHONSVC.exe": "已知杀软进程,名称暂未收录",
939 | "QHWSCSVC.exe": "已知杀软进程,名称暂未收录",
940 | "QHSET.exe": "已知杀软进程,名称暂未收录",
941 | "RTVSCN95.exe": "Real-time Virus Scanner",
942 | "SALITY.exe": "已知杀软进程,名称暂未收录",
943 | "SAPISSVC.exe": "已知杀软进程,名称暂未收录",
944 | "SCANWSCS.exe": "已知杀软进程,名称暂未收录",
945 | "SAVADMINSERVICE.exe": "Sophos Anti-Virus",
946 | "SAVMAIN.exe": "Sophos Anti-Virus",
947 | "SAVSCAN.exe": "Sophos Anti-Virus",
948 | "SCANNINGPROCESS.exe": "已知杀软进程,名称暂未收录",
949 | "SDRA64.exe": "已知杀软进程,名称暂未收录",
950 | "SDHELP.exe": "Spyware Doctor",
951 | "SHSTAT.exe": "McAfee",
952 | "SITECLI.exe": "已知杀软进程,名称暂未收录",
953 | "SPBBCSVC.exe": "Symantec",
954 | "SPIDERCPL.exe": "Dr.Web",
955 | "SPIDERML.exe": "Dr.Web",
956 | "SPIDERUI.exe": "Dr.Web",
957 | "SPYBOTSD.exe": "Spybot",
958 | "SPYXX.exe": "已知杀软进程,名称暂未收录",
959 | "SS3EDIT.exe": "已知杀软进程,名称暂未收录",
960 | "STOPSIGNAV.exe": "已知杀软进程,名称暂未收录",
961 | "SWAGENT.exe": "SonicWALL",
962 | "SWDOCTOR.exe": "SonicWALL",
963 | "SWNETSUP.exe": "Sophos",
964 | "SYMLCSVC.exe": "赛门铁克",
965 | "SYMPROXYSVC.exe": "Symantec",
966 | "SYMSPORT.exe": "已知杀软进程,名称暂未收录",
967 | "SYMWSC.exe": "赛门铁克",
968 | "SYNMGR.exe": "赛门铁克",
969 | "TAUMON.exe": "已知杀软进程,名称暂未收录",
970 | "TMLISTEN.exe": "趋势科技",
971 | "TMNTSRV.exe": "趋势科技",
972 | "TMPROXY.exe": "趋势科技",
973 | "TNBUTIL.exe": "Anti-Virus",
974 | "TRJSCAN.exe": "已知杀软进程,名称暂未收录",
975 | "VBA32ECM.exe": "已知杀软进程,名称暂未收录",
976 | "VBA32IFS.exe": "已知杀软进程,名称暂未收录",
977 | "VBA32LDR.exe": "已知杀软进程,名称暂未收录",
978 | "VBA32PP3.exe": "已知杀软进程,名称暂未收录",
979 | "VBSNTW.exe": "已知杀软进程,名称暂未收录",
980 | "VCRMON.exe": "VirusChaser",
981 | "VRFWSVC.exe": "已知杀软进程,名称暂未收录",
982 | "VRMONNT.exe": "HAURI",
983 | "VRMONSVC.exe": "HAURI",
984 | "VRRW32.exe": "已知杀软进程,名称暂未收录",
985 | "VSECOMR.exe": "已知杀软进程,名称暂未收录",
986 | "WATCHDOG.exe": "已知杀软进程,名称暂未收录",
987 | "WINSSNOTIFY.exe": "已知杀软进程,名称暂未收录",
988 | "WRCTRL.exe": "已知杀软进程,名称暂未收录",
989 | "XCOMMSVR.exe": "BitDefender",
990 | "ZLCLIENT.exe": "已知杀软进程,名称暂未收录",
991 | "ZONEALARM.exe": "Zone Alarm",
992 | "zonealarm.exe": "Zone Alarm",
993 | "vsmon.exe": "Zone Alarm",
994 | "360rp.exe": "360杀毒",
995 | "afwServ.exe": "Avast Antivirus",
996 | "safeboxTray.exe": "360保险箱",
997 | "360safebox.exe": "360保险箱",
998 | "QQPCTray.exe": "腾讯电脑管家",
999 | "QQPCNetFlow.exe": "腾讯电脑管家",
1000 | "QQPCRealTimeSpeedup.exe": "腾讯电脑管家",
1001 | "QQProtect.exe": "腾讯电脑管家",
1002 | "KSafeTray.exe": "金山毒霸",
1003 | "KSafeSvc.exe": "金山毒霸",
1004 | "KWatch.exe": "金山毒霸",
1005 | "MBAMService.exe": "Malwarebytes Anti-Malware",
1006 | "mbam.exe": "Malwarebytes Anti-Malware",
1007 | "mbamtray.exe": "Malwarebytes Anti-Malware",
1008 | "GDScan.exe": "G Data扫描器",
1009 | "AVKProxy.exe": "G Data杀毒代理",
1010 | "AVKBackupService.exe": "G Data备份服务",
1011 | "AVK.exe":"G Data安全软件客户端",
1012 | "Notifier.exe": "亚信安全服务器深度安全防护系统",
1013 | "TitanAgent.exe": "青藤云agent &天眼云镜",
1014 | "TitanMonitor.exe": "青藤云agent &天眼云镜",
1015 | "sfavsvc.exe": "深信服EDR Agent",
1016 | "sfavtray.exe": "深信服EDR Agent",
1017 | "edr_monitor.exe": "深信服EDR Agent",
1018 | "abs_deployer.exe": "深信服EDR Agent",
1019 | "mss_deployer.exe": "深信服EDR Agent",
1020 | "edr_agent.exe": "深信服EDR Agent",
1021 | "sfupdatemgr.exe": "深信服EDR Agent",
1022 | "edr_sec_plan.exe":"深信服EDR Agent",
1023 | "QAXEntClient.exe": "奇安信天擎",
1024 | "QAXDownMgr.exe": "奇安信天擎",
1025 | "QAXTray.exe": "奇安信天擎",
1026 | "360EntClient.exe": "360天擎",
1027 | "skylards.exe": "360天擎数据服务组件",
1028 | "360skylarsvc.exe": "360天擎服务",
1029 | "reportsteward.exe": "QAX终端安全管理系统-接入组件",
1030 | "jmpserv.exe": "360天擎 NAC RPC服务",
1031 | "skydasgosdk.exe":"奇安信集团天擎6Skydas-go-sdk组件",
1032 | "skylarcentral.exe": "360天擎6服务端组件",
1033 | "skylarcron.exe": "360天擎6服务端组件",
1034 | "skylarminide.exe": "360天擎6报表组件",
1035 | "skytime.exe": "360天擎6",
1036 | "skylarapi.exe": "360天擎API组件",
1037 | "QHActiveDefense.exe":"360 Total Security (360国际版)",
1038 | "QHWatchdog.exe":"360 Total Security (360国际版)",
1039 | "QHSafeTray.exe":"360 Total Security (360国际版)",
1040 | "QHSafeMain.exe":"360 Total Security (360国际版)",
1041 | "wdswfsafe.exe":"360杀毒-网盾",
1042 | "LiveUpdate360.exe": "360杀毒",
1043 | "YDService.exe":"腾讯云-云镜",
1044 | "YDLive.exe":"腾讯云-云镜",
1045 | "TopsecTray.exe":"天融信终端防御",
1046 | "TopsecMain.exe":"天融信终端防御",
1047 | "moniore.exe":"安恒主机卫士",
1048 | "gse_win_daemon.exe":"蓝鲸Agent",
1049 | "gse_win_agent.exe":"蓝鲸Agent",
1050 | "AliYunDun.exe":"阿里云云盾",
1051 | "ESCCIndex.exe":"启明星辰天珣EDR Agent",
1052 | "ESAV.exe":"启明星辰天珣EDR Agent",
1053 | "ESCC.exe":"启明星辰天珣EDR Agent",
1054 | "ESCCControl.exe":"启明星辰天珣EDR Agent"
1055 | }
--------------------------------------------------------------------------------