├── 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 | ![image-20230918094808503](./README.assets/image-20230918094808503.png) 16 | 17 | 批量选中多个插件右键可以发送到`POC`页面进行扫描,批量选中不可选择发送到EXP,必须单个选中。 18 | 19 | ![image-20230731113927901](./README.assets/image-20230731113927901.png) 20 | 21 | POC可以批量扫描多个插件和多个URL,扫描结果会输出在右边的表格和下发的结果输出区域。 22 | 23 | 24 | 25 | 选中EXP后,如果该插件编写了EXP可以跳转到漏洞利用的界面,根据插件定义好的参数进行输入 26 | 27 | ![image-20230731114232032](./README.assets/image-20230731114232032.png) 28 | 29 | 最后会将输出结果打印到软件结果输出区域 30 | 31 | ![image-20230731125457051](./README.assets/image-20230731125457051.png) 32 | 33 | 34 | 35 | ## 设置页面 36 | 37 | ### 自定义代理功能 38 | 39 | 可设置`HTTP`代理和`Socks`代理方便各种网络环境使用,开启代理功能后软件左下角会有代理开启提示,同时原代理参数不可标记,可以关闭后修改参数重新启动。 40 | 41 | ![image-20230918095032329](./README.assets/image-20230918095032329.png) 42 | 43 | 44 | 45 | ### 自定义编码方式 46 | 47 | 默认使用`UTF-8`编码,可根据目标站点自行设置,插件中使用`Targetinfo#getCharset()`方法获取软件设置的自定义编码 48 | 49 | ![image-20230918095053003](./README.assets/image-20230918095053003.png) 50 | 51 | ### 自定义超时时间 52 | 53 | 自定义Http超时时间,默认`1000`毫秒,插件中使用`TargetInfo#getTimeout()`方法获取软件设置的自定义超时时间 54 | 55 | ![image-20230918095204930](./README.assets/image-20230918095204930.png) 56 | 57 | ### 自定义User-Agent 58 | 59 | 自定义User-Agent头,默认使用这些随机的User-Agent头,插件中使用`TargetInfo#getUserAgent()`方法获取软件设置的自定义UserAgent头 60 | 61 | ![image-20230918095219483](./README.assets/image-20230918095219483.png) 62 | 63 | ### DNSLog 64 | 65 | 可以配合Poc插件定制需要DNSLog的场景。 66 | 67 | image-20230918095254958 68 | 69 | DNSLog的结果在这里显示 70 | 71 | ![image-20230918095318949](./README.assets/image-20230918095318949.png) 72 | 73 | 74 | 75 | ## 插件编写 76 | 77 | ### 目录结构 78 | 79 | ![image-20230731125758549](./README.assets/image-20230731125758549.png) 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 | ![image-20230731130825643](./README.assets/image-20230731130825643.png) 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 | 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 | 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 | 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 | 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 | } --------------------------------------------------------------------------------