MCPcopy Create free account
hub / github.com/f0ng/captcha-killer-modified / encdoeLable

Method encdoeLable

src/main/java/utils/LableParser.java:110–174  ·  view source on GitHub ↗
(String type,String str)

Source from the content-addressed store, hash-verified

108
109
110 private String encdoeLable(String type,String str) throws IOException { // 处理请求编码
111 String encodeStr = "";
112
113 switch (type){
114 case "BASE64":
115 if(str.startsWith("[base64]")){
116 str = str.replace("[base64]","");
117 encodeStr = base64Encode(base64Decode(str));
118 }else {
119 encodeStr = base64Encode(str);
120 }
121 break;
122 case "URLENCODE":
123 if(str.startsWith("[base64]")) {
124 str = str.replace("[base64]","");
125 byte[] byteRes = base64Decode(str);
126 encodeStr = URLEncode(new String(byteRes));
127 }else {
128 encodeStr = URLEncode(str);
129 }
130 break;
131 case "IMG_RAW":
132// System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaa");
133 String strr = new String(byteImage);
134 String words = BurpExtender.gui.tfWords.getText();
135
136
137 if (!words.trim().equals("") && strr.contains(words)){
138 byteImage = dataimgToimg(strr,words);
139
140 }else {
141 if ((strr.contains("data:image") ) || (strr.contains("data%3Aimage"))) {
142
143// 0.20 注释下面,原因是响应包里有直接data:image开头的
144// if ((strr.contains("data:image") && !strr.startsWith("data:image")) || (strr.contains("data%3Aimage") && !strr.startsWith("data%3Aimage"))) {
145
146
147 //strr = new String(byteImage);
148 strr = strr.replace("\\r\\n","").replace("\\n","");
149 strr = strr.replace("\\","");
150 String pattern = "(data:image.*?)[\"|&]|(data%2Aimage.*?)[\"|&]";
151 Pattern r = Pattern.compile(pattern);
152 Matcher m = r.matcher(strr);
153 if (m.find()) {
154 strr = m.group(0).replace("\"", "").replace("&", "").replace("Base64:", "").replace("base64:", "");
155 }
156 if (!strr.contains("data:image")) {
157 strr = "o;base64," + strr;
158 }
159// BurpExtender.stdout.println(strr);
160// byteImage = strr.getBytes();
161 byteImage = DatatypeConverter.parseBase64Binary(strr.substring(strr.indexOf(",") + 1));
162 }
163 }
164 //注意:byte[]转string后,string再转byte[]无法还原的,故该地方采用base64编码存储byte[],等到使用时在解码为byte[]。
165 String base64Img = base64Encode(byteImage);
166 encodeStr = "[base64]" + base64Img + "[base64]";
167// System.out.println(encodeStr);

Callers 2

parseOneLableMethod · 0.95

Calls 4

base64EncodeMethod · 0.80
base64DecodeMethod · 0.80
URLEncodeMethod · 0.80
dataimgToimgMethod · 0.80

Tested by

no test coverage detected