diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/AppParmsIni.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/AppParmsIni.java index 42f644b..cc1b6db 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/AppParmsIni.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/AppParmsIni.java @@ -26,7 +26,7 @@ import java.util.*; import java.util.regex.Pattern; -/** @author daike */ +/** @author gdgd009xcd */ // // class AppParmsIni // @@ -449,7 +449,7 @@ String getGenValue( int n; switch (typeval) { case T_NUMBER: // number - n = countUp(_valparttype, this); // synchronized + n = countUp(_valparttype, this, apv, pmt); // synchronized if (n > -1) { return getFillZeroInt(n); // thread safe } else { @@ -466,7 +466,8 @@ String getGenValue( apv.getTrackKey(), tk, currentStepNo, - toStepNo); // per thread object + toStepNo, + apv); // per thread object // } default: // csv if (frl != null) { @@ -475,7 +476,11 @@ String getGenValue( csvpos = len; } return frl.readLine( - _valparttype, csvpos, this); // read CSV 1 record. synchronized + _valparttype, + csvpos, + this, + apv, + pmt); // read CSV 1 record. synchronized } else { LOGGER4J.debug("getGenValue frl is NULL"); } @@ -498,7 +503,8 @@ String getStrCnt( return cstrcnt; } - synchronized int countUp(int _valparttype, AppParmsIni _parent) { + synchronized int countUp( + int _valparttype, AppParmsIni _parent, AppValue apv, ParmGenMacroTrace pmt) { // counter file open int cnt = inival; try { @@ -523,7 +529,13 @@ synchronized int countUp(int _valparttype, AppParmsIni _parent) { int ncnt = cnt + 1; - if (((_valparttype & AppValue.C_NOCOUNT) == AppValue.C_NOCOUNT) || _parent.isPaused()) { + boolean condInValid = false; + if (pmt != null && apv != null) { + condInValid = !pmt.getFetchResponseVal().getCondValid(apv) && apv.hasCond(); + } + if (condInValid + || ((_valparttype & AppValue.C_NOCOUNT) == AppValue.C_NOCOUNT) + || _parent.isPaused()) { ncnt = cnt; // no countup } else if (ncnt > maxval) { LOGGER4J.debug( @@ -574,7 +586,7 @@ public String getCurrentValue() { String rval = null; switch (typeval) { case T_NUMBER: - int i = countUp(AppValue.C_NOCOUNT, this); // synchronized + int i = countUp(AppValue.C_NOCOUNT, this, null, null); // synchronized rval = Integer.toString(i); break; case T_RANDOM: @@ -625,6 +637,11 @@ public final void rewindAppValues() { } } + /** + * get JTable row which is generated from AppValue + * + * @return Object[] + */ public Object[] getNextAppValuesRow() { AppValue app; if (it != null && it.hasNext()) { @@ -662,7 +679,11 @@ public Object[] getNextAppValuesRow() { app.getToStepNo() == ParmVars.TOSTEPANY ? "*" : Integer.toString(app.getToStepNo()), - app.getTokenType().name() + app.getTokenType().name(), + app.getCondRegex(), + app.getCondTargetNo(), + app.requestIsCondRegexTarget(), + app.isReplaceZeroSize() }; default: break; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/AppValue.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/AppValue.java index 2f0827b..e6a2369 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/AppValue.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/AppValue.java @@ -26,7 +26,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -/** @author daike */ +/** @author gdgd009xcd */ // // class AppValue // @@ -41,8 +41,8 @@ public class AppValue { private String valpart; // 置換位置 private int valparttype; // 1-query, 2-body 3-header 4-path.... 16(10000) bit == no count // 32(100000) == no modify - private String value = null; // value リクエストパラメータの正規表現文字列 - private Pattern valueregex; // リクエストパラメータの正規表現 + private String value = null; // Target Regex String to embed value in + private Pattern valueregex; // Target Regex to embed value in private int csvpos; @@ -52,8 +52,8 @@ public class AppValue { private String resRegex = ""; private Pattern Pattern_resRegex = null; private int resPartType; - private int resRegexPos = -1; // 追跡token ページ内出現位置 0start - private String token; // 追跡token Name + private int resRegexPos = -1; // Tracking token position on page(start 0) + private String token; // Tracking token name // // 下記パラメータは、GUI操作時の一時保存値で、保存対象外。スキャン時は未使用。 // This parameter does not use when scanning. only temporarily use for GUI manipulation @@ -62,6 +62,18 @@ public class AppValue { private TokenTypeNames tokentype = TokenTypeNames.INPUT; + // conditional parameter tracking feature + private int condTargetNo = -1; // conditinal tracking targetNo default: -1(any == wildcard "*") + private String condRegex = ""; // conditional tracking regex. if requestNO == condTargetNo + private Pattern Pattern_condRegex = null; // compiled pattern of condRegex + // and it's request or response matched this regex then cache value is updated. + private boolean condRegexTargetIsRequest = + false; // if this value is true then condRegex matches request. + + private boolean replaceZeroSize = + false; // if this value is true, request parameter replaced even if fetched tracking + // value is zero size string. + public enum TokenTypeNames { DEFAULT, INPUT, @@ -143,10 +155,14 @@ public enum ResEncodeTypes { private boolean enabled = true; // 有効 private void initctype() { + Pattern_condRegex = null; + condTargetNo = -1; + condRegex = null; trackkey = null; resFetchedValue = null; enabled = true; tokentype = TokenTypeNames.INPUT; + replaceZeroSize = false; } public AppValue() { @@ -206,7 +222,11 @@ public AppValue( boolean _urlenc, int _fromStepNo, int _toStepNo, - String _tokentypename) { + String _tokentypename, + String condRegex, + int condTargetNo, + boolean condRegexTargetIsRequest, + boolean replaceZeroSize) { initctype(); setValPart(_Type); setEnabled(!_disabled); // NOT @@ -221,6 +241,10 @@ public AppValue( fromStepNo = _fromStepNo; toStepNo = _toStepNo; tokentype = parseTokenTypeName(_tokentypename); + setCondRegex(condRegex); + this.condTargetNo = condTargetNo; + this.condRegexTargetIsRequest = condRegexTargetIsRequest; + this.replaceZeroSize = replaceZeroSize; } /** @@ -477,6 +501,15 @@ public Pattern getPattern_resRegex() { return Pattern_resRegex; } + /** + * get regex pattern for conditional parameter tracking + * + * @return + */ + public Pattern getPattern_condRegex() { + return Pattern_condRegex; + } + public String getresRegex() { return resRegex; } @@ -497,6 +530,104 @@ public void setresRegex(String _regex) { } } + /** + * set regex pattern for conditional parameter tracking + * + * @param _regex + */ + public void setCondRegex(String _regex) { + if (_regex == null) _regex = ""; + this.condRegex = _regex; + try { + this.Pattern_condRegex = ParmGenUtil.Pattern_compile(this.condRegex); + } catch (Exception e) { + LOGGER4J.error("ERROR: setcondRegex ", e); + this.Pattern_condRegex = null; + } + } + + public String getCondRegex() { + return condRegex; + } + + public void setCondRegexURLencoded(String _regex) { + if (_regex == null) _regex = ""; + setCondRegex(URLdecode(_regex)); + } + + /** + * get conditinal target request No. + * + * @return + */ + public int getCondTargetNo() { + return condTargetNo; + } + + /** + * set conditinal target request No. + * + * @param nstr String - String of number representation. specialcase is "*" or "" => -1 + */ + public void setCondTargetNo(String nstr) { + if (nstr == null || nstr.isEmpty() || nstr.equals("*")) { + condTargetNo = -1; + } else { + try { + condTargetNo = Integer.parseInt(nstr); + } catch (Exception e) { + condTargetNo = -1; + } + } + } + + public void setCondTargetNo(int no) { + condTargetNo = no; + } + + /** condition parameter tracking is exist */ + public boolean hasCond() { + return Pattern_condRegex != null && condTargetNo != -1; + } + + /** + * Whether the conditional regular expression applies to requests or responses + * + * @return true - applies to request. + */ + public boolean requestIsCondRegexTarget() { + return condRegexTargetIsRequest; + } + + /** + * set conditional reqular expression target which is request or not. + * + * @param b + */ + public void setRequestIsCondTegexTarget(boolean b) { + condRegexTargetIsRequest = b; + } + + /** + * get replaceZeroSize boolean. if this value true, then request parameter replace even if + * tracking value is zero size string. + * + * @return + */ + public boolean isReplaceZeroSize() { + return this.replaceZeroSize; + } + + /** + * set replaceZeroSize boolean. if this value true, then request parameter replace even if + * tracking value is zero size string. + * + * @param b + */ + public void setReplaceZeroSize(boolean b) { + this.replaceZeroSize = b; + } + public void setresPartType(String respart) { if (respart == null) respart = ""; resPartType = parseValPartType(respart); @@ -692,7 +823,6 @@ String[] replaceContents( if (toStepNo != ParmVars.TOSTEPANY) { if (currentStepNo != toStepNo) { return null; // - } else { } // tokentype 固定。tokentypeは追跡元のタイプなので、追跡先toStepNoの埋め込み先タイプとは無関係で無視する。 // tk = new ParmGenTokenKey(AppValue.TokenTypeNames.DEFAULT, token, toStepNo); @@ -725,7 +855,7 @@ String[] replaceContents( + " TokenName:" + token; ParmGenTokenKey errorhash_key = new ParmGenTokenKey(TokenTypeNames.DEFAULT, errKeyName, 0); - Matcher m = valueregex.matcher(contents); + Matcher m = valueregex.matcher(contents); // embed target match Matcher m_org = null; if (org_contents_iso8859 != null) { @@ -775,7 +905,8 @@ String[] replaceContents( LOGGER4J.debug("org_matchval[" + org_matchval + "] matchval[" + matchval + "]"); strcnt = differ.replaceOrgMatchedValue(strcnt); } - if (strcnt != null) { + if (strcnt != null + && (!strcnt.isEmpty() || strcnt.isEmpty() && this.isReplaceZeroSize())) { LOGGER4J.info( java.text.MessageFormat.format( bundle.getString("ParmGen.parameter_regex_msg1.text"), @@ -803,7 +934,7 @@ String[] replaceContents( errorhash.put(errorhash_key, errorhash_value); } } - if (isnull) { // 値取得失敗時は、オリジナルに戻す。 + if (isnull) { // if strcnt = matchval; org_newval = org_matchval; } @@ -850,7 +981,10 @@ public boolean isSameContents(AppValue app) { && this.urlencode == app.urlencode && this.resencodetype == app.resencodetype && this.fromStepNo == app.fromStepNo - && this.toStepNo == app.toStepNo) { + && this.toStepNo == app.toStepNo + && ParmGenUtil.nullableStringEquals(this.condRegex, app.condRegex) + && this.condTargetNo == app.condTargetNo + && this.condRegexTargetIsRequest == app.condRegexTargetIsRequest) { return true; } return false; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CSVParser.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CSVParser.java index d93bc7e..0a769ae 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CSVParser.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CSVParser.java @@ -22,7 +22,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -/** @author daike */ +/** @author gdgd009xcd */ public class CSVParser { static Pattern pattern = ParmGenUtil.Pattern_compile("(\"[^\"]*(?:\"\"[^\"]*)*\"|[^,\"]*)[ \t]*?,"); diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CastUtils.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CastUtils.java index 8e23077..18ae872 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CastUtils.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CastUtils.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public class CastUtils { /** diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CookieKey.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CookieKey.java index f0586b4..2c76437 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CookieKey.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CookieKey.java @@ -21,7 +21,7 @@ import java.util.Objects; -/** @author daike */ +/** @author gdgd009xcd */ public class CookieKey implements Comparable { private String domain; private String name; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CookiePathValue.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CookiePathValue.java index 3f047f9..4a695b4 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CookiePathValue.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/CookiePathValue.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public class CookiePathValue { private String path; private String value; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/DeepClone.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/DeepClone.java index 24c9a8e..02facfb 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/DeepClone.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/DeepClone.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public interface DeepClone extends Cloneable { // // diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FetchResponseVal.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FetchResponseVal.java index 8d61864..5147cb4 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FetchResponseVal.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FetchResponseVal.java @@ -38,7 +38,7 @@ // // class variable // -// FetchResponse初期化 +// FetchResponse // class FetchResponseVal implements DeepClone { @@ -117,7 +117,7 @@ public void clearDistances() { * @param toStepNo int * @return token value String */ - String getLocVal(UUID k, ParmGenTokenKey tk, int currentStepNo, int toStepNo) { + String getLocVal(UUID k, ParmGenTokenKey tk, int currentStepNo, int toStepNo, AppValue ap) { String rval = null; ParmGenTrackingParam tkparam = trackkeys.get(k); if (tkparam != null) { @@ -125,7 +125,7 @@ String getLocVal(UUID k, ParmGenTokenKey tk, int currentStepNo, int toStepNo) { // String v = locarray[r][c]; // int responseStepNo = responseStepNos[r][c]; - String v = tkparam.getValue(); + String v = tkparam.getValue(ap); int responseStepNo = tkparam.getResponseStepNo(); if (toStepNo >= 0) { @@ -178,18 +178,21 @@ private int getStepNo(UUID k) { /** set response's tracking token to TrackJarFactory */ private UUID setLocVal( - UUID k, int currentStepNo, int fromStepNo, String val, boolean overwrite) { + int currentStepNo, int fromStepNo, String val, boolean overwrite, AppValue av) { + UUID k = av.getTrackKey(); ParmGenTrackingParam tkparam = trackkeys.get(k); if (tkparam == null) { // if tkparam has No exist, then create tkparam with new unique key // key tkparam = trackkeys.create(k); } - String cachedval = tkparam.getValue(); - if (cachedval == null) { - tkparam.setValue(val); - } else if (overwrite == true) { - tkparam.setValue(val); + String cachedval = tkparam.getValue(null); + if (val != null && (!val.isEmpty() || val.isEmpty() && av.isReplaceZeroSize())) { + if (cachedval == null) { + tkparam.setValue(val); + } else if (overwrite == true) { + tkparam.setValue(val); + } } if (fromStepNo < 0 @@ -206,6 +209,35 @@ private UUID setLocVal( return k; } + /** + * update conditional parameter is valid or not + * + * @param ap + * @param b + */ + void updateCond(AppValue av, boolean b) { + UUID k = av.getTrackKey(); + ParmGenTrackingParam tkparam = trackkeys.get(k); + if (tkparam == null) { // if tkparam has No exist, then create tkparam with new unique key + // key + tkparam = trackkeys.create(k); + } + tkparam.setCondValid(b); + if (!b) { + tkparam.rollBackValue(); + } else { + tkparam.overWriteOldValue(); + } + } + + boolean getCondValid(AppValue av) { + UUID k = av.getTrackKey(); + ParmGenTrackingParam tkparam = trackkeys.get(k); + if (tkparam != null) { + return tkparam.getCondValid(); + } + return false; + } // void copyLocVal(int fr, int fc, int tr, int tc){ // if(isValid(fr,fc) && isValid(tr,tc)){ // String v = locarray[fr][fc]; @@ -223,14 +255,14 @@ void printlog(String v) { // boolean headermatch( int currentStepNo, - int fromStepNo, String url, PResponse presponse, int r, int c, boolean overwrite, - String name, AppValue av) { + int fromStepNo = av.getFromStepNo(); + String name = av.getToken(); AppValue.TokenTypeNames _tokentype = av.getTokenType(); String comments = ""; if (urlmatch(av, url)) { @@ -240,7 +272,8 @@ boolean headermatch( ParmGenTokenValue tval = tkn.getTokenValue(); if (tval != null) { // value値nullは追跡しない String matchval = tval.getValue(); - if (matchval != null && !matchval.isEmpty()) { + if (matchval + != null) { // matchval !=null or matchval.isEmpty() is acceptable. comments = "*****FETCHRESPONSE header r,c/ header: value" + r @@ -250,12 +283,7 @@ boolean headermatch( + matchval; printlog(comments); pmt.addComments(comments); - setLocVal( - av.getTrackKey(), - currentStepNo, - fromStepNo, - matchval, - overwrite); + setLocVal(currentStepNo, fromStepNo, matchval, overwrite, av); return true; } } else { @@ -281,7 +309,7 @@ boolean headermatch( try { matcher = av.getPattern_resRegex().matcher(hval); } catch (Exception e) { - printlog("matcher例外:" + e.toString()); + printlog("Exception matcher:" + e.toString()); } if (matcher.find()) { int gcnt = matcher.groupCount(); @@ -290,38 +318,32 @@ boolean headermatch( matchval = matcher.group(n + 1); } - if (matchval != null) { - if (!matchval.isEmpty()) { // value値nullは追跡しない - comments = - "*****FETCHRESPONSE header r,c/ header: value" - + r - + "," - + c - + "/" - + hval - + " => " - + matchval; - printlog(comments); - pmt.addComments(comments); - setLocVal( - av.getTrackKey(), - currentStepNo, - fromStepNo, - matchval, - overwrite); - return true; - } else { - comments = - "xxxxxIGNORED FETCHRESPONSE header r,c/ header: value" - + r - + "," - + c - + "/" - + hval - + " => null"; - printlog(comments); - pmt.addComments(comments); - } + if (matchval + != null) { // matchval != null or matchval.isEmpty() is acceptable. + comments = + "*****FETCHRESPONSE header r,c/ header: value" + + r + + "," + + c + + "/" + + hval + + " => " + + matchval; + printlog(comments); + pmt.addComments(comments); + setLocVal(currentStepNo, fromStepNo, matchval, overwrite, av); + return true; + } else { + comments = + "xxxxxIGNORED FETCHRESPONSE header r,c/ header: value" + + r + + "," + + c + + "/" + + hval + + " => null"; + printlog(comments); + pmt.addComments(comments); } } } @@ -334,18 +356,18 @@ boolean headermatch( // boolean bodymatch( int currentStepNo, - int fromStepNo, String url, PResponse presponse, int r, int c, boolean overwrite, boolean autotrack, - AppValue av, - int fcnt, - String name, - boolean _uencode) + AppValue av) throws UnsupportedEncodingException { + int fromStepNo = av.getFromStepNo(); + int fcnt = av.getResRegexPos(); + String name = av.getToken(); + boolean _uencode = av.isUrlEncode(); AppValue.TokenTypeNames _tokentype = av.getTokenType(); if (urlmatch(av, url)) { @@ -405,14 +427,10 @@ boolean bodymatch( String ONETIMEPASSWD = matchval.replaceAll(",", "%2C"); String comments = ""; - if (ONETIMEPASSWD != null && !ONETIMEPASSWD.isEmpty()) { // value値nullは追跡しない + if (ONETIMEPASSWD + != null) { // this variable !=null or isEmpty() is acceptable. - setLocVal( - av.getTrackKey(), - currentStepNo, - fromStepNo, - ONETIMEPASSWD, - overwrite); + setLocVal(currentStepNo, fromStepNo, ONETIMEPASSWD, overwrite, av); comments = "*****FETCHRESPONSE body key/r,c:" + av.getTrackKey() @@ -454,7 +472,7 @@ boolean bodymatch( ParmGenTokenValue tval = tkn.getTokenValue(); if (tval != null) { String v = tval.getValue(); - if (v != null && !v.isEmpty()) { // value null値は追跡しない。 + if (v != null) { // this variable != null or isEmpty() is acceptable. if (_uencode == true) { String venc = v; @@ -469,12 +487,7 @@ boolean bodymatch( } String ONETIMEPASSWD = v.replaceAll(",", "%2C"); - setLocVal( - av.getTrackKey(), - currentStepNo, - fromStepNo, - ONETIMEPASSWD, - overwrite); + setLocVal(currentStepNo, fromStepNo, ONETIMEPASSWD, overwrite, av); String comments = "*****FETCHRESPONSE auto track body key/r,c,p:" + av.getTrackKey() @@ -517,14 +530,14 @@ boolean bodymatch( boolean reqbodymatch( AppValue av, int currentStepNo, - int fromStepNo, String url, PRequest prequest, int r, int c, - boolean overwrite, - int fcnt, - String name) { + boolean overwrite) { + int fromStepNo = av.getFromStepNo(); + int fcnt = av.getResRegexPos(); + String name = av.getToken(); String comments = ""; if (urlmatch(av, url)) { ArrayList namelist = prequest.getBodyParams(); @@ -532,7 +545,9 @@ boolean reqbodymatch( while (it.hasNext()) { String[] nv = it.next(); if (name.equals(nv[0])) { - if (nv.length > 1 && nv[1] != null && !nv[1].isEmpty()) { // value値nullは追跡しない + if (nv.length > 1 + && nv[1] != null) { // this variable is != null or isEmpty() is + // acceptable comments = "******FETCH REQUEST body r,c: name=value:" + r @@ -544,7 +559,7 @@ boolean reqbodymatch( + nv[1]; printlog(comments); pmt.addComments(comments); - setLocVal(av.getTrackKey(), currentStepNo, fromStepNo, nv[1], overwrite); + setLocVal(currentStepNo, fromStepNo, nv[1], overwrite, av); return true; } else { comments = diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FileInfo.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FileInfo.java index ae437f6..847ebd1 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FileInfo.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FileInfo.java @@ -22,7 +22,7 @@ import java.io.File; import java.util.Optional; -/** @author daike */ +/** @author gdgd009xcd */ public class FileInfo { private String dirname; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FileReadLine.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FileReadLine.java index afedf4a..d78c9e5 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FileReadLine.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/FileReadLine.java @@ -26,7 +26,7 @@ import java.io.RandomAccessFile; import java.util.ArrayList; -/** @author daike */ +/** @author gdgd009xcd */ // // class FileReadLine // @@ -116,7 +116,7 @@ public synchronized ArrayList readColumns() { columns = new ArrayList(); } columns.clear(); - String dummy = readLine(0, 99999, null); + String dummy = readLine(0, 99999, null, null, null); if (columns.size() > 0) { return columns; } @@ -128,7 +128,7 @@ synchronized int skipLine(int l) { rewind(); columns = null; while (l-- > 0) { - String dummy = readLine(0, 1, null); + String dummy = readLine(0, 1, null, null, null); if (dummy == null) { break; } @@ -139,7 +139,8 @@ synchronized int skipLine(int l) { return current_line; } - synchronized String readLine(int _valparttype, int _pos, AppParmsIni _parent) { + synchronized String readLine( + int _valparttype, int _pos, AppParmsIni _parent, AppValue apv, ParmGenMacroTrace pmt) { if (saveseekp) { seekp = 0; current_line = 0; @@ -202,7 +203,13 @@ synchronized String readLine(int _valparttype, int _pos, AppParmsIni _parent) { line = _col; line = line.replace("\r", ""); line = line.replace("\n", ""); - if (((_valparttype & AppValue.C_NOCOUNT) == AppValue.C_NOCOUNT) + + boolean condInValid = false; + if (pmt != null && apv != null) { + condInValid = !pmt.getFetchResponseVal().getCondValid(apv) && apv.hasCond(); + } + if (condInValid + || ((_valparttype & AppValue.C_NOCOUNT) == AppValue.C_NOCOUNT) || (_parent != null && _parent.isPaused())) { // debuglog(1, " no seek forward:" + Long.toString(seekp)); } else { @@ -240,7 +247,7 @@ synchronized String readLine(int _valparttype, int _pos, AppParmsIni _parent) { } synchronized String getCurrentReadLine(int _valparttype, int _pos, AppParmsIni _parent) { - String line = readLine(_valparttype, _pos, _parent); + String line = readLine(_valparttype, _pos, _parent, null, null); return String.valueOf(this.current_line); } } diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GSONSaveObject.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GSONSaveObject.java index bc6c96e..c501b2e 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GSONSaveObject.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GSONSaveObject.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.Collection; -/** @author daike */ +/** @author gdgd009xcd */ public class GSONSaveObject { public String VERSION; public String LANG; @@ -73,6 +73,10 @@ static class AppValue_List { public int fromStepNo; public int toStepNo; public String TokenType; + public int condTargetNo; + public String condRegex; + public boolean condRegexTargetIsRequest; + public boolean replaceZeroSize; } public int CurrentRequest; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonEntry.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonEntry.java index 406d9e4..6d4b811 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonEntry.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonEntry.java @@ -21,7 +21,7 @@ import com.google.gson.JsonElement; -/** @author daike */ +/** @author gdgd009xcd */ public class GsonEntry { String key; JsonElement elem; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonIterator.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonIterator.java index f1c4b6f..d69b195 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonIterator.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonIterator.java @@ -24,7 +24,7 @@ import java.util.Map; import java.util.Set; -/** @author daike */ +/** @author gdgd009xcd */ public class GsonIterator { enum ElmType { ARRAY, diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonParser.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonParser.java index 1e19035..f3f51c9 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonParser.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonParser.java @@ -26,7 +26,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -/** @author daike */ +/** @author gdgd009xcd */ public class GsonParser { private static Logger logger4j = LogManager.getLogger(); diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonParserListener.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonParserListener.java index 500b3f6..d59a8c6 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonParserListener.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/GsonParserListener.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public interface GsonParserListener { public boolean receiver( GsonIterator git, GsonParser.EventType etype, String keyname, Object value, int level); diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/HashMapDeepCopy.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/HashMapDeepCopy.java index a9977cc..b6c7e20 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/HashMapDeepCopy.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/HashMapDeepCopy.java @@ -24,7 +24,7 @@ import java.util.HashMap; import java.util.UUID; -/** @author daike */ +/** @author gdgd009xcd */ class HashMapDeepCopy { /** diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/HeaderPattern.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/HeaderPattern.java index f5999af..a45aeaf 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/HeaderPattern.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/HeaderPattern.java @@ -22,7 +22,7 @@ import java.util.Objects; import java.util.regex.Pattern; -/** @author daike */ +/** @author gdgd009xcd */ public class HeaderPattern { private String upperheadername; private String tkname_regexformat; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceAction.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceAction.java index ca59b91..3ba8aff 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceAction.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceAction.java @@ -22,7 +22,7 @@ /** * InterfaceAction * - * @author daike + * @author gdgd009xcd */ public interface InterfaceAction { /** diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceDoAction.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceDoAction.java index 6f1a4d1..405a5d4 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceDoAction.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceDoAction.java @@ -24,7 +24,7 @@ /** * InterfaceDoAction * - * @author daike + * @author gdgd009xcd */ public interface InterfaceDoAction { /** diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceDoActionProvider.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceDoActionProvider.java index e5db4bb..0d961df 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceDoActionProvider.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceDoActionProvider.java @@ -22,7 +22,7 @@ /** * InterfaceDoActionProvider * - * @author daike + * @author gdgd009xcd */ public interface InterfaceDoActionProvider { /** diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceEndAction.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceEndAction.java index bc588c9..68e8a0d 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceEndAction.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceEndAction.java @@ -22,7 +22,7 @@ /** * InterfaceEndAction * - * @author daike + * @author gdgd009xcd */ public interface InterfaceEndAction { /** diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceLangOKNG.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceLangOKNG.java index a1a18f2..a08d44d 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceLangOKNG.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceLangOKNG.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public interface InterfaceLangOKNG { public void LangOK(); diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceParmGenRegexSaveCancelAction.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceParmGenRegexSaveCancelAction.java index 70321f7..c090647 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceParmGenRegexSaveCancelAction.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/InterfaceParmGenRegexSaveCancelAction.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public interface InterfaceParmGenRegexSaveCancelAction { public void ParmGenRegexSaveAction(StyledDocumentWithChunk styleddoc); diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ListDeepCopy.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ListDeepCopy.java index 1a9fb92..5e4608a 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ListDeepCopy.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ListDeepCopy.java @@ -24,7 +24,7 @@ import java.util.ArrayList; import java.util.List; -/** @author daike */ +/** @author gdgd009xcd */ public class ListDeepCopy { private static List listDeepCopyVClone(List src, List dest) { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/LockInstance.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/LockInstance.java index 86242f5..6e2e938 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/LockInstance.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/LockInstance.java @@ -8,7 +8,7 @@ /** * LockInstance * - * @author daike + * @author gdgd009xcd */ public class LockInstance { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/MacroBuilderUIRequestListRender.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/MacroBuilderUIRequestListRender.java index f770650..08bca6e 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/MacroBuilderUIRequestListRender.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/MacroBuilderUIRequestListRender.java @@ -26,7 +26,7 @@ import javax.swing.JList; import org.zaproxy.zap.extension.automacrobuilder.generated.MacroBuilderUI; -/** @author daike */ +/** @author gdgd009xcd */ @SuppressWarnings("serial") public class MacroBuilderUIRequestListRender extends DefaultListCellRenderer { ParmGenMacroTrace pmt; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/OneThreadProcessor.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/OneThreadProcessor.java index 39e713e..fe9bae6 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/OneThreadProcessor.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/OneThreadProcessor.java @@ -24,7 +24,7 @@ /** * OneThreadProcessor * - * @author daike + * @author gdgd009xcd */ public class OneThreadProcessor { private static org.apache.logging.log4j.Logger LOGGER4J = diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/PLog.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/PLog.java index 7194e5f..5fb845e 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/PLog.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/PLog.java @@ -33,7 +33,7 @@ * and open the template in the editor. */ -/** @author daike */ +/** @author gdgd009xcd */ // // Logger // diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGen.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGen.java index 25e687d..5291c73 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGen.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGen.java @@ -518,17 +518,7 @@ boolean FetchRequest(PRequest prequest, AppParmsIni pini, AppValue av, int r, in switch (av.getResTypeInt()) { case AppValue.V_REQTRACKBODY: return pmt.getFetchResponseVal() - .reqbodymatch( - av, - pmt.getStepNo(), - av.getFromStepNo(), - url, - prequest, - row, - col, - true, - av.getResRegexPos(), - av.getToken()); + .reqbodymatch(av, pmt.getStepNo(), url, prequest, row, col, true); default: break; } @@ -564,15 +554,7 @@ boolean ParseResponse( rflag = pmt.getFetchResponseVal() .headermatch( - pmt.getStepNo(), - av.getFromStepNo(), - url, - presponse, - row, - col, - true, - av.getToken(), - av); + pmt.getStepNo(), url, presponse, row, col, true, av); break; case AppValue.V_REQTRACKBODY: // request追跡なのでNOP. break; @@ -586,17 +568,13 @@ boolean ParseResponse( pmt.getFetchResponseVal() .bodymatch( pmt.getStepNo(), - av.getFromStepNo(), url, presponse, row, col, true, autotrack, - av, - av.getResRegexPos(), - av.getToken(), - av.isUrlEncode()); + av); } catch (UnsupportedEncodingException ex) { Logger.getLogger(ParmGen.class.getName()).log(Level.SEVERE, null, ex); } @@ -607,12 +585,29 @@ boolean ParseResponse( return rflag; } - // 何もしないコンストラクタ + // constructor for runnig macros public ParmGen(ParmGenMacroTrace _pmt) { pmt = _pmt; + if (pmt != null && parmcsv != null) { + if (pmt.initializedCachedAppValues()) { + AppParmsIni pini = null; + Iterator it = parmcsv.iterator(); + while (it.hasNext()) { + pini = it.next(); + List parmlist = pini.getAppValueReadWriteOriginal(); + Iterator pt = parmlist.iterator(); + while (pt.hasNext()) { + AppValue av = pt.next(); + if (av.isEnabled() && av.hasCond()) { + pmt.addAppValueToCache(av); + } + } + } + } + } } - // + // constructor for setting new parmcsv public ParmGen(ParmGenMacroTrace _pmt, List _parmcsv) { pmt = _pmt; if (_parmcsv != null) nullset(); @@ -733,7 +728,8 @@ public byte[] Run(String _h, int port, boolean isSSL, byte[] requestbytes) { } hasboundary = true; } - LOGGER4J.debug("***URL正規表現[" + pini.getUrl() + "]マッチパターン[" + url + "]"); + LOGGER4J.debug( + "***URL regex[" + pini.getUrl() + "] matchedvalue[" + url + "]"); if (contarray == null) { ParmGenBinUtil warray = new ParmGenBinUtil(requestbytes); @@ -776,7 +772,7 @@ public byte[] Run(String _h, int port, boolean isSSL, byte[] requestbytes) { } } } - // ここでerrorhashを評価し、setErrorする。 + // evaluate errorhash. Iterator> ic = errorhash.iterator(); boolean iserror = false; @@ -1061,36 +1057,20 @@ public PRequest RunPRequest(PRequest prequest) { } /** - * Parse Response and extract tracking tokens from it. + * Parse response and extract tracking tokens * * @param url - * @param response_bytes - * @param _pageenc + * @param prs * @return */ - public int ResponseRun(String url, byte[] response_bytes, Encode _pageenc) { + public int ResponseRun(String url, PRequestResponse prs) { int updtcnt = 0; - PResponse presponse = new PResponse(response_bytes, _pageenc); - return ResponseRun(url, presponse); - } - - /** - * Parse response and extract tracking tokens from it. - * - * @param url - * @param presponse - * @return - */ - public int ResponseRun(String url, PResponse presponse) { - - int updtcnt = 0; - - String res_content_type = presponse.getContent_Type(); - String res_content_subtype = presponse.getContent_Subtype(); - - String res_contentMimeType = res_content_type + "/" + res_content_subtype; + PRequest prequest = prs.request; + PResponse presponse = prs.response; + String req_contentMimeType = prequest.getContentMimeType(); + String res_contentMimeType = presponse.getContentMimeType(); // if content_type/subtype matches excludeMimeType regex then skip below codes.. if (!ParmVars.isMimeTypeExcluded(res_contentMimeType)) { // ### skip start @@ -1132,6 +1112,45 @@ public int ResponseRun(String url, PResponse presponse) { "ResponseRun skipped url[" + url + "] MimeType[" + res_contentMimeType + "]"); } + List condaplist = pmt.getCachedAppValues(pmt.getStepNo()); + if (condaplist != null) { + condaplist.forEach( + av -> { + if (av.isEnabled()) { + if (av.hasCond()) { + Pattern condpattern = av.getPattern_condRegex(); + boolean isRequest = av.requestIsCondRegexTarget(); + String mess = null; + if (isRequest && prequest != null) { + if (!ParmVars.isMimeTypeExcluded(req_contentMimeType)) { + mess = prequest.getMessage(); + } + } else if (!ParmVars.isMimeTypeExcluded(res_contentMimeType)) { + mess = presponse.getMessage(); + } + if (mess != null) { + Matcher matcher = condpattern.matcher(mess); + if (matcher.find()) { + pmt.getFetchResponseVal().updateCond(av, true); + LOGGER4J.debug( + "condRegex[" + + av.getCondRegex() + + "] !! MATCHED TargetNo:" + + av.getCondTargetNo()); + } else { + pmt.getFetchResponseVal().updateCond(av, false); + LOGGER4J.debug( + "condRegex[" + + av.getCondRegex() + + "] .. NO matched TargetNo:" + + av.getCondTargetNo()); + } + } + } + } + }); + } + return updtcnt; } diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenBeen.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenBeen.java index 868d7b2..ed086ae 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenBeen.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenBeen.java @@ -22,7 +22,7 @@ import java.util.logging.Level; import java.util.logging.Logger; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenBeen implements DeepClone { // primitive or final mermbers String v = null; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenCookieManager.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenCookieManager.java index bc3e70b..692f988 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenCookieManager.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenCookieManager.java @@ -30,7 +30,7 @@ import java.util.logging.Level; import java.util.logging.Logger; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenCookieManager implements DeepClone { private CookieManager manager = null; private CookieStore cookiestore = null; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenGSON.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenGSON.java index 9163ce0..a4da16e 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenGSON.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenGSON.java @@ -24,7 +24,7 @@ import java.util.Base64; import java.util.List; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenGSON implements GsonParserListener { private static org.apache.logging.log4j.Logger logger4j = org.apache.logging.log4j.LogManager.getLogger(); @@ -370,6 +370,14 @@ boolean GParse( apv.setTokenTypeName(GetString(ev, value, "")); } else if (name.toUpperCase().equals("RESENCODETYPE")) { apv.setResEncodeTypeFromString(GetString(ev, value, "")); + } else if (name.toUpperCase().equals("CONDTARGETNO")) { + apv.setCondTargetNo(GetNumber(ev, value, 0)); + } else if (name.toUpperCase().equals("CONDREGEX")) { + apv.setCondRegexURLencoded(GetString(ev, value, "")); + } else if (name.toUpperCase().equals("CONDREGEXTARGETISREQUEST")) { + apv.setRequestIsCondTegexTarget(Getboolean(ev, value, false)); + } else if (name.toUpperCase().equals("REPLACEZEROSIZE")) { + apv.setReplaceZeroSize(Getboolean(ev, value, false)); } } break; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenHeader.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenHeader.java index 6f5e7a9..0122240 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenHeader.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenHeader.java @@ -25,7 +25,7 @@ import java.util.logging.Level; import java.util.logging.Logger; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenHeader implements DeepClone { private String name; // header name private List values = diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenJSONSave.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenJSONSave.java index 6dcb80c..065fbe0 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenJSONSave.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenJSONSave.java @@ -32,7 +32,7 @@ /** * This class Used only when saving parameter settings. * - * @author daike + * @author gdgd009xcd */ public class ParmGenJSONSave { private static org.apache.logging.log4j.Logger logger4j = @@ -209,6 +209,12 @@ public void GSONsave() { AppValue_ListObj.fromStepNo = param.getFromStepNo(); AppValue_ListObj.toStepNo = param.getToStepNo(); AppValue_ListObj.TokenType = param.getTokenType().name(); + AppValue_ListObj.condTargetNo = param.getCondTargetNo(); + AppValue_ListObj.condRegex = + (escapeDelimiters(param.getCondRegex(), null) == null + ? "" + : escapeDelimiters(param.getCondRegex(), null)); + AppValue_ListObj.condRegexTargetIsRequest = param.requestIsCondRegexTarget(); AppParmsIni_ListObj.AppValue_List.add(AppValue_ListObj); } diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenMacroTrace.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenMacroTrace.java index b6f4597..5614286 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenMacroTrace.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenMacroTrace.java @@ -27,7 +27,7 @@ import org.zaproxy.zap.extension.automacrobuilder.mdepend.ClientDependent; import org.zaproxy.zap.extension.automacrobuilder.mdepend.ClientRequest; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenMacroTrace extends ClientDependent { private static org.apache.logging.log4j.Logger LOGGER4J = @@ -39,10 +39,10 @@ public class ParmGenMacroTrace extends ClientDependent { // ============== instance unique members(copy per thread) BEGIN ========== - private List rlist = null; // マクロ実行後の全リクエストレスポンス - private List originalrlist = null; // オリジナルリクエストレスポンス + private List rlist = null; // requestresponse results + private List originalrlist = null; // original requestresponse - int selected_request = 0; // 現在選択しているカレントのリクエスト + int selected_request = 0; // current selected request number private FetchResponseVal fetchResVal = null; // token cache has DeepCloneable @@ -60,38 +60,43 @@ public class ParmGenMacroTrace extends ClientDependent { PRequestResponse postmacro_RequestResponse = null; // after startPostMacro, this value has last RequestResponse. - ListIterator oit = null; // オリジナル - ListIterator cit = null; // 実行 + ListIterator oit = null; // iterator for resquestresponse results + ListIterator cit = null; // iterator for original requestresponse - boolean MBCookieUpdate = false; // ==true Cookie更新 - boolean CBInheritFromCache = false; // ==true 開始時Cookie.jarから引き継ぐ - boolean MBFinalResponse = false; // ==true 結果は最後に実行されたマクロのレスポンス - boolean MBResetToOriginal = false; // ==true オリジナルリクエストを実行。 - boolean MBreplaceCookie = false; // ==true Cookie引き継ぎ置き換え == false Cookie overwrite + boolean MBCookieUpdate = false; // == true update Cookies + boolean CBInheritFromCache = false; // == true then Cookies is updated with cache from begin. + boolean MBFinalResponse = + false; // == true then scan target request's response is updated with last request's + // response in macro request list. + boolean MBResetToOriginal = false; // == true use original requestresponse. + boolean MBreplaceCookie = false; // == true then overwrite Cookie boolean MBmonitorofprocessing = false; boolean MBreplaceTrackingParam = false; int state = PMT_POSTMACRO_NULL; // int state possible values - public static final int PMT_PREMACRO_BEGIN = 0; // 前処理マクロ実行中 - public static final int PMT_PREMACRO_END = 1; // 前処理マクロ実行中 - public static final int PMT_CURRENT_BEGIN = 2; // カレントリクエスト開始 - public static final int PMT_CURRENT_END = 3; // カレントリクエスト終了。 - public static final int PMT_POSTMACRO_BEGIN = 4; // 後処理マクロ実行中 - public static final int PMT_POSTMACRO_END = 5; // 後処理マクロ終了。 - public static final int PMT_POSTMACRO_NULL = 6; // 後処理マクロレスポンスnull + public static final int PMT_PREMACRO_BEGIN = 0; // Started Pre Macros + public static final int PMT_PREMACRO_END = 1; // Ended Pre Macro Running + public static final int PMT_CURRENT_BEGIN = 2; // Started Current Target Request + public static final int PMT_CURRENT_END = 3; // Ended Current Target Request + public static final int PMT_POSTMACRO_BEGIN = 4; // Started Post Macros + public static final int PMT_POSTMACRO_END = 5; // Ended Post Macros + public static final int PMT_POSTMACRO_NULL = 6; // Completed ALL requests or stopped. private int stepno = -1; // current running request step no. private int last_stepno = -1; // postmacro request performs until this step no. private ParmGenTWait TWaiter = null; - private int waittimer = 0; // 実行間隔(msec) + private int waittimer = 0; // wait timer (msec) public static ClientRequest clientrequest = new ClientRequest(); private Object sender = null; + private HashMap> cachedAppValues = + null; // cache of AppValues. cache is valid only when running macros. + public String state_debugprint() { String msg = "PMT_UNKNOWN"; switch (state) { @@ -144,18 +149,19 @@ public ParmGenMacroTrace getScanInstance(T sender, ParmGenMacroTraceParams p nobj.cookieMan = this.cookieMan != null ? this.cookieMan.clone() : null; // deepclone nobj.savelist = new HashMap<>(); nobj.toolbaseline = this.toolbaseline != null ? this.toolbaseline.clone() : null; - nobj.MBCookieUpdate = this.MBCookieUpdate; // ==true Cookie更新 + nobj.MBCookieUpdate = this.MBCookieUpdate; nobj.CBInheritFromCache = this.CBInheritFromCache; // ==true inherit CSRFtoken/cookie values from cache - nobj.MBFinalResponse = this.MBFinalResponse; // ==true 結果は最後に実行されたマクロのレスポンス - nobj.MBResetToOriginal = this.MBResetToOriginal; // ==true オリジナルリクエストを実行。 - nobj.MBreplaceCookie = - this.MBreplaceCookie; // ==true Cookie引き継ぎ置き換え == false Cookie overwrite + nobj.MBFinalResponse = this.MBFinalResponse; + nobj.MBResetToOriginal = this.MBResetToOriginal; + nobj.MBreplaceCookie = this.MBreplaceCookie; nobj.MBmonitorofprocessing = this.MBmonitorofprocessing; nobj.MBreplaceTrackingParam = this.MBreplaceTrackingParam; nobj.waittimer = this.waittimer; + nobj.cachedAppValues = null; + return nobj; } @@ -296,6 +302,48 @@ public int getRlistCount() { return rlist.size(); } + /** + * initialize cachedAppValueList which has null value. + * + * @return true when initialized. + */ + boolean initializedCachedAppValues() { + boolean b = false; + if (this.cachedAppValues == null) { + this.cachedAppValues = new HashMap<>(); + b = true; + } + return b; + } + + /** + * add AppValue to cache. cache is valid only when running macros. + * + * @param ap + */ + void addAppValueToCache(AppValue ap) { + if (this.cachedAppValues != null && ap != null) { + List aplist = this.cachedAppValues.get(ap.getCondTargetNo()); + if (aplist == null) { + aplist = new ArrayList<>(); + } + aplist.add(ap); + this.cachedAppValues.put(ap.getCondTargetNo(), aplist); + } + } + + /** + * get AppValue which has specified targetno cache is valid only when running macros. + * + * @return AppValue + */ + List getCachedAppValues(int targetno) { + if (this.cachedAppValues != null) { + return this.cachedAppValues.get(targetno); + } + return null; + } + /** * update original requestlist with parameter * @@ -338,7 +386,7 @@ PRequestResponse getCurrentOriginalRequest() { return getOriginalRequest(getCurrentRequestPos()); } - // 1)前処理マクロ開始 + // 1) Start Pre Macros public void startBeforePreMacro(OneThreadProcessor otp) { macroStarted(); @@ -493,7 +541,7 @@ PRequest configureRequest(PRequest preq) { return null; } - // 4)後処理マクロの開始 + // 3) start Post Macros public void startPostMacro(OneThreadProcessor otp) { state = PMT_POSTMACRO_BEGIN; postmacro_RequestResponse = null; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenMacroTraceProvider.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenMacroTraceProvider.java index 0d078a7..daf1afd 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenMacroTraceProvider.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenMacroTraceProvider.java @@ -26,7 +26,7 @@ /** * ParmGenMacroTrace Provider for ThreadManager * - * @author daike + * @author gdgd009xcd */ public class ParmGenMacroTraceProvider { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenParseURL.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenParseURL.java index 3aeafb3..cfc087b 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenParseURL.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenParseURL.java @@ -21,7 +21,7 @@ import java.util.ArrayList; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenParseURL { String protocol = ""; String domain = ""; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenReadFile.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenReadFile.java index 853c6e7..5ec8f37 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenReadFile.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenReadFile.java @@ -24,7 +24,7 @@ import java.io.FileReader; import java.io.IOException; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenReadFile { FileReader fr = null; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenRequestToken.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenRequestToken.java index 8a04b2b..4a8d2aa 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenRequestToken.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenRequestToken.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenRequestToken { private ParmGenRequestTokenKey key = null; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenRequestTokenKey.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenRequestTokenKey.java index c3f6842..d3ca050 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenRequestTokenKey.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenRequestTokenKey.java @@ -21,7 +21,7 @@ import java.util.Objects; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenRequestTokenKey { private int fcnt; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenString.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenString.java index c7123de..2e0d762 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenString.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenString.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenString { private String value; int s; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenStringDiffer.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenStringDiffer.java index 7bd2b09..1e066bf 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenStringDiffer.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenStringDiffer.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.List; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenStringDiffer { String org; String mod; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTWait.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTWait.java index 5e48a92..a583690 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTWait.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTWait.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenTWait { private long waittimer; private static org.apache.logging.log4j.Logger LOGGER4J = diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTokenKey.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTokenKey.java index d029b3a..b376494 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTokenKey.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTokenKey.java @@ -23,7 +23,7 @@ import java.util.logging.Level; import java.util.logging.Logger; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenTokenKey implements DeepClone { private AppValue.TokenTypeNames tokentype; private int fcnt; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTokenValue.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTokenValue.java index a1dc6e8..7c20a43 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTokenValue.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTokenValue.java @@ -23,7 +23,7 @@ import java.util.logging.Level; import java.util.logging.Logger; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenTokenValue implements DeepClone { private String url; // url is LOCATION header's URL "VALUE". It is Not a key value. LOCATION: // http://brah.com/xxx... diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackKeyPerThread.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackKeyPerThread.java index e41f1d9..0e500eb 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackKeyPerThread.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackKeyPerThread.java @@ -24,7 +24,7 @@ import java.util.logging.Level; import java.util.logging.Logger; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenTrackKeyPerThread implements DeepClone { private HashMap trackjar = diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackingParam.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackingParam.java index 04dd89b..0cfe0f0 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackingParam.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackingParam.java @@ -22,29 +22,43 @@ import java.util.logging.Level; import java.util.logging.Logger; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenTrackingParam implements DeepClone { private String cachevalue = null; + private String oldvalue = null; // previous cachevalue + private boolean condValid = + false; // if hasCond && !condValid then restore cachevalue from oldvalue private int responseStepNo = -1; ParmGenTrackingParam() { init(); } - public void init() { + private void init() { cachevalue = null; + oldvalue = null; responseStepNo = -1; + condValid = false; } void setValue(String _v) { + oldvalue = cachevalue; cachevalue = _v; } + void rollBackValue() { + cachevalue = oldvalue; + } + + void overWriteOldValue() { + oldvalue = cachevalue; + } + void setResponseStepNo(int _r) { responseStepNo = _r; } - public String getValue() { + public String getValue(AppValue ap) { return cachevalue; } @@ -52,6 +66,19 @@ public int getResponseStepNo() { return responseStepNo; } + /** + * set condValid variable. if hasCond && !condValid then restored cachevalue from oldvalue + * + * @param b + */ + void setCondValid(boolean b) { + condValid = b; + } + + boolean getCondValid() { + return condValid; + } + @Override public ParmGenTrackingParam clone() { try { @@ -60,6 +87,8 @@ public ParmGenTrackingParam clone() { nobj.cachevalue = this.cachevalue; nobj.responseStepNo = this.responseStepNo; + nobj.oldvalue = this.oldvalue; + nobj.condValid = this.condValid; return nobj; } catch (CloneNotSupportedException ex) { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackingToken.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackingToken.java index ebafb2f..df939c0 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackingToken.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenTrackingToken.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenTrackingToken { private ParmGenToken RToken; // Token value from HTTP Response private ParmGenRequestToken QToken; // Token value from HTTP reQuest diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenWriteFile.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenWriteFile.java index 7fdfc0c..1039af4 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenWriteFile.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmGenWriteFile.java @@ -21,7 +21,7 @@ import java.io.*; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmGenWriteFile { PrintWriter pw; String fileName; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmVars.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmVars.java index ef1cc53..b09208e 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmVars.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ParmVars.java @@ -31,7 +31,7 @@ import org.apache.logging.log4j.core.LoggerContext; import org.zaproxy.zap.extension.automacrobuilder.mdepend.ClientDependent; -/** @author daike */ +/** @author gdgd009xcd */ public class ParmVars { // constants , environment params. public static String projectdir; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/PathComparator.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/PathComparator.java index 5f45191..6ad15e4 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/PathComparator.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/PathComparator.java @@ -19,7 +19,7 @@ */ package org.zaproxy.zap.extension.automacrobuilder; -/** @author daike */ +/** @author gdgd009xcd */ class PathComparator implements java.util.Comparator { @Override public int compare(T s, T t) { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ThreadManager.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ThreadManager.java index 2607a32..f7e6b4c 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ThreadManager.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ThreadManager.java @@ -30,7 +30,7 @@ /** * ThreadManager * - * @author daike + * @author gdgd009xcd */ public class ThreadManager { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ThreadManagerProvider.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ThreadManagerProvider.java index 0290337..cc7e3d7 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ThreadManagerProvider.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/ThreadManagerProvider.java @@ -22,7 +22,7 @@ /** * ThreadManagerProvider * - * @author daike + * @author gdgd009xcd */ public class ThreadManagerProvider { private static ThreadManager tm = null; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/LangSelectDialog.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/LangSelectDialog.java index c2db53c..2135b41 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/LangSelectDialog.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/LangSelectDialog.java @@ -13,7 +13,7 @@ /** * - * @author daike + * @author gdgd009xcd */ @SuppressWarnings("serial") public class LangSelectDialog extends javax.swing.JDialog { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/MacroBuilderUI.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/MacroBuilderUI.java index 8a9e245..3486228 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/MacroBuilderUI.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/MacroBuilderUI.java @@ -31,7 +31,7 @@ /** * - * @author daike + * @author gdgd009xcd */ @SuppressWarnings("serial") public class MacroBuilderUI extends javax.swing.JPanel implements InterfaceParmGenRegexSaveCancelAction { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenAttackListDialog.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenAttackListDialog.java index 3b44f2c..d06b52c 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenAttackListDialog.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenAttackListDialog.java @@ -21,7 +21,7 @@ /** * - * @author daike + * @author gdgd009xcd */ @SuppressWarnings("serial") public class ParmGenAttackListDialog extends javax.swing.JDialog { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenNew.form b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenNew.form index b6c6a19..c971078 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenNew.form +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenNew.form @@ -4,6 +4,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -844,7 +882,7 @@ - + @@ -874,7 +912,7 @@ - + @@ -923,14 +961,14 @@ - + - + @@ -943,19 +981,23 @@ - - +
+ - + - - + + - + + + + +
@@ -1045,12 +1087,44 @@ + + + <ResourceString bundle="burp/Bundle.properties" key="trackTable.condRegex" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{sourceFileName}.{key}.text")"/> + + + + + + + <ResourceString bundle="burp/Bundle.properties" key="trackTable.condTargetNo" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{sourceFileName}.{key}.text")"/> + + + + + + + <ResourceString bundle="burp/Bundle.properties" key="trackTable.condRegexTargetIsRequest" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{sourceFileName}.{key}.text")"/> + + + + + + + <ResourceString bundle="burp/Bundle.properties" key="trackTable.replaceZeroSize" replaceFormat="java.util.ResourceBundle.getBundle("{bundleNameSlashes}").getString("{sourceFileName}.{key}.text")"/> + + + +
+ + + +
diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenNew.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenNew.java index ca0ca99..3da3d1f 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenNew.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenNew.java @@ -403,7 +403,8 @@ private void addParam(int m, String reqplace, String name, int ni, String value, ParmVars.session.get(ParmGenSession.K_RESPONSEPART), ParmVars.session.get(ParmGenSession.K_RESPONSEPOSITION), tkname, - urlencode,"*","*",ParmVars.session.get(ParmGenSession.K_TOKENTYPE) + urlencode,"*","*",ParmVars.session.get(ParmGenSession.K_TOKENTYPE), + "", -1, false, false }; }else{ String _token; @@ -424,7 +425,8 @@ private void addParam(int m, String reqplace, String name, int ni, String value, ParmVars.session.get(ni, ParmGenSession.K_RESPONSEPART), ParmVars.session.get(ni, ParmGenSession.K_RESPONSEPOSITION), tkname, - urlencode,"*","*",ParmVars.session.get(ni, ParmGenSession.K_TOKENTYPE) + urlencode,"*","*",ParmVars.session.get(ni, ParmGenSession.K_TOKENTYPE), + "", -1, false, false }; } } @@ -529,6 +531,12 @@ public void updateTableRowRegex(String regex){ int pos = current_tablecolidx; if(current_model==P_CSVMODEL){ pos = 3; + } else if (current_model == P_TRACKMODEL) { + PRequestResponse ppr = getOriginalRequestResponse(); + if (ppr != null && pos == 12) { + int mpos = ppr.getMacroPos(); + ParamTableModels[current_model].setValueAt(mpos, current_tablerowidx, 13); + } } ParamTableModels[current_model].setValueAt(regex, current_tablerowidx, pos); @@ -584,6 +592,10 @@ private void selectNumberCounterTypeCompo(AppParmsIni.NumberCounterTypes _ntype) private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); + RegexPopup = new javax.swing.JPopupMenu(); + ParamRegex = new javax.swing.JMenuItem(); + FromValueRegex = new javax.swing.JMenuItem(); + CondRegex = new javax.swing.JMenuItem(); ModelTabs = new javax.swing.JTabbedPane(); SeqNumber = new javax.swing.JPanel(); NumberRegexTest = new javax.swing.JButton(); @@ -627,7 +639,7 @@ private void initComponents() { nParamDel12 = new javax.swing.JButton(); nParamDel13 = new javax.swing.JButton(); nParamDel14 = new javax.swing.JButton(); - jButton10 = new javax.swing.JButton(); + RegexTestSelectedColumn = new javax.swing.JButton(); jScrollPane6 = new javax.swing.JScrollPane(); trackTable = new javax.swing.JTable(); jLabel9 = new javax.swing.JLabel(); @@ -662,6 +674,31 @@ private void initComponents() { SetToLabel = new javax.swing.JLabel(); SetTo = new javax.swing.JTextField(); + java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("burp/Bundle"); // NOI18N + ParamRegex.setText(bundle.getString("ParmGenNew.RegexPopup.ParamRegex.text")); // NOI18N + ParamRegex.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + ParamRegexActionPerformed(evt); + } + }); + RegexPopup.add(ParamRegex); + + FromValueRegex.setText(bundle.getString("ParmGenNew.RegexPopup.FromValueRegex.text")); // NOI18N + FromValueRegex.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + FromValueRegexActionPerformed(evt); + } + }); + RegexPopup.add(FromValueRegex); + + CondRegex.setText(bundle.getString("ParmGenNew.RegexPopup.CondRegex.text")); // NOI18N + CondRegex.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + CondRegexActionPerformed(evt); + } + }); + RegexPopup.add(CondRegex); + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle(bundle.getString("ParmGenNew.PARMGEN編集画面.text")); // NOI18N @@ -788,7 +825,6 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); buttonGroup1.add(DateSelBtn); - java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("burp/Bundle"); // NOI18N DateSelBtn.setText(bundle.getString("ParmGenNew.DateTimeTitle.text")); // NOI18N DateSelBtn.setEnabled(false); DateSelBtn.addActionListener(new java.awt.event.ActionListener() { @@ -1146,26 +1182,26 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - jButton10.setText(bundle.getString("ParmGenNew.正規表現テスト.text")); // NOI18N - jButton10.addActionListener(new java.awt.event.ActionListener() { + RegexTestSelectedColumn.setText(bundle.getString("ParmGenNew.正規表現テスト.text")); // NOI18N + RegexTestSelectedColumn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - jButton10ActionPerformed(evt); + RegexTestSelectedColumnActionPerformed(evt); } }); trackTable.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { - {null, null, null, null, null, null, null, null, null, null, null, null}, - {null, null, null, null, null, null, null, null, null, null, null, null}, - {null, null, null, null, null, null, null, null, null, null, null, null}, - {null, null, null, null, null, null, null, null, null, null, null, null} + {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null}, + {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null}, + {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null}, + {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null} }, new String [] { - "置換箇所", "置換しない", "置換正規表現", "追跡URL", "追跡正規表現", "追跡箇所", "追跡位置", "追跡NAME値", "URLencodeする", "", "", "tokentype" + "", "置換しない", "", "追跡URL", "", "", "追跡位置", "追跡NAME値", "URLencodeする", "", "", "", "", "", "", "" } ) { Class[] types = new Class [] { - java.lang.Object.class, java.lang.Boolean.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Boolean.class, java.lang.String.class, java.lang.String.class, java.lang.String.class + java.lang.Object.class, java.lang.Boolean.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Boolean.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.Boolean.class, java.lang.Boolean.class }; public Class getColumnClass(int columnIndex) { @@ -1174,6 +1210,14 @@ public Class getColumnClass(int columnIndex) { }); trackTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); trackTable.getTableHeader().setReorderingAllowed(false); + trackTable.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + trackTableMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + trackTableMouseReleased(evt); + } + }); jScrollPane6.setViewportView(trackTable); if (trackTable.getColumnModel().getColumnCount() > 0) { trackTable.getColumnModel().getColumn(0).setPreferredWidth(60); @@ -1191,6 +1235,10 @@ public Class getColumnClass(int columnIndex) { trackTable.getColumnModel().getColumn(9).setHeaderValue(bundle.getString("ParmGenNew.trackTable.title9.text")); // NOI18N trackTable.getColumnModel().getColumn(10).setHeaderValue(bundle.getString("ParmGenNew.trackTable.title10.text")); // NOI18N trackTable.getColumnModel().getColumn(11).setHeaderValue(bundle.getString("ParmGenNew.trackTable.title11.text")); // NOI18N + trackTable.getColumnModel().getColumn(12).setHeaderValue(bundle.getString("ParmGenNew.trackTable.condRegex.text")); // NOI18N + trackTable.getColumnModel().getColumn(13).setHeaderValue(bundle.getString("ParmGenNew.trackTable.condTargetNo.text")); // NOI18N + trackTable.getColumnModel().getColumn(14).setHeaderValue(bundle.getString("ParmGenNew.trackTable.condRegexTargetIsRequest.text")); // NOI18N + trackTable.getColumnModel().getColumn(15).setHeaderValue(bundle.getString("ParmGenNew.trackTable.replaceZeroSize.text")); // NOI18N } jLabel9.setText(bundle.getString("ParmGenNew.置換対象パス.text")); // NOI18N @@ -1216,7 +1264,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(trackTargetURL))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(SeqResponseLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jButton10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(RegexTestSelectedColumn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(nParamDel14, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(nParamDel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(nParamDel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -1242,7 +1290,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(nParamDel14) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jButton10))) + .addComponent(RegexTestSelectedColumn))) .addContainerGap()) ); @@ -1754,8 +1802,33 @@ private void SaveParmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS String tktypename = (String)model.getValueAt(i, 11); + String condRegex = (String)model.getValueAt(i, 12); + + int condTargetNo = -1; + try { + condTargetNo = (Integer)model.getValueAt(i, 13); + } catch (NumberFormatException e) { + } - app = new AppValue(type, nomodify, value, _resURL, _resRegex, _resPartType, _resRegexPos, _token, _trackreq, fromStepNo, toStepNo,tktypename); + boolean condRegexTargetIsRequest = Boolean.parseBoolean(model.getValueAt(i, 14).toString()); + boolean replaceZeroSize = Boolean.parseBoolean(model.getValueAt(i, 15).toString()); + app = new AppValue( + type, + nomodify, + value, + _resURL, + _resRegex, + _resPartType, + _resRegexPos, + _token, + _trackreq, + fromStepNo, + toStepNo, + tktypename, + condRegex, + condTargetNo, + condRegexTargetIsRequest, + replaceZeroSize); break; case P_RANDOMMODEL: value = (String)model.getValueAt(i, 2); @@ -1946,7 +2019,7 @@ private void nParamDel14ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F } }//GEN-LAST:event_nParamDel14ActionPerformed - private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton10ActionPerformed + private void RegexTestSelectedColumnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_RegexTestSelectedColumnActionPerformed // TODO add your handling code here: if(current_model_selected){ if(current_model!=P_TRACKMODEL){ @@ -1955,16 +2028,27 @@ private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR } int[] rowsSelected = trackTable.getSelectedRows(); int[] colsSelected = trackTable.getSelectedColumns(); + boolean showrequest = true; if (rowsSelected.length > 0){ current_tablerowidx = rowsSelected[0];current_tablecolidx = 2; if (colsSelected.length > 0){ - if(colsSelected[0]>2){ + if(colsSelected[0] > 2 && colsSelected[0] < 12){ current_tablecolidx = 4; + String _resPartType = (String)ParamTableModels[current_model].getValueAt(current_tablerowidx, 5); + int parttype = AppValue.parseValPartType(_resPartType); + if (parttype == AppValue.V_AUTOTRACKBODY) { + showrequest = false; + } else { + showrequest = true; + } + } else if (colsSelected[0] >= 12) { + current_tablecolidx = 12; + showrequest = Boolean.parseBoolean(ParamTableModels[current_model].getValueAt(current_tablerowidx, 14).toString()); } } - new ParmGenRegex(this, current_tablecolidx > 2 ? false : true).setVisible(true); + new ParmGenRegex(this, showrequest).setVisible(true); } - }//GEN-LAST:event_jButton10ActionPerformed + }//GEN-LAST:event_RegexTestSelectedColumnActionPerformed private void csvParamDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_csvParamDelActionPerformed // TODO add your handling code here: @@ -2075,6 +2159,78 @@ private void DateSelBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI selectNumberCounterTypeCompo(AppParmsIni.NumberCounterTypes.DateCount); }//GEN-LAST:event_DateSelBtnActionPerformed + private void trackTableMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_trackTableMousePressed + // TODO add your handling code here: + if(evt.isPopupTrigger()){ + RegexPopup.show(evt.getComponent(), evt.getX(), evt.getY()); + } + }//GEN-LAST:event_trackTableMousePressed + + private void trackTableMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_trackTableMouseReleased + // TODO add your handling code here: + if(evt.isPopupTrigger()){ + RegexPopup.show(evt.getComponent(), evt.getX(), evt.getY()); + } + }//GEN-LAST:event_trackTableMouseReleased + + private void CondRegexActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CondRegexActionPerformed + // TODO add your handling code here: + if(current_model_selected){ + if(current_model!=P_TRACKMODEL){ + return; + } + } + int[] rowsSelected = trackTable.getSelectedRows(); + boolean showrequest = true; + + if (rowsSelected.length > 0){ + current_tablerowidx = rowsSelected[0]; + current_tablecolidx = 12; + showrequest = Boolean.parseBoolean(ParamTableModels[current_model].getValueAt(current_tablerowidx, 14).toString()); + new ParmGenRegex(this, showrequest).setVisible(true); + } + }//GEN-LAST:event_CondRegexActionPerformed + + private void FromValueRegexActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_FromValueRegexActionPerformed + // TODO add your handling code here: + if(current_model_selected){ + if(current_model!=P_TRACKMODEL){ + return; + } + } + int[] rowsSelected = trackTable.getSelectedRows(); + int[] colsSelected = trackTable.getSelectedColumns(); + boolean showrequest = true; + if (rowsSelected.length > 0){ + current_tablerowidx = rowsSelected[0]; + current_tablecolidx = 4; + String _resPartType = (String)ParamTableModels[current_model].getValueAt(current_tablerowidx, 5); + int parttype = AppValue.parseValPartType(_resPartType); + if (parttype == AppValue.V_AUTOTRACKBODY) { + showrequest = false; + } else { + showrequest = true; + } + new ParmGenRegex(this, showrequest).setVisible(true); + } + }//GEN-LAST:event_FromValueRegexActionPerformed + + private void ParamRegexActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ParamRegexActionPerformed + // TODO add your handling code here: + if(current_model_selected){ + if(current_model!=P_TRACKMODEL){ + return; + } + } + int[] rowsSelected = trackTable.getSelectedRows(); + int[] colsSelected = trackTable.getSelectedColumns(); + boolean showrequest = true; + if (rowsSelected.length > 0){ + current_tablerowidx = rowsSelected[0];current_tablecolidx = 2; + new ParmGenRegex(this, showrequest).setVisible(true); + } + }//GEN-LAST:event_ParamRegexActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextField AddMsec; @@ -2082,7 +2238,9 @@ private void DateSelBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI private javax.swing.JTextField CSVSkipLine; private javax.swing.JCheckBox CSVrewind; private javax.swing.JButton CancelParm; + private javax.swing.JMenuItem CondRegex; private javax.swing.JRadioButton DateSelBtn; + private javax.swing.JMenuItem FromValueRegex; private javax.swing.JTabbedPane ModelTabs; private javax.swing.JLabel MsecLabel; private javax.swing.JTextField NumberInit; @@ -2090,6 +2248,9 @@ private void DateSelBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI private javax.swing.JButton NumberRegexTest; private javax.swing.JCheckBox NumberRewind; private javax.swing.JRadioButton NumberSelBtn; + private javax.swing.JMenuItem ParamRegex; + private javax.swing.JPopupMenu RegexPopup; + private javax.swing.JButton RegexTestSelectedColumn; private javax.swing.JPanel ReqPanel; private javax.swing.JTextPane RequestArea; private javax.swing.JButton RequestSelectBtn; @@ -2119,7 +2280,6 @@ private void DateSelBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI private javax.swing.JTextField csvTargetURL; private javax.swing.JButton delTamper; private javax.swing.JButton downTamper; - private javax.swing.JButton jButton10; private javax.swing.JButton jButton6; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenRegex.form b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenRegex.form index 2b95909..f9683c2 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenRegex.form +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenRegex.form @@ -60,6 +60,16 @@ + + + + + + + + + + diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenRegex.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenRegex.java index 3752fda..0897c34 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenRegex.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenRegex.java @@ -487,6 +487,7 @@ private void initComponents() { OrigUndoRedoMenu = new javax.swing.JPopupMenu(); OrigUndo = new javax.swing.JMenuItem(); OrigRedo = new javax.swing.JMenuItem(); + SelectPattern = new javax.swing.JMenuItem(); jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); RegexText = new javax.swing.JTextPane(); @@ -553,6 +554,15 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); OrigUndoRedoMenu.add(OrigRedo); + java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("burp/Bundle"); // NOI18N + SelectPattern.setText(bundle.getString("ParmGenRegex.SelectPattern.text")); // NOI18N + SelectPattern.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + SelectPatternActionPerformed(evt); + } + }); + OrigUndoRedoMenu.add(SelectPattern); + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle(bundle.getString("ParmGenRegex.正規表現テスト画面.text")); // NOI18N @@ -1042,6 +1052,15 @@ private void OrigRedoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS } }//GEN-LAST:event_OrigRedoActionPerformed + private void SelectPatternActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SelectPatternActionPerformed + // TODO add your handling code here: + String selected_value = OriginalText.getSelectedText(); + if (selected_value != null && !selected_value.isEmpty()) { + String regex = "(" + selected_value + ")"; + RegexText.setText(regex); + } + }//GEN-LAST:event_SelectPatternActionPerformed + public static class RegexSelectedTextPos { int st; int et; @@ -1078,6 +1097,7 @@ int getEndPos() { private javax.swing.JTextPane RegexText; private javax.swing.JComboBox RegexType; private javax.swing.JButton Save; + private javax.swing.JMenuItem SelectPattern; private javax.swing.JTabbedPane TextTab; private javax.swing.JTextField To; private javax.swing.JMenuItem Undo; diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenTamperOpt.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenTamperOpt.java index 16518c7..1eabf8d 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenTamperOpt.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenTamperOpt.java @@ -15,7 +15,7 @@ /** * - * @author daike + * @author gdgd009xcd */ @SuppressWarnings("serial") public class ParmGenTamperOpt extends javax.swing.JDialog implements interfaceParmGenWin { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenTokenJDialog.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenTokenJDialog.java index 65ab542..51f320d 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenTokenJDialog.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/ParmGenTokenJDialog.java @@ -17,7 +17,7 @@ /** * - * @author daike + * @author gdgd009xcd */ @SuppressWarnings("serial") public class ParmGenTokenJDialog extends javax.swing.JDialog { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/TamperProxy.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/TamperProxy.java index c6afeb2..c942bcd 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/TamperProxy.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/generated/TamperProxy.java @@ -8,7 +8,7 @@ /** * - * @author daike + * @author gdgd009xcd */ @SuppressWarnings("serial") public class TamperProxy extends javax.swing.JFrame { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientDependMessageContainer.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientDependMessageContainer.java index 241b4f0..4d4a78d 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientDependMessageContainer.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientDependMessageContainer.java @@ -28,7 +28,7 @@ import org.zaproxy.zap.extension.automacrobuilder.InterfaceClientDependantMessage; import org.zaproxy.zap.extension.automacrobuilder.ParmGenBinUtil; -/** @author daike */ +/** @author gdgd009xcd */ public class ClientDependMessageContainer implements InterfaceClientDependantMessage { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientDependent.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientDependent.java index 4538892..dd1083a 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientDependent.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientDependent.java @@ -33,7 +33,7 @@ import org.zaproxy.zap.extension.automacrobuilder.PRequestResponse; import org.zaproxy.zap.extension.automacrobuilder.UUIDGenerator; -/** @author daike */ +/** @author gdgd009xcd */ public class ClientDependent { public enum CLIENT_TYPE { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientRequest.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientRequest.java index 3942947..0651b8e 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientRequest.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/mdepend/ClientRequest.java @@ -81,7 +81,7 @@ public PRequestResponse clientRequest(ParmGenMacroTrace pmt, PRequest request) { _pageenc); String url = pqrs.request.getURL(); // parse response then extract tracking tokens - int updtcnt = pgen.ResponseRun(url, pqrs.response); + int updtcnt = pgen.ResponseRun(url, pqrs); // parse response and extract set-Cookies. pmt.parseSetCookie(pqrs); if (pqrs != null) { @@ -139,7 +139,7 @@ public void postZapCurrentResponse(ParmGenMacroTrace pmt, HttpMessage currentmes String url = prs.request.getURL(); LOGGER4J.debug("=====ResponseRun start====== status:" + prs.response.getStatus()); ParmGen pgen = new ParmGen(pmt); - int updtcnt = pgen.ResponseRun(url, prs.response); + int updtcnt = pgen.ResponseRun(url, prs); LOGGER4J.debug("=====ResponseRun end======"); pmt.parseSetCookie(prs); // save Set-Cookie values into CookieStore. pmt.endAfterCurrentRequest(prs); diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/CustomScanDialogForMacroBuilder.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/CustomScanDialogForMacroBuilder.java index 13e48e5..60fe745 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/CustomScanDialogForMacroBuilder.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/CustomScanDialogForMacroBuilder.java @@ -25,7 +25,7 @@ import org.zaproxy.zap.extension.ascan.CustomScanDialog; import org.zaproxy.zap.extension.ascan.CustomScanPanel; -/** @author daike */ +/** @author gdgd009xcd */ @SuppressWarnings("serial") public class CustomScanDialogForMacroBuilder extends org.zaproxy.zap.extension.ascan.CustomScanDialog { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/ExtensionActiveScanWrapper.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/ExtensionActiveScanWrapper.java index 23cfe00..0f2fc61 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/ExtensionActiveScanWrapper.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/ExtensionActiveScanWrapper.java @@ -28,7 +28,7 @@ import org.zaproxy.zap.model.Target; import org.zaproxy.zap.users.User; -/** @author daike */ +/** @author gdgd009xcd */ public class ExtensionActiveScanWrapper extends ExtensionActiveScan { private ScannerParam scannerParam = new ScannerParam(); diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/InterfaceStartScan.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/InterfaceStartScan.java index c47ece5..1e4fd68 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/InterfaceStartScan.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/InterfaceStartScan.java @@ -10,7 +10,7 @@ /** * Interface for Zap ActiveScan * - * @author daike + * @author gdgd009xcd */ public interface InterfaceStartScan { public ActiveScan startScan(); diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/MyWorkPanel.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/MyWorkPanel.java index 7d98850..4887f1a 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/MyWorkPanel.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/MyWorkPanel.java @@ -26,7 +26,7 @@ import org.zaproxy.zap.extension.automacrobuilder.generated.MacroBuilderUI; import org.zaproxy.zap.extension.tab.Tab; -/** @author daike */ +/** @author gdgd009xcd */ @SuppressWarnings("serial") public class MyWorkPanel extends AbstractPanel implements Tab { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/PopUpItemActiveScan.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/PopUpItemActiveScan.java index 125a352..67dcaa8 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/PopUpItemActiveScan.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/PopUpItemActiveScan.java @@ -40,7 +40,7 @@ import org.zaproxy.zap.extension.forceduser.ExtensionForcedUser; import org.zaproxy.zap.model.Target; -/** @author daike */ +/** @author gdgd009xcd */ @SuppressWarnings("serial") public class PopUpItemActiveScan extends JMenuItem { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/StartedActiveScanContainer.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/StartedActiveScanContainer.java index e2d2331..cb25f42 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/StartedActiveScanContainer.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/StartedActiveScanContainer.java @@ -16,7 +16,7 @@ /** * StartedActiveScanContainer * - * @author daike + * @author gdgd009xcd */ public class StartedActiveScanContainer { diff --git a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/generated/MyFirstJPanel.java b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/generated/MyFirstJPanel.java index c200e9b..0cbb554 100644 --- a/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/generated/MyFirstJPanel.java +++ b/addOns/automacrobuilder/src/main/java/org/zaproxy/zap/extension/automacrobuilder/zap/generated/MyFirstJPanel.java @@ -21,7 +21,7 @@ import javax.swing.JPanel; -/** @author daike */ +/** @author gdgd009xcd */ @SuppressWarnings({"unchecked", "serial"}) public class MyFirstJPanel extends JPanel { diff --git a/addOns/automacrobuilder/src/main/resources/burp/Bundle.properties b/addOns/automacrobuilder/src/main/resources/burp/Bundle.properties index b5f9c10..c93cea2 100644 --- a/addOns/automacrobuilder/src/main/resources/burp/Bundle.properties +++ b/addOns/automacrobuilder/src/main/resources/burp/Bundle.properties @@ -1,6 +1,6 @@ -ParmGenTamperOpt.PayloadPosition.toolTipText=\n\u30D1\u30BF\u30FC\u30F3\u3092\u57CB\u3081\u8FBC\u3080\u4F4D\u7F6E\u3092\u6307\u5B9A
\n\u8FFD\u52A0\uFF1A\u3000\u5024\u306E\u5F8C\u308D\u306B\u8A3A\u65AD\u30D1\u30BF\u30FC\u30F3'|'\u3092\u8FFD\u52A0\u3059\u308B\u3002\u4F8B\uFF1A\u3000name=value'|'
\n\u7F6E\u63DB\uFF1A\u3000\u5024\u3092\u8A3A\u65AD\u30D1\u30BF\u30FC\u30F3'|'\u306B\u7F6E\u304D\u63DB\u3048\u308B\u3002\u3000\u3000\u3000\u4F8B\uFF1A name='|'
\n\u633F\u5165\uFF1A \u5024\u306E\u524D\u306B\u8A3A\u65AD\u30D1\u30BF\u30FC\u30F3\u3092\u633F\u5165\u3059\u308B\u3002\u3000 \u4F8B\uFF1A\u3000name='|'value
\n +ParmGenTamperOpt.PayloadPosition.toolTipText=\n\u30d1\u30bf\u30fc\u30f3\u3092\u57cb\u3081\u8fbc\u3080\u4f4d\u7f6e\u3092\u6307\u5b9a
\n\u8ffd\u52a0\uff1a\u3000\u5024\u306e\u5f8c\u308d\u306b\u8a3a\u65ad\u30d1\u30bf\u30fc\u30f3'|'\u3092\u8ffd\u52a0\u3059\u308b\u3002\u4f8b\uff1a\u3000name=value'|'
\n\u7f6e\u63db\uff1a\u3000\u5024\u3092\u8a3a\u65ad\u30d1\u30bf\u30fc\u30f3'|'\u306b\u7f6e\u304d\u63db\u3048\u308b\u3002\u3000\u3000\u3000\u4f8b\uff1a name='|'
\n\u633f\u5165\uff1a \u5024\u306e\u524d\u306b\u8a3a\u65ad\u30d1\u30bf\u30fc\u30f3\u3092\u633f\u5165\u3059\u308b\u3002\u3000 \u4f8b\uff1a\u3000name='|'value
\n ParmGenTamperOpt.jLabel1.text=Position -ParmGenTamperOpt.jLabel3.text=Select the items that you want to track.
\n  GET(query)\u30D1\u30E9\u30E1\u30FC\u30BF\u3001POST\u30D1\u30E9\u30E1\u30FC\u30BF\u304A\u3088\u3073\u305D\u306E\u4E21\u65B9\u3092
\n  \u8A3A\u65AD\u5BFE\u8C61\u3068\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u9078\u629E\u3057\u307E\u3059\u3002
\n\u30D1\u30BF\u30FC\u30F3\u57CB\u3081\u8FBC\u307F\u4F4D\u7F6E
\n  \u8A3A\u65AD\u5BFE\u8C61\u30D1\u30E9\u30E1\u30FC\u30BF\u306EValue\u5024\u3078
\n  \u306E\u8A3A\u65AD\u30D1\u30BF\u30FC\u30F3\u306E\u57CB\u3081\u8FBC\u307F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002 +ParmGenTamperOpt.jLabel3.text=Select the items that you want to track.
\n  GET(query)\u30d1\u30e9\u30e1\u30fc\u30bf\u3001POST\u30d1\u30e9\u30e1\u30fc\u30bf\u304a\u3088\u3073\u305d\u306e\u4e21\u65b9\u3092
\n  \u8a3a\u65ad\u5bfe\u8c61\u3068\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u9078\u629e\u3057\u307e\u3059\u3002
\n\u30d1\u30bf\u30fc\u30f3\u57cb\u3081\u8fbc\u307f\u4f4d\u7f6e
\n  \u8a3a\u65ad\u5bfe\u8c61\u30d1\u30e9\u30e1\u30fc\u30bf\u306eValue\u5024\u3078
\n  \u306e\u8a3a\u65ad\u30d1\u30bf\u30fc\u30f3\u306e\u57cb\u3081\u8fbc\u307f\u4f4d\u7f6e\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 ParmGenTamperOpt.CANCEL.text=CANCEL ParmGenTamperOpt.OK.text=OK ParmGenTamperOpt.jLabel2.text=Detect parameters @@ -10,36 +10,36 @@ ParmGenAutoTrack.valuefilter.text=Display params without theres is no value ParmGenAutoTrack.RegexBtn.text=Regular Expression ParmGenAutoTrack.CancelBtn.text=Cancel ParmGenAutoTrack.NextBtn.text=Next -ParmGenAutoTrack.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=Select Request +ParmGenAutoTrack.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=Select Request ParmGenAutoTrack.title0.part.text=Type ParmGenAutoTrack.title2.order.text=Appearance Order ParmGenAutoTrack.title.text=Extract param value From Response MacroBuilderUI.SENDTO.text=SendTo MacroBuilderUI.REPLACE\ COOKIE.text=Replace Current Request's Cookie -MacroBuilderUI.UpSelected.text=\u25B2UP -MacroBuilderUI.DownSelected.text=\u25BCDOWN +MacroBuilderUI.UpSelected.text=\u25b2UP +MacroBuilderUI.DownSelected.text=\u25bcDOWN MacroBuilderUI.DELETEREQUEST.text=Delete MacroBuilderUI.deleteRequestAction.text=URL[{0}] to delete are subject to tracking cookies and tokens.
May have problems will occur , delete anyway? MacroBuilderUI.deleteConfirm.text=Delete confirmation MacroBuilderUI.StartScan.text=Reserved -MacroBuilderUI.\u8FFD\u8DE1FROM\u8A2D\u5B9A.text=Track Parameter Value From Specific Response +MacroBuilderUI.\u8ffd\u8de1FROM\u8a2d\u5b9a.text=Track Parameter Value From Specific Response MacroBuilderUI.MBtoStepNo.text=Track Parameter Set To Specific Request MacroBuilderUI.SAVE.text=Save -MacroBuilderUI.\u958B\u59CB\u6642TOKEN\u3092\u30AD\u30E3\u30C3\u30B7\u30E5\u304B\u3089\u5F15\u304D\u7D99\u3050.text=At the start, use Tracking Param(e.g. CSRF token) from the cache +MacroBuilderUI.\u958b\u59cb\u6642TOKEN\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u304b\u3089\u5f15\u304d\u7d99\u3050.text=At the start, use Tracking Param(e.g. CSRF token) from the cache MacroBuilderUI.LOAD.text=Load -MacroBuilderUI.\u30AA\u30EA\u30B8\u30CA\u30EB\u306B\u30EA\u30BB\u30C3\u30C8.text=ResetToOriginalRequest +MacroBuilderUI.\u30aa\u30ea\u30b8\u30ca\u30eb\u306b\u30ea\u30bb\u30c3\u30c8.text=ResetToOriginalRequest MacroBuilderUI.FINAL\ RESPONSE.text=Final Response -MacroBuilderUI.\u30DE\u30AF\u30ED\u30EA\u30AF\u30A8\u30B9\u30C8\u4E00\u89A7.text=Macro Requst List +MacroBuilderUI.\u30de\u30af\u30ed\u30ea\u30af\u30a8\u30b9\u30c8\u4e00\u89a7.text=Macro Requst List MacroBuilderUI.TakeOverCacheCheckBox.text=At the start to execute, use Cookies/Tracking Params from cache MacroBuilderUI.TakeOverInfoLabel.text=If the Session Cookie/Tracking Param(e.g. CSRF token) value that has expired due to timeout is taken over from the cache
and the request results in an error, please uncheck it. -MacroBuilderUI.COOKIE\u66F4\u65B0.text=Update Cookie -MacroBuilderUI.\u5B9F\u884C.text=Execute -MacroBuilderUI.\u30AF\u30EA\u30A2.text=Clear +MacroBuilderUI.COOKIE\u66f4\u65b0.text=Update Cookie +MacroBuilderUI.\u5b9f\u884c.text=Execute +MacroBuilderUI.\u30af\u30ea\u30a2.text=Clear MacroBuilderUI.CUSTOM.text=custom -MacroBuilderUI.\u8FFD\u8DE1.text=Track -MacroBuilderUI.\u30EC\u30B9\u30DD\u30F3\u30B9.text=Response -MacroBuilderUI.\u30EA\u30AF\u30A8\u30B9\u30C8.text=Request +MacroBuilderUI.\u8ffd\u8de1.text=Track +MacroBuilderUI.\u30ec\u30b9\u30dd\u30f3\u30b9.text=Response +MacroBuilderUI.\u30ea\u30af\u30a8\u30b9\u30c8.text=Request MacroBuilderUI.RESPONSESHOW.text=ShowResponse MacroBuilderUI.REQUESTEDIT.text=Edit MacroBuilderUI.ENABLEREQUEST.text=EnableRequest @@ -56,58 +56,58 @@ MacroBuilderUI.TakeOverCache.text=Initialize Cookie / Tracking Parameter value f MacroBuilderUI.TrackingParamBorder.text=Tracking Parameter(e.g. CSRF token) MacroBuilderUI.restore.text=Restore MacroBuilderUI.update.text=Save -ParmGenAddParms.\u30D1\u30E9\u30E1\u30FC\u30BF\u9078\u629E\u753B\u9762.text=Select Request parameter -ParmGenAddParms.\u7F6E\u63DB\u5BFE\u8C61\u30D1\u30B9\uFF1A\u3000\u65E2\u8A2D\u5B9A\u5024\u306B\u623B\u3059\u5834\u5408\u306F\u3001\u4E0B\u8A18\u306E\u30D7\u30EB\u30C0\u30A6\u30F3\u3067\u9078\u629E.text=Target Path(Regex)\uFF1A\u3000To restore the default, select with the pull down below -ParmGenAddParms.\u53D6\u6D88.text=Cancel -ParmGenAddParms.\u8FFD\u52A0.text=Add -ParmGenAddParms.jLabel5.text=\u25A0Target Parameter
\n(1)Select parameter to set value below
\n(2)Press Add
\nOption: [Regular Expression] Select regex of parameter value +ParmGenAddParms.\u30d1\u30e9\u30e1\u30fc\u30bf\u9078\u629e\u753b\u9762.text=Select Request parameter +ParmGenAddParms.\u7f6e\u63db\u5bfe\u8c61\u30d1\u30b9\uff1a\u3000\u65e2\u8a2d\u5b9a\u5024\u306b\u623b\u3059\u5834\u5408\u306f\u3001\u4e0b\u8a18\u306e\u30d7\u30eb\u30c0\u30a6\u30f3\u3067\u9078\u629e.text=Target Path(Regex)\uff1a\u3000To restore the default, select with the pull down below +ParmGenAddParms.\u53d6\u6d88.text=Cancel +ParmGenAddParms.\u8ffd\u52a0.text=Add +ParmGenAddParms.jLabel5.text=\u25a0Target Parameter
\n(1)Select parameter to set value below
\n(2)Press Add
\nOption: [Regular Expression] Select regex of parameter value ParmGenAddParms.jPanel1.border.text=Reqular Expression -ParmGenAddParms.comboModel.\u30C7\u30D5\u30A9\u30EB\u30C8.text=Default -ParmGenAddParms.comboModel.\u6570\u5024\u56FA\u5B9A\u9577.text=FixedNumber -ParmGenAddParms.comboModel.\u82F1\u6570\u5B57\u56FA\u5B9A\u9577.text=FixedAlphanum -ParmGenAddParms.comboModel.\u6570\u5024\u4EFB\u610F\u9577.text=AnyNumber -ParmGenAddParms.comboModel.\u82F1\u6570\u5B57\u4EFB\u610F\u9577.text=AnyAlphanum -ParmGenAddParms.comboModel.\u56FA\u5B9A\u5024.text=Specific +ParmGenAddParms.comboModel.\u30c7\u30d5\u30a9\u30eb\u30c8.text=Default +ParmGenAddParms.comboModel.\u6570\u5024\u56fa\u5b9a\u9577.text=FixedNumber +ParmGenAddParms.comboModel.\u82f1\u6570\u5b57\u56fa\u5b9a\u9577.text=FixedAlphanum +ParmGenAddParms.comboModel.\u6570\u5024\u4efb\u610f\u9577.text=AnyNumber +ParmGenAddParms.comboModel.\u82f1\u6570\u5b57\u4efb\u610f\u9577.text=AnyAlphanum +ParmGenAddParms.comboModel.\u56fa\u5b9a\u5024.text=Specific ParmGenAddParms.position.text=Position ParmGenAddParms.numbertooltip.text=... -ParmGenCSVLoader.\uFF23\uFF33\uFF36\u30D5\u30A1\u30A4\u30EB\u8AAD\u307F\u8FBC\u307F\u5931\u6557.text=Error: CSV file load failed. -ParmGenCSVLoader.CSV\u30D5\u30A1\u30A4\u30EB\u8AAD\u307F\u8FBC\u307F.text=CSV file load -ParmGenCSVLoader.CSV\u30AB\u30E9\u30E0\u9078\u629E.text=Select CSV column -ParmGenCSVLoader.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=Select Request -ParmGenCSVLoader.\u6B21\u30EC\u30B3\u30FC\u30C9\u8AAD\u307F\u8FBC\u307F.text=Next Record read -ParmGenCSVLoader.\ \u30AB\u30E9\u30E0\u3092\u4E0B\u8A18\u4E00\u89A7\u304B\u3089\u9078\u629E\u3057\u3001\u9078\u629E\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002.text= Select the column from the list below and press the select button. -ParmGenCSVLoader.\u53D6\u6D88.text=Cancel -ParmGenCSVLoader.\u9078\u629E.text=Select +ParmGenCSVLoader.\uff23\uff33\uff36\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f\u5931\u6557.text=Error: CSV file load failed. +ParmGenCSVLoader.CSV\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f.text=CSV file load +ParmGenCSVLoader.CSV\u30ab\u30e9\u30e0\u9078\u629e.text=Select CSV column +ParmGenCSVLoader.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=Select Request +ParmGenCSVLoader.\u6b21\u30ec\u30b3\u30fc\u30c9\u8aad\u307f\u8fbc\u307f.text=Next Record read +ParmGenCSVLoader.\ \u30ab\u30e9\u30e0\u3092\u4e0b\u8a18\u4e00\u89a7\u304b\u3089\u9078\u629e\u3057\u3001\u9078\u629e\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002.text= Select the column from the list below and press the select button. +ParmGenCSVLoader.\u53d6\u6d88.text=Cancel +ParmGenCSVLoader.\u9078\u629e.text=Select ParmGenCSVLoader.columntitle.text=column position(0start) ParmGenCSVLoader.columnvalue.text=value ParmGenCSVLoader.tooltip.text=\nselect column position by number, then press OK button -ParmGenNew.\u30EC\u30B9\u30DD\u30F3\u30B9.text=Response -ParmGenNew.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=Select Request -ParmGenNew.\u30EC\u30B9\u30DD\u30F3\u30B9\u9078\u629E.text=Select Response -ParmGenNew.\u30EA\u30AF\u30A8\u30B9\u30C8/\u30EC\u30B9\u30DD\u30F3\u30B9\u9078\u629E\u3059\u308B.text=Select Request/Response -ParmGenNew.\u53D6\u6D88.text=Cancel -ParmGenNew.\u4FDD\u5B58.text=Save -ParmGenNew.\u30D1\u30BF\u30FC\u30F3.text=Patterns -ParmGenNew.\u7DE8\u96C6.text=Edit -ParmGenNew.\u25BC.text=\u25BC -ParmGenNew.\u25B2.text=\u25B2 -ParmGenNew.\u5BFE\u8C61\u30D1\u30B9.text=Target Path(Regex) -ParmGenNew.\u30AB\u30A6\u30F3\u30BF\u3092\u521D\u671F\u5024\u3067\u521D\u671F\u5316\u3059\u308B\u969B\u306F\u3001\u30C1\u30A7\u30C3\u30AF.text=To initialize the counter with the initial value, select it -ParmGenNew.CSV\u30D5\u30A1\u30A4\u30EB\u9078\u629E.text=Select CSV file -ParmGenNew.\u30AB\u30A6\u30F3\u30BF\u3092\u521D\u671F\u5024\u3067\u521D\u671F\u5316\u3059\u308B\u5834\u5408\u306F\u3001\u30C1\u30A7\u30C3\u30AF.text=To initialize the counter with the initial value, select it -ParmGenNew.\u30AB\u30A6\u30F3\u30BF\u3092\u521D\u671F\u5316\u3059\u308B.text=initialize the counter with the initial value -ParmGenNew.\u6700\u592710\u30B1\u30BF\u307E\u3067.text=Up to 10 digits maximum +ParmGenNew.\u30ec\u30b9\u30dd\u30f3\u30b9.text=Response +ParmGenNew.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=Select Request +ParmGenNew.\u30ec\u30b9\u30dd\u30f3\u30b9\u9078\u629e.text=Select Response +ParmGenNew.\u30ea\u30af\u30a8\u30b9\u30c8/\u30ec\u30b9\u30dd\u30f3\u30b9\u9078\u629e\u3059\u308b.text=Select Request/Response +ParmGenNew.\u53d6\u6d88.text=Cancel +ParmGenNew.\u4fdd\u5b58.text=Save +ParmGenNew.\u30d1\u30bf\u30fc\u30f3.text=Patterns +ParmGenNew.\u7de8\u96c6.text=Edit +ParmGenNew.\u25bc.text=\u25bc +ParmGenNew.\u25b2.text=\u25b2 +ParmGenNew.\u5bfe\u8c61\u30d1\u30b9.text=Target Path(Regex) +ParmGenNew.\u30ab\u30a6\u30f3\u30bf\u3092\u521d\u671f\u5024\u3067\u521d\u671f\u5316\u3059\u308b\u969b\u306f\u3001\u30c1\u30a7\u30c3\u30af.text=To initialize the counter with the initial value, select it +ParmGenNew.CSV\u30d5\u30a1\u30a4\u30eb\u9078\u629e.text=Select CSV file +ParmGenNew.\u30ab\u30a6\u30f3\u30bf\u3092\u521d\u671f\u5024\u3067\u521d\u671f\u5316\u3059\u308b\u5834\u5408\u306f\u3001\u30c1\u30a7\u30c3\u30af.text=To initialize the counter with the initial value, select it +ParmGenNew.\u30ab\u30a6\u30f3\u30bf\u3092\u521d\u671f\u5316\u3059\u308b.text=initialize the counter with the initial value +ParmGenNew.\u6700\u592710\u30b1\u30bf\u307e\u3067.text=Up to 10 digits maximum ParmGenNew.\u6841\u6570.text=Number of digits -ParmGenNew.\u6700\u59272147483647\u307E\u3067.text=Up to 2147483647 -ParmGenNew.\u521D\u671F\u5024.text=Initial value -ParmGenNew.\u7F6E\u63DB\u5BFE\u8C61\u30D1\u30B9.text=Target Path(Regex) -ParmGenNew.\u8FFD\u52A0.text=Add -ParmGenNew.\u25BCDOWN.text=\u25BCDOWN -ParmGenNew.\u25B2UP\ \ .text=\u25B2UP -ParmGenNew.\u524A\u9664.text=Delete -ParmGenNew.\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8.text=Test Regex -ParmGenNew.PARMGEN\u7DE8\u96C6\u753B\u9762.text=Parameter Edit -ParmGenNew.\u203B\u8FFD\u8DE1\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u767B\u9332\u65B9\u6CD5
\u8FFD\u8DE1\u3059\u308B\u5024\u3092\u9078\u629E\u3057\u3001\u8FFD\u52A0\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002.text= +ParmGenNew.\u6700\u59272147483647\u307e\u3067.text=Up to 2147483647 +ParmGenNew.\u521d\u671f\u5024.text=Initial value +ParmGenNew.\u7f6e\u63db\u5bfe\u8c61\u30d1\u30b9.text=Target Path(Regex) +ParmGenNew.\u8ffd\u52a0.text=Add +ParmGenNew.\u25bcDOWN.text=\u25bcDOWN +ParmGenNew.\u25b2UP\ \ .text=\u25b2UP +ParmGenNew.\u524a\u9664.text=Delete +ParmGenNew.\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8.text=Test Regex +ParmGenNew.PARMGEN\u7de8\u96c6\u753b\u9762.text=Parameter Edit +ParmGenNew.\u203b\u8ffd\u8de1\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u767b\u9332\u65b9\u6cd5
\u8ffd\u8de1\u3059\u308b\u5024\u3092\u9078\u629e\u3057\u3001\u8ffd\u52a0\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002.text= ParmGenNew.ReqPanel.TabConstraints.tabTitle.text=Request ParmGenNew.ResPanel.TabConstraints.tabTitle.text=Response ParmGenNew.SeqNumber.TabConstrains.tabTitle.text=Number @@ -116,62 +116,69 @@ ParmGenNew.SeqCSV.TabConstraints.tabTitle.text=CSV ParmGenNew.jPanel2.border.title.text=Initial number ParmGenNew.nParamTable.title0.text=Part ParmGenNew.nParamTable.title1.text=NOP -ParmGenNew.nParamTable.title2.text=ParamValue(Regex) +ParmGenNew.nParamTable.title2.text=RequestParam(Regex) ParmGenNew.nParamTable.title3.text=Increment ParmGenNew.jPanel1.title.text=Skip n of records ParmGenNew.csvParamTable.title0.text=Part ParmGenNew.csvParamTable.title1.text=NOP ParmGenNew.csvParamTable.title2.text=CSV column -ParmGenNew.csvParamTable.title3.text=ParamValue(Regex) +ParmGenNew.csvParamTable.title3.text=RequestParam(Regex) ParmGenNew.csvParamTable.title4.text=Increment ParmGenNew.trackTable.title0.text=Part ParmGenNew.trackTable.title1.text=NOP -ParmGenNew.trackTable.title2.text=Param(Regex) -ParmGenNew.trackTable.title3.text=FromURL(Regex) -ParmGenNew.trackTable.title4.text=FromValue(Regex) -ParmGenNew.trackTable.title5.text=FromPart -ParmGenNew.trackTable.title6.text=FromPosition -ParmGenNew.trackTable.title7.text=FromName +ParmGenNew.trackTable.title2.text=RequestParam(Regex) +ParmGenNew.trackTable.title3.text=TrackFromURL(Regex) +ParmGenNew.trackTable.title4.text=TrackValue(Regex) +ParmGenNew.trackTable.title5.text=TrackFromPart +ParmGenNew.trackTable.title6.text=TrackFromPosition +ParmGenNew.trackTable.title7.text=TrackParamName ParmGenNew.trackTable.title8.text=URLencoded ParmGenNew.trackTable.title9.text=FromNo ParmGenNew.trackTable.title10.text=ToNo ParmGenNew.trackTable.title11.text=tokentype +ParmGenNew.trackTable.condRegex.text=ValidCondRegex +ParmGenNew.trackTable.condTargetNo.text=CondTargetNo +ParmGenNew.trackTable.condRegexTargetIsRequest.text=CondRequest +ParmGenNew.trackTable.replaceZeroSize.text=Replace0size ParmGenNew.TrackFromLabel.text=FromNo ParmGenNew.SetToLabel.text=ToNo ParmGenNew.NumberTitle.text=Numeric ParmGenNew.DateTimeTitle.text=Date -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u304C\u4E0D\u6B63.text=Invalid regular expression\n -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u306B\u30B0\u30EB\u30FC\u30D7\u6307\u5B9A()\u304C\u3042\u308A\u307E\u305B\u3093\u3002()\u3067\u7F6E\u63DB\u3059\u308B\u90E8\u5206\u3092\u56F2\u3093\u3067\u304F\u3060\u3055\u3044\u3002.text=Regular expression has no capturing group syntax"()".
\nEnclose param value in parentheses -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u306B\u30B0\u30EB\u30FC\u30D7\u6307\u5B9A\u304C\u8907\u6570\u3042\u308A\u307E\u3059\u3002.text=There are multiple caturing group syntax"()".
\nOnly one group syntax allowed. -ParmGenRegex.\u56FA\u5B9A.text=Fixed -ParmGenRegex.0\u4EE5\u4E0A.text=0 or more -ParmGenRegex.1\u4EE5\u4E0A.text=1 or more -ParmGenRegex.\u7BC4\u56F2.text=range -ParmGenRegex.\u4EE5\u4E0B.text=less than -ParmGenRegex.\u4EE5\u4E0A.text=more -ParmGenRegex.\u6700\u5C0F\u30DE\u30C3\u30C1.text=lazy -ParmGenRegex.\u6539\u884C\u542B\u3080\u4EFB\u610F.text=any|CR|LF -ParmGenRegex.\u4EFB\u610F(.*).text=any(.*) -ParmGenRegex.\u5168\u89D2(%NN).text=%nn -ParmGenRegex.\u82F1\u6570\u5B57.text=Alphanum +ParmGenNew.RegexPopup.ParamRegex.text=RequestParam:Regex of the request parameter for embedding TrackValue to. +ParmGenNew.RegexPopup.FromValueRegex.text=TrackValue: Regex of the tracking value to extract. +ParmGenNew.RegexPopup.CondRegex.text=ValidCondRegex: Regex for detecting succeeded result. +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u304c\u4e0d\u6b63.text=Invalid regular expression\n +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u306b\u30b0\u30eb\u30fc\u30d7\u6307\u5b9a()\u304c\u3042\u308a\u307e\u305b\u3093\u3002()\u3067\u7f6e\u63db\u3059\u308b\u90e8\u5206\u3092\u56f2\u3093\u3067\u304f\u3060\u3055\u3044\u3002.text=Regular expression has no capturing group syntax"()".
\nEnclose param value in parentheses +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u306b\u30b0\u30eb\u30fc\u30d7\u6307\u5b9a\u304c\u8907\u6570\u3042\u308a\u307e\u3059\u3002.text=There are multiple caturing group syntax"()".
\nOnly one group syntax allowed. +ParmGenRegex.\u56fa\u5b9a.text=Fixed +ParmGenRegex.0\u4ee5\u4e0a.text=0 or more +ParmGenRegex.1\u4ee5\u4e0a.text=1 or more +ParmGenRegex.\u7bc4\u56f2.text=range +ParmGenRegex.\u4ee5\u4e0b.text=less than +ParmGenRegex.\u4ee5\u4e0a.text=more +ParmGenRegex.\u6700\u5c0f\u30de\u30c3\u30c1.text=lazy +ParmGenRegex.\u6539\u884c\u542b\u3080\u4efb\u610f.text=any|CR|LF +ParmGenRegex.\u4efb\u610f(.*).text=any(.*) +ParmGenRegex.\u5168\u89d2(%NN).text=%nn +ParmGenRegex.\u82f1\u6570\u5b57.text=Alphanum ParmGenRegex.\u6570\u5024.text=number -ParmGenRegex.\u82F1\u5927\u5C0F\u6587\u5B57\u533A\u5225\u3057\u306A\u3044.text=Non-casesense alphabet +ParmGenRegex.\u82f1\u5927\u5c0f\u6587\u5b57\u533a\u5225\u3057\u306a\u3044.text=Non-casesense alphabet ParmGenRegex.MULTILINE.text=MULTILINE -ParmGenRegex.\u30C6\u30B9\u30C8.text=Test -ParmGenRegex.\u53D6\u6D88.text=Cancel -ParmGenRegex.\u4FDD\u5B58.text=Save -ParmGenRegex.\u8FFD\u52A0.text=Add -ParmGenRegex.\uFF5E.text=~ +ParmGenRegex.\u30c6\u30b9\u30c8.text=Test +ParmGenRegex.\u53d6\u6d88.text=Cancel +ParmGenRegex.\u4fdd\u5b58.text=Save +ParmGenRegex.\u8ffd\u52a0.text=Add +ParmGenRegex.\uff5e.text=~ ParmGenRegex.\u6841\u6570.text=num of digits -ParmGenRegex.\u30AA\u30EA\u30B8\u30CA\u30EB.text=Original -ParmGenRegex.\u6B63\u898F\u8868\u73FE.text=Regex -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8\u753B\u9762.text=MessageEditor/RegexTextor +ParmGenRegex.\u30aa\u30ea\u30b8\u30ca\u30eb.text=Original +ParmGenRegex.\u6b63\u898f\u8868\u73fe.text=Regex +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8\u753b\u9762.text=MessageEditor/RegexEditor ParmGenRegex.REDO.text=Redo ParmGenRegex.UNDO.text=Undo -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002.text=Regular expressions did not match -ParmGenRegex.\u691C\u7D22\u7D50\u679C.text=Search Results -ParmGenRegex.\u7B87\u6240\u4E00\u81F4\u3057\u307E\u3057\u305F\u3002.text=Regex matched pattens found. -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u30A8\u30E9\u30FC.text=Regex error +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002.text=Regular expressions did not match +ParmGenRegex.\u691c\u7d22\u7d50\u679c.text=Search Results +ParmGenRegex.\u7b87\u6240\u4e00\u81f4\u3057\u307e\u3057\u305f\u3002.text=Regex matched pattens found. +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u30a8\u30e9\u30fc.text=Regex error ParmGenRegex.comboModel_regextype_number.text=number ParmGenRegex.comboModel_regextype_number_alnum.text=Alphanum ParmGenRegex.comboModel_regextype_number_percent.text=%nn @@ -181,32 +188,33 @@ ParmGenRegex.comboModel_regextype_number_whitespc.text=whitespc ParmGenRegex.comboModel_regextype_number_jsonstr.text=JSON:"string" ParmGenRegex.comboModel_regextype_number_jsonnum.text=JSON:123 ParmGenRegex.comboModel_columnpolicy_fixed.text=Fixed -ParmGenRegex.comboModel_columnpolicy_\u4EE5\u4E0A\uFF08\u6700\u5C0F\u30DE\u30C3\u30C1\uFF09.text=more\uFF08lazy\uFF09 -ParmGenRegex.comboModel_columnpolicy_\u4EE5\u4E0A\uFF08\u6700\u5927\u30DE\u30C3\u30C1\uFF09.text=more\uFF08greedy\uFF09 -ParmGenRegex.comboModel_columnpolicy_\u4EE5\u4E0B.text=less than -ParmGenRegex.comboModel_columnpolicy_\u7BC4\u56F2.text=range -ParmGenRegex.comboModel_columnpolicy_1\u4EE5\u4E0A\uFF08\u6700\u5C0F\u30DE\u30C3\u30C1\uFF09.text=1 or more(lazy) -ParmGenRegex.comboModel_columnpolicy_1\u4EE5\u4E0A\uFF08\u6700\u5927\u30DE\u30C3\u30C1\uFF09.text=1 or more(greedy) -ParmGenRegex.comboModel_columnpolicy_0\u4EE5\u4E0A\uFF08\u6700\u5C0F\u30DE\u30C3\u30C1\uFF09.text=0 or more(lazy) -ParmGenRegex.comboModel_columnpolicy_0\u4EE5\u4E0A\uFF08\u6700\u5927\u30DE\u30C3\u30C1\uFF09.text=0 or more(greedy) +ParmGenRegex.comboModel_columnpolicy_\u4ee5\u4e0a\uff08\u6700\u5c0f\u30de\u30c3\u30c1\uff09.text=more\uff08lazy\uff09 +ParmGenRegex.comboModel_columnpolicy_\u4ee5\u4e0a\uff08\u6700\u5927\u30de\u30c3\u30c1\uff09.text=more\uff08greedy\uff09 +ParmGenRegex.comboModel_columnpolicy_\u4ee5\u4e0b.text=less than +ParmGenRegex.comboModel_columnpolicy_\u7bc4\u56f2.text=range +ParmGenRegex.comboModel_columnpolicy_1\u4ee5\u4e0a\uff08\u6700\u5c0f\u30de\u30c3\u30c1\uff09.text=1 or more(lazy) +ParmGenRegex.comboModel_columnpolicy_1\u4ee5\u4e0a\uff08\u6700\u5927\u30de\u30c3\u30c1\uff09.text=1 or more(greedy) +ParmGenRegex.comboModel_columnpolicy_0\u4ee5\u4e0a\uff08\u6700\u5c0f\u30de\u30c3\u30c1\uff09.text=0 or more(lazy) +ParmGenRegex.comboModel_columnpolicy_0\u4ee5\u4e0a\uff08\u6700\u5927\u30de\u30c3\u30c1\uff09.text=0 or more(greedy) ParmGenRegex.insCR.text =Insert CR -ParmGenTokenJDialog.\u8FFD\u8DE1\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002.text=Check the Parameters you want to track. +ParmGenRegex.SelectPattern.text=Update Regex with selected text. +ParmGenTokenJDialog.\u8ffd\u8de1\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002.text=Check the Parameters you want to track. ParmGenTokenJDialog.title1.text=Type ParmGenTokenJDialog.title3.text=Appearance order -ParmGenTop.PARMGEN\u30C8\u30C3\u30D7\u753B\u9762.text=Custom Parameter Config -ParmGenTop.\u30ED\u30FC\u30C9.text=Load -ParmGenTop.\u6CE8\u610F\uFF1A\u51E6\u7406\u5B9F\u884C\u524D\u306B\u3001\u3053\u306E\u753B\u9762\u306F\u4FDD\u5B58\u307E\u305F\u306F\u9589\u3058\u308B\u30DC\u30BF\u30F3\u3067\u9589\u3058\u3066\u304F\u3060\u3055\u3044\u3002.text=Note\uFF1APlease close this screen with the save or close button
\nbefore starting tool. +ParmGenTop.PARMGEN\u30c8\u30c3\u30d7\u753b\u9762.text=Custom Parameter Config +ParmGenTop.\u30ed\u30fc\u30c9.text=Load +ParmGenTop.\u6ce8\u610f\uff1a\u51e6\u7406\u5b9f\u884c\u524d\u306b\u3001\u3053\u306e\u753b\u9762\u306f\u4fdd\u5b58\u307e\u305f\u306f\u9589\u3058\u308b\u30dc\u30bf\u30f3\u3067\u9589\u3058\u3066\u304f\u3060\u3055\u3044\u3002.text=Note\uff1aPlease close this screen with the save or close button
\nbefore starting tool. ParmGenTop.REPEATER.text=repeater ParmGenTop.SCANNER.text=scanner ParmGenTop.INTRUDER.text=intruder ParmGenTop.PROXY.text=Proxy -ParmGenTop.\u30ED\u30B0\u30D5\u30A1\u30A4\u30EB\u51FA\u529B.text=Log -ParmGenTop.\u9589\u3058\u308B.text=Close -ParmGenTop.\u4FDD\u5B58.text=Save -ParmGenTop.\u524A\u9664.text=Delete -ParmGenTop.\u4FEE\u6B63.text=Edit -ParmGenTop.\u65B0\u898F.text=New -ParmGenTop.\u6587\u5B57\u30B3\u30FC\u30C9.text=Lang +ParmGenTop.\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u51fa\u529b.text=Log +ParmGenTop.\u9589\u3058\u308b.text=Close +ParmGenTop.\u4fdd\u5b58.text=Save +ParmGenTop.\u524a\u9664.text=Delete +ParmGenTop.\u4fee\u6b63.text=Edit +ParmGenTop.\u65b0\u898f.text=New +ParmGenTop.\u6587\u5b57\u30b3\u30fc\u30c9.text=Lang ParmGenTop.title0.text=Stop ParmGenTop.title1.text=Target Path(Regex) ParmGenTop.title2.text=Initial value/CSV file @@ -215,39 +223,52 @@ ParmGenTop.title4.text=function ParmGenTop.title5.text=Pattern List ParmGenTop.title6.text=Current Value ParmGenTop.typeoftool.text=target scope -ResponseTracker.\u30EC\u30B9\u30DD\u30F3\u30B9\u8FFD\u8DE1.text=Extract the Parameter value with regular expression -ResponseTracker.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=Select Request -ResponseTracker.\u56FA\u5B9A\u9577.text=FixedLength -ResponseTracker.\u30EC\u30B9\u30DD\u30F3\u30B9.text=Response -ResponseTracker.\u30AD\u30E3\u30F3\u30BB\u30EB.text=Cancel -ResponseTracker.3)\u6B21\u3078.text=3)Next -ResponseTracker.1)\u5024\u9078\u629E.text=1)Select Value -ResponseTracker.\uFF35\uFF32\uFF2C.text=URL -ResponseTracker.\ 1)\u8868\u793A\u3055\u308C\u305F\u30EC\u30B9\u30DD\u30F3\u30B9\u306E\u8FFD\u8DE1\u3059\u308B\u5024\u3092\u30DE\u30A6\u30B9\u3067\u9078\u629E\u3057\u3001\u5024\u9078\u629E\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002
\ 2)\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8\u30DC\u30BF\u30F3\u3067\u3001\u5024\u304C\u9078\u629E\u3055\u308C\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3059\u308B\u3002
\ 3)\u6B21\u3078\u30DC\u30BF\u30F3\u3067\u3001\u30EA\u30AF\u30A8\u30B9\u30C8\u8A2D\u5B9A\u753B\u9762\u3078\u3002.text=\ 1)Select the tracking value in the response with the mouse and press the [Select Value] button.
\ 2)Make sure the value is selected with the [Regex Test] button
\ 3)Click[Next] -ResponseTracker.2)\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8.text=2)Regex Test +ResponseTracker.\u30ec\u30b9\u30dd\u30f3\u30b9\u8ffd\u8de1.text=Extract the Parameter value with regular expression +ResponseTracker.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=Select Request +ResponseTracker.\u56fa\u5b9a\u9577.text=FixedLength +ResponseTracker.\u30ec\u30b9\u30dd\u30f3\u30b9.text=Response +ResponseTracker.\u30ad\u30e3\u30f3\u30bb\u30eb.text=Cancel +ResponseTracker.3)\u6b21\u3078.text=3)Next +ResponseTracker.1)\u5024\u9078\u629e.text=1)Select Value +ResponseTracker.\uff35\uff32\uff2c.text=URL +ResponseTracker.\ 1)\u8868\u793a\u3055\u308c\u305f\u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u8ffd\u8de1\u3059\u308b\u5024\u3092\u30de\u30a6\u30b9\u3067\u9078\u629e\u3057\u3001\u5024\u9078\u629e\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002
\ 2)\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8\u30dc\u30bf\u30f3\u3067\u3001\u5024\u304c\u9078\u629e\u3055\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002
\ 3)\u6b21\u3078\u30dc\u30bf\u30f3\u3067\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u8a2d\u5b9a\u753b\u9762\u3078\u3002.text=\ 1)Select the tracking value in the response with the mouse and press the [Select Value] button.
\ 2)Make sure the value is selected with the [Regex Test] button
\ 3)Click[Next] +ResponseTracker.2)\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8.text=2)Regex Test SelectRequest.RESPONSE.text=response SelectRequest.REQUEST.text=request -SelectRequest.\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u4E0B\u8A18\u4E00\u89A7\u304B\u3089\u9078\u629E\u3057\u3001\uFF2F\uFF2B\u30DC\u30BF\u30F3\u3067\u9078\u629E\u3002.text=Select the request from the list below and press OK button -SelectRequest.\u53D6\u6D88.text=Cancel +SelectRequest.\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u4e0b\u8a18\u4e00\u89a7\u304b\u3089\u9078\u629e\u3057\u3001\uff2f\uff2b\u30dc\u30bf\u30f3\u3067\u9078\u629e\u3002.text=Select the request from the list below and press OK button +SelectRequest.\u53d6\u6d88.text=Cancel SelectRequest.OK.text=OK -SelectRequest.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=Select Request +SelectRequest.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=Select Request SelectRequest.STATUS.text=Status SelectRequest.URL.text=URL SelectRequest.METHOD.text=Method -ParmFileFilter.PARMGEN\u8A2D\u5B9A.text=MacroBuilderJSON +ParmFileFilter.PARMGEN\u8a2d\u5b9a.text=MacroBuilderJSON ParmGen.TAMPERPROXY.text=TamperProxy -ParmGen.\u8FFD\u8DE1.text=Tracking -ParmGen.\u4E71\u6570.text=Random -ParmGen.CSV\u30D5\u30A1\u30A4\u30EB\u6607\u9806.text=CSV File List +ParmGen.\u8ffd\u8de1.text=Tracking +ParmGen.\u4e71\u6570.text=Random +ParmGen.CSV\u30d5\u30a1\u30a4\u30eb\u6607\u9806.text=CSV File List ParmGen.\u6570\u5024\u6607\u9806.text=Count number ParmGen.parameter_regex_err2.text=ERROR*Target Param Regex[{0}]\n [{1}={2}] -> Tracking Failed ParmGen.parameter_regex_err1.text=ERROR*Target Param Regex[{0}]\n [{1}={2}] -> Tracking Failed ParmGen.parameter_regex_msg1.text=******Target Param Regex[{0}]\n Value[{1}] -> [{2}={3}] ParmGen.parameter_regex_msg2.text=******Target Param Regex[{0}]\n Value[{1}] -> [{2}={3}] -LangSelectDialog.\u8868\u793A\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002.text=Select character set of the HTTP message. -TakeOverCache=\u958B\u59CB\u6642\u306B\u30AD\u30E3\u30C3\u30B7\u30E5\u304B\u3089Cookie /\u30C8\u30FC\u30AF\u30F3\u5024\u3092\u5F15\u304D\u7D99\u3050 -TakeOverInfoLabel=\u203B\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u7121\u52B9\u3068\u306A\u3063\u305F\u30BB\u30C3\u30B7\u30E7\u30F3Cookie\u5024\u306A\u3069\u3092\u30AD\u30E3\u30C3\u30B7\u30E5\u304B\u3089\u5F15\u304D\u7D99\u3044\u3067\u3057\u307E\u3044\u3001
\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u30A8\u30E9\u30FC\u3068\u306A\u308B\u5834\u5408\u306F\u30C1\u30A7\u30C3\u30AF\u3092\u306F\u305A\u3057\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002 +LangSelectDialog.\u8868\u793a\u8a00\u8a9e\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002.text=Select character set of the HTTP message. +TakeOverCache=\u958b\u59cb\u6642\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u304b\u3089Cookie /\u30c8\u30fc\u30af\u30f3\u5024\u3092\u5f15\u304d\u7d99\u3050 +TakeOverInfoLabel=\u203b\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3057\u7121\u52b9\u3068\u306a\u3063\u305f\u30bb\u30c3\u30b7\u30e7\u30f3Cookie\u5024\u306a\u3069\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u304b\u3089\u5f15\u304d\u7d99\u3044\u3067\u3057\u307e\u3044\u3001
\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u30a8\u30e9\u30fc\u3068\u306a\u308b\u5834\u5408\u306f\u30c1\u30a7\u30c3\u30af\u3092\u306f\u305a\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002 TrackingParamBorder=Tracking Params(e.g. CSRF token) restore=restore update=update +trackTable.title0= +trackTable.title11= +trackTable.condRegex= +trackTable.condTargetNo= +trackTable.condRegexTargetIsRequest= +trackTable.title5= +trackTable.replaceZeroSize= +trackTable.title2= +trackTable.title4= +RegexPopup.ParamRegex=jMenuItem1 +RegexPopup.FromValueRegex=jMenuItem1 +RegexPopup.CondRegex=jMenuItem1 +SelectPattern=Redo diff --git a/addOns/automacrobuilder/src/main/resources/burp/Bundle_ja_JP.properties b/addOns/automacrobuilder/src/main/resources/burp/Bundle_ja_JP.properties index 58f7240..4d9e37c 100644 --- a/addOns/automacrobuilder/src/main/resources/burp/Bundle_ja_JP.properties +++ b/addOns/automacrobuilder/src/main/resources/burp/Bundle_ja_JP.properties @@ -1,247 +1,255 @@ -ParmGenTamperOpt.PayloadPosition.toolTipText=\n\u30D1\u30BF\u30FC\u30F3\u3092\u57CB\u3081\u8FBC\u3080\u4F4D\u7F6E\u3092\u6307\u5B9A
\n\u8FFD\u52A0\uFF1A\u3000\u5024\u306E\u5F8C\u308D\u306B\u8A3A\u65AD\u30D1\u30BF\u30FC\u30F3'|'\u3092\u8FFD\u52A0\u3059\u308B\u3002\u4F8B\uFF1A\u3000name=value'|'
\n\u7F6E\u63DB\uFF1A\u3000\u5024\u3092\u8A3A\u65AD\u30D1\u30BF\u30FC\u30F3'|'\u306B\u7F6E\u304D\u63DB\u3048\u308B\u3002\u3000\u3000\u3000\u4F8B\uFF1A name='|'
\n\u633F\u5165\uFF1A \u5024\u306E\u524D\u306B\u8A3A\u65AD\u30D1\u30BF\u30FC\u30F3\u3092\u633F\u5165\u3059\u308B\u3002\u3000 \u4F8B\uFF1A\u3000name='|'value
\n -ParmGenTamperOpt.jLabel1.text=\u30D1\u30BF\u30FC\u30F3\u57CB\u3081\u8FBC\u307F\u4F4D\u7F6E -ParmGenTamperOpt.jLabel3.text= \u8A3A\u65AD\u5BFE\u8C61\u30D1\u30E9\u30E1\u30FC\u30BF
\n  GET(query)\u30D1\u30E9\u30E1\u30FC\u30BF\u3001POST\u30D1\u30E9\u30E1\u30FC\u30BF\u304A\u3088\u3073\u305D\u306E\u4E21\u65B9\u3092
\n  \u8A3A\u65AD\u5BFE\u8C61\u3068\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u9078\u629E\u3057\u307E\u3059\u3002
\n\u30D1\u30BF\u30FC\u30F3\u57CB\u3081\u8FBC\u307F\u4F4D\u7F6E
\n  \u8A3A\u65AD\u5BFE\u8C61\u30D1\u30E9\u30E1\u30FC\u30BF\u306EValue\u5024\u3078
\n  \u306E\u8A3A\u65AD\u30D1\u30BF\u30FC\u30F3\u306E\u57CB\u3081\u8FBC\u307F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002 +ParmGenTamperOpt.PayloadPosition.toolTipText=\n\u30d1\u30bf\u30fc\u30f3\u3092\u57cb\u3081\u8fbc\u3080\u4f4d\u7f6e\u3092\u6307\u5b9a
\n\u8ffd\u52a0\uff1a\u3000\u5024\u306e\u5f8c\u308d\u306b\u8a3a\u65ad\u30d1\u30bf\u30fc\u30f3'|'\u3092\u8ffd\u52a0\u3059\u308b\u3002\u4f8b\uff1a\u3000name=value'|'
\n\u7f6e\u63db\uff1a\u3000\u5024\u3092\u8a3a\u65ad\u30d1\u30bf\u30fc\u30f3'|'\u306b\u7f6e\u304d\u63db\u3048\u308b\u3002\u3000\u3000\u3000\u4f8b\uff1a name='|'
\n\u633f\u5165\uff1a \u5024\u306e\u524d\u306b\u8a3a\u65ad\u30d1\u30bf\u30fc\u30f3\u3092\u633f\u5165\u3059\u308b\u3002\u3000 \u4f8b\uff1a\u3000name='|'value
\n +ParmGenTamperOpt.jLabel1.text=\u30d1\u30bf\u30fc\u30f3\u57cb\u3081\u8fbc\u307f\u4f4d\u7f6e +ParmGenTamperOpt.jLabel3.text= \u8a3a\u65ad\u5bfe\u8c61\u30d1\u30e9\u30e1\u30fc\u30bf
\n  GET(query)\u30d1\u30e9\u30e1\u30fc\u30bf\u3001POST\u30d1\u30e9\u30e1\u30fc\u30bf\u304a\u3088\u3073\u305d\u306e\u4e21\u65b9\u3092
\n  \u8a3a\u65ad\u5bfe\u8c61\u3068\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u9078\u629e\u3057\u307e\u3059\u3002
\n\u30d1\u30bf\u30fc\u30f3\u57cb\u3081\u8fbc\u307f\u4f4d\u7f6e
\n  \u8a3a\u65ad\u5bfe\u8c61\u30d1\u30e9\u30e1\u30fc\u30bf\u306eValue\u5024\u3078
\n  \u306e\u8a3a\u65ad\u30d1\u30bf\u30fc\u30f3\u306e\u57cb\u3081\u8fbc\u307f\u4f4d\u7f6e\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 ParmGenTamperOpt.CANCEL.text=CANCEL ParmGenTamperOpt.OK.text=OK -ParmGenTamperOpt.jLabel2.text=\u8A3A\u65AD\u5BFE\u8C61\u30D1\u30E9\u30E1\u30FC\u30BF +ParmGenTamperOpt.jLabel2.text=\u8a3a\u65ad\u5bfe\u8c61\u30d1\u30e9\u30e1\u30fc\u30bf -ParmGenAutoTrack.valuefilter.text=value\u5024\u6709\u306E\u307F -ParmGenAutoTrack.RegexBtn.text=\u6B63\u898F\u8868\u73FE\u6307\u5B9A -ParmGenAutoTrack.CancelBtn.text=\u30AD\u30E3\u30F3\u30BB\u30EB -ParmGenAutoTrack.NextBtn.text=\u6B21\u3078 -ParmGenAutoTrack.jLabel1.text=\u4E0B\u8A18\u4E00\u89A7\u306E\u5F15\u7D99\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002
\nCtrl+\u30DE\u30A6\u30B9\u53F3\u30AF\u30EA\u30C3\u30AF\u3067\u8907\u6570\u9078\u629E\u53EF\u3002
\n\u9078\u629E\u5F8C\u3001[\u6B21\u3078]\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002
\n
\n\u203B\u4E00\u89A7\u306B\u7121\u3044\u5834\u5408\u306F\u3001[\u6B63\u898F\u8868\u73FE\u6307\u5B9A]\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002 -ParmGenAutoTrack.title.text=\u30EC\u30B9\u30DD\u30F3\u30B9\u304B\u3089\u8FFD\u8DE1\u5024\u62BD\u51FA -ParmGenAutoTrack.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E -ParmGenAutoTrack.title0.part.text=\u7A2E\u985E -ParmGenAutoTrack.title2.order.text=\u51FA\u73FE\u9806\u5E8F +ParmGenAutoTrack.valuefilter.text=value\u5024\u6709\u306e\u307f +ParmGenAutoTrack.RegexBtn.text=\u6b63\u898f\u8868\u73fe\u6307\u5b9a +ParmGenAutoTrack.CancelBtn.text=\u30ad\u30e3\u30f3\u30bb\u30eb +ParmGenAutoTrack.NextBtn.text=\u6b21\u3078 +ParmGenAutoTrack.jLabel1.text=\u4e0b\u8a18\u4e00\u89a7\u306e\u5f15\u7d99\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
\nCtrl+\u30de\u30a6\u30b9\u53f3\u30af\u30ea\u30c3\u30af\u3067\u8907\u6570\u9078\u629e\u53ef\u3002
\n\u9078\u629e\u5f8c\u3001[\u6b21\u3078]\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002
\n
\n\u203b\u4e00\u89a7\u306b\u7121\u3044\u5834\u5408\u306f\u3001[\u6b63\u898f\u8868\u73fe\u6307\u5b9a]\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002 +ParmGenAutoTrack.title.text=\u30ec\u30b9\u30dd\u30f3\u30b9\u304b\u3089\u8ffd\u8de1\u5024\u62bd\u51fa +ParmGenAutoTrack.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e +ParmGenAutoTrack.title0.part.text=\u7a2e\u985e +ParmGenAutoTrack.title2.order.text=\u51fa\u73fe\u9806\u5e8f MacroBuilderUI.SENDTO.text=SendTo -MacroBuilderUI.REPLACE\ COOKIE.text=\u30AB\u30EC\u30F3\u30C8\u30EA\u30AF\u30A8\u30B9\u30C8\u306ECookie\u7F6E\u63DB -MacroBuilderUI.UpSelected.text=\u25B2UP -MacroBuilderUI.DownSelected.text=\u25BCDOWN -MacroBuilderUI.DELETEREQUEST.text=\u524A\u9664 -MacroBuilderUI.deleteRequestAction.text=URL[{0}]\u306FCookie\u304A\u3088\u3073Token\u306E\u5F15\u304D\u7D99\u304E\u5143\u53C8\u306F\u5148\u306E\u5BFE\u8C61\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002.
\u524A\u9664\u3059\u308B\u3068\u5F15\u304D\u7D99\u304E\u306B\u652F\u969C\u304C\u51FA\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 \u524A\u9664\u3057\u307E\u3059\u304B? -MacroBuilderUI.deleteConfirm.text=\u524A\u9664\u306E\u78BA\u8A8D -MacroBuilderUI.StartScan.text=\u672A\u4F7F\u7528 -MacroBuilderUI.\u8FFD\u8DE1FROM\u8A2D\u5B9A.text=\u8FFD\u8DE1\u30D1\u30E9\u30E1\u30FC\u30BF\u5024\u3092\u7279\u5B9A\u306E\u30EC\u30B9\u30DD\u30F3\u30B9\u304B\u3089\u62BD\u51FA -MacroBuilderUI.MBtoStepNo.text=\u8FFD\u8DE1\u30D1\u30E9\u30E1\u30FC\u30BF\u5024\u3092\u7279\u5B9A\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u3078\u8A2D\u5B9A +MacroBuilderUI.REPLACE\ COOKIE.text=\u30ab\u30ec\u30f3\u30c8\u30ea\u30af\u30a8\u30b9\u30c8\u306eCookie\u7f6e\u63db +MacroBuilderUI.UpSelected.text=\u25b2UP +MacroBuilderUI.DownSelected.text=\u25bcDOWN +MacroBuilderUI.DELETEREQUEST.text=\u524a\u9664 +MacroBuilderUI.deleteRequestAction.text=URL[{0}]\u306fCookie\u304a\u3088\u3073Token\u306e\u5f15\u304d\u7d99\u304e\u5143\u53c8\u306f\u5148\u306e\u5bfe\u8c61\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002.
\u524a\u9664\u3059\u308b\u3068\u5f15\u304d\u7d99\u304e\u306b\u652f\u969c\u304c\u51fa\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 \u524a\u9664\u3057\u307e\u3059\u304b? +MacroBuilderUI.deleteConfirm.text=\u524a\u9664\u306e\u78ba\u8a8d +MacroBuilderUI.StartScan.text=\u672a\u4f7f\u7528 +MacroBuilderUI.\u8ffd\u8de1FROM\u8a2d\u5b9a.text=\u8ffd\u8de1\u30d1\u30e9\u30e1\u30fc\u30bf\u5024\u3092\u7279\u5b9a\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u304b\u3089\u62bd\u51fa +MacroBuilderUI.MBtoStepNo.text=\u8ffd\u8de1\u30d1\u30e9\u30e1\u30fc\u30bf\u5024\u3092\u7279\u5b9a\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3078\u8a2d\u5b9a MacroBuilderUI.SAVE.text=Save -MacroBuilderUI.\u958B\u59CB\u6642TOKEN\u3092\u30AD\u30E3\u30C3\u30B7\u30E5\u304B\u3089\u5F15\u304D\u7D99\u3050.text=\u958B\u59CB\u6642\u8FFD\u8DE1\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u30AD\u30E3\u30C3\u30B7\u30E5\u304B\u3089\u5F15\u304D\u7D99\u3050 +MacroBuilderUI.\u958b\u59cb\u6642TOKEN\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u304b\u3089\u5f15\u304d\u7d99\u3050.text=\u958b\u59cb\u6642\u8ffd\u8de1\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u304b\u3089\u5f15\u304d\u7d99\u3050 MacroBuilderUI.LOAD.text=Load -MacroBuilderUI.\u30AA\u30EA\u30B8\u30CA\u30EB\u306B\u30EA\u30BB\u30C3\u30C8.text=\u30AA\u30EA\u30B8\u30CA\u30EB\u306B\u30EA\u30BB\u30C3\u30C8 +MacroBuilderUI.\u30aa\u30ea\u30b8\u30ca\u30eb\u306b\u30ea\u30bb\u30c3\u30c8.text=\u30aa\u30ea\u30b8\u30ca\u30eb\u306b\u30ea\u30bb\u30c3\u30c8 MacroBuilderUI.FINAL\ RESPONSE.text=final response -MacroBuilderUI.\u30DE\u30AF\u30ED\u30EA\u30AF\u30A8\u30B9\u30C8\u4E00\u89A7.text=\u30DE\u30AF\u30ED\u30EA\u30AF\u30A8\u30B9\u30C8\u4E00\u89A7 -MacroBuilderUI.TakeOverCacheCheckBox.text=\u30DE\u30AF\u30ED\u5B9F\u884C\u958B\u59CB\u6642\u3001\u8FFD\u8DE1\u30D1\u30E9\u30E1\u30FC\u30BF/Cookie\u5024\u3092\u30AD\u30E3\u30C3\u30B7\u30E5\u304B\u3089\u5F15\u304D\u7D99\u304E\u307E\u3059\u3002 -MacroBuilderUI.TakeOverInfoLabel.text=\u203B\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u7121\u52B9\u3068\u306A\u3063\u305F\u30BB\u30C3\u30B7\u30E7\u30F3Cookie\u5024\u306A\u3069\u3092\u30AD\u30E3\u30C3\u30B7\u30E5\u304B\u3089\u5F15\u304D\u7D99\u3044\u3067\u3057\u307E\u3044\u3001
\u3000\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u30A8\u30E9\u30FC\u3068\u306A\u308B\u5834\u5408\u306F\u30C1\u30A7\u30C3\u30AF\u3092\u306F\u305A\u3057\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002 -MacroBuilderUI.COOKIE\u66F4\u65B0.text=Cookie\u66F4\u65B0 -MacroBuilderUI.\u5B9F\u884C.text=\u5B9F\u884C -MacroBuilderUI.\u30AF\u30EA\u30A2.text=\u30AF\u30EA\u30A2 +MacroBuilderUI.\u30de\u30af\u30ed\u30ea\u30af\u30a8\u30b9\u30c8\u4e00\u89a7.text=\u30de\u30af\u30ed\u30ea\u30af\u30a8\u30b9\u30c8\u4e00\u89a7 +MacroBuilderUI.TakeOverCacheCheckBox.text=\u30de\u30af\u30ed\u5b9f\u884c\u958b\u59cb\u6642\u3001\u8ffd\u8de1\u30d1\u30e9\u30e1\u30fc\u30bf/Cookie\u5024\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u304b\u3089\u5f15\u304d\u7d99\u304e\u307e\u3059\u3002 +MacroBuilderUI.TakeOverInfoLabel.text=\u203b\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3057\u7121\u52b9\u3068\u306a\u3063\u305f\u30bb\u30c3\u30b7\u30e7\u30f3Cookie\u5024\u306a\u3069\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u304b\u3089\u5f15\u304d\u7d99\u3044\u3067\u3057\u307e\u3044\u3001
\u3000\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u30a8\u30e9\u30fc\u3068\u306a\u308b\u5834\u5408\u306f\u30c1\u30a7\u30c3\u30af\u3092\u306f\u305a\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002 +MacroBuilderUI.COOKIE\u66f4\u65b0.text=Cookie\u66f4\u65b0 +MacroBuilderUI.\u5b9f\u884c.text=\u5b9f\u884c +MacroBuilderUI.\u30af\u30ea\u30a2.text=\u30af\u30ea\u30a2 MacroBuilderUI.CUSTOM.text=custom -MacroBuilderUI.\u8FFD\u8DE1.text=\u8FFD\u8DE1 -MacroBuilderUI.\u30EC\u30B9\u30DD\u30F3\u30B9.text=\u30EC\u30B9\u30DD\u30F3\u30B9 -MacroBuilderUI.\u30EA\u30AF\u30A8\u30B9\u30C8.text=\u30EA\u30AF\u30A8\u30B9\u30C8 -MacroBuilderUI.RESPONSESHOW.text=\u30EC\u30B9\u30DD\u30F3\u30B9\u8868\u793A -MacroBuilderUI.REQUESTEDIT.text=\u7DE8\u96C6 +MacroBuilderUI.\u8ffd\u8de1.text=\u8ffd\u8de1 +MacroBuilderUI.\u30ec\u30b9\u30dd\u30f3\u30b9.text=\u30ec\u30b9\u30dd\u30f3\u30b9 +MacroBuilderUI.\u30ea\u30af\u30a8\u30b9\u30c8.text=\u30ea\u30af\u30a8\u30b9\u30c8 +MacroBuilderUI.RESPONSESHOW.text=\u30ec\u30b9\u30dd\u30f3\u30b9\u8868\u793a +MacroBuilderUI.REQUESTEDIT.text=\u7de8\u96c6 MacroBuilderUI.ENABLEREQUEST.text=EnableRequest MacroBuilderUI.DISABLEREQUEST.text=DisableRequest MacroBuilderUI.TARGETREQUEST.text=TargetRequest MacroBuilderUI.INTRUDER.text=Intruder MacroBuilderUI.SCANNER.text=Scanner MacroBuilderUI.REPEATER.text=Repeater -MacroBuilderUI.MBmonitorofprocessing.text=\u5B9F\u884C\u4E2D\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u30EC\u30B9\u30DD\u30F3\u30B9\u8868\u793A\uFF08\u51E6\u7406\u304C\u9045\u304F\u306A\u308B\uFF09 -MacroBuilderUI.MBreplaceTrackingParam.text=\u30AB\u30EC\u30F3\u30C8\u30EA\u30AF\u30A8\u30B9\u30C8\u306Eparameter\u8FFD\u8DE1 \u3059\u308B\uFF08on\uFF09/\u3057\u306A\u3044(off) -MacroBuilderUI.ShowRequest.text=\u30EA\u30AF\u30A8\u30B9\u30C8\u8868\u793A +MacroBuilderUI.MBmonitorofprocessing.text=\u5b9f\u884c\u4e2d\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u30ec\u30b9\u30dd\u30f3\u30b9\u8868\u793a\uff08\u51e6\u7406\u304c\u9045\u304f\u306a\u308b\uff09 +MacroBuilderUI.MBreplaceTrackingParam.text=\u30ab\u30ec\u30f3\u30c8\u30ea\u30af\u30a8\u30b9\u30c8\u306eparameter\u8ffd\u8de1 \u3059\u308b\uff08on\uff09/\u3057\u306a\u3044(off) +MacroBuilderUI.ShowRequest.text=\u30ea\u30af\u30a8\u30b9\u30c8\u8868\u793a MacroBuilderUI.baselinemode.text=https://github.com/gdgd009xcd/AutoMacroBuilder/wiki/2.4.baseline-replace%E3%83%A2%E3%83%BC%E3%83%89 -MacroBuilderUI.TakeOverCache.text=\u958B\u59CB\u6642\u306B\u30AD\u30E3\u30C3\u30B7\u30E5\u304B\u3089Cookie/\u8FFD\u8DE1\u30D1\u30E9\u30E1\u30FC\u30BF(e.g. CSRF token)\u5024\u3092\u5F15\u304D\u7D99\u3050 -MacroBuilderUI.TrackingParamBorder.text=\u8FFD\u8DE1\u30D1\u30E9\u30E1\u30FC\u30BF(e.g. CSRF token) -MacroBuilderUI.restore.text=\u5143\u306B\u623B\u3059 -MacroBuilderUI.update.text=\u4FDD\u5B58 -ParmGenAddParms.\u30D1\u30E9\u30E1\u30FC\u30BF\u9078\u629E\u753B\u9762.text=parameter\u9078\u629E\u753B\u9762 -ParmGenAddParms.\u7F6E\u63DB\u5BFE\u8C61\u30D1\u30B9\uFF1A\u3000\u65E2\u8A2D\u5B9A\u5024\u306B\u623B\u3059\u5834\u5408\u306F\u3001\u4E0B\u8A18\u306E\u30D7\u30EB\u30C0\u30A6\u30F3\u3067\u9078\u629E.text=\u7F6E\u63DB\u5BFE\u8C61\u30D1\u30B9(Regex)\uFF1A\u3000\u65E2\u8A2D\u5B9A\u5024\u306B\u623B\u3059\u5834\u5408\u306F\u3001\u4E0B\u8A18\u306E\u30D7\u30EB\u30C0\u30A6\u30F3\u3067\u9078\u629E -ParmGenAddParms.\u53D6\u6D88.text=\u53D6\u6D88 -ParmGenAddParms.\u8FFD\u52A0.text=\u8FFD\u52A0 -ParmGenAddParms.jLabel5.text=\u25A0\u30D1\u30E9\u30E1\u30FC\u30BF\u9078\u629E
\n(1)\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u4E0B\u8A18\u304B\u3089\u9078\u629E\u3057\u3001
\n(2)\u300C\u8FFD\u52A0\u300D\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002
\n\u203B[\u6B63\u898F\u8868\u73FE]\u30D1\u30E9\u30E1\u30FC\u30BF\u5024\u306E\u6B63\u898F\u8868\u73FE\u3092\u9078\u629E -ParmGenAddParms.jPanel1.border.text=\u6B63\u898F\u8868\u73FE -ParmGenAddParms.comboModel.\u30C7\u30D5\u30A9\u30EB\u30C8.text=\u30C7\u30D5\u30A9\u30EB\u30C8 -ParmGenAddParms.comboModel.\u6570\u5024\u56FA\u5B9A\u9577.text=\u6570\u5024\u56FA\u5B9A\u9577 -ParmGenAddParms.comboModel.\u82F1\u6570\u5B57\u56FA\u5B9A\u9577.text=\u82F1\u6570\u5B57\u56FA\u5B9A\u9577 -ParmGenAddParms.comboModel.\u6570\u5024\u4EFB\u610F\u9577.text=\u6570\u5024\u4EFB\u610F\u9577 -ParmGenAddParms.comboModel.\u82F1\u6570\u5B57\u4EFB\u610F\u9577.text=\u82F1\u6570\u5B57\u4EFB\u610F\u9577 -ParmGenAddParms.comboModel.\u56FA\u5B9A\u5024.text=\u56FA\u5B9A\u5024 -ParmGenAddParms.numbertooltip.text=value\u5024\u306E\u4EE5\u4E0B\u306E\u6587\u5B57\u5217\u304C\u7F6E\u63DB\u5BFE\u8C61\u3068\u306A\u308B
\n\u6570\u5024\u56FA\u5B9A\u9577\u3000\u3000\u3000\u4F8B\uFF1A\u3000n=test0001a -> "0001"\u306E\u6570\u5024\u90E8\u5206\u56FA\u5B9A\u9577\uFF14\u6841
\n\u6587\u5B57\u5217\u56FA\u5B9A\u9577\u3000\u3000\u4F8B\uFF1A\u3000n=test0001a -> "test0001a"\u82F1\u6570\u5B57\u5168\u4F53\u56FA\u5B9A\u9577\uFF19\u6841
\n\u6570\u5024\u4EFB\u610F\u9577\u3000\u3000\u3000\u4F8B\uFF1An=test123a, n=test0000999b -> "123", "0000999"\u306E\u6570\u5024\u90E8\u5206\u4EFB\u610F\u9577
\n\u6587\u5B57\u5217\u4EFB\u610F\u9577\u3000\u3000\u4F8B\uFF1A\u3000n=test123a, n=real0000101b => "test123a", "real0000101b"\n\u82F1\u6570\u5B57\u5168\u4F53\u4EFB\u610F\u9577 -ParmGenAddParms.position.text=\u4F4D\u7F6E -ParmGenCSVLoader.\uFF23\uFF33\uFF36\u30D5\u30A1\u30A4\u30EB\u8AAD\u307F\u8FBC\u307F\u5931\u6557.text=\uFF23\uFF33\uFF36\u30D5\u30A1\u30A4\u30EB\u8AAD\u307F\u8FBC\u307F\u5931\u6557 -ParmGenCSVLoader.CSV\u30D5\u30A1\u30A4\u30EB\u8AAD\u307F\u8FBC\u307F.text=CSV\u30D5\u30A1\u30A4\u30EB\u8AAD\u307F\u8FBC\u307F -ParmGenCSVLoader.CSV\u30AB\u30E9\u30E0\u9078\u629E.text=CSV\u30AB\u30E9\u30E0\u9078\u629E -ParmGenCSVLoader.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E -ParmGenCSVLoader.\u6B21\u30EC\u30B3\u30FC\u30C9\u8AAD\u307F\u8FBC\u307F.text=\u6B21\u30EC\u30B3\u30FC\u30C9\u8AAD\u307F\u8FBC\u307F -ParmGenCSVLoader.\ \u30AB\u30E9\u30E0\u3092\u4E0B\u8A18\u4E00\u89A7\u304B\u3089\u9078\u629E\u3057\u3001\u9078\u629E\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002.text= \u30AB\u30E9\u30E0\u3092\u4E0B\u8A18\u4E00\u89A7\u304B\u3089\u9078\u629E\u3057\u3001\u9078\u629E\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002 -ParmGenCSVLoader.\u53D6\u6D88.text=\u53D6\u6D88 -ParmGenCSVLoader.\u9078\u629E.text=\u9078\u629E -ParmGenCSVLoader.columntitle.text=\u30AB\u30E9\u30E0\u4F4D\u7F6E(0start) +MacroBuilderUI.TakeOverCache.text=\u958b\u59cb\u6642\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u304b\u3089Cookie/\u8ffd\u8de1\u30d1\u30e9\u30e1\u30fc\u30bf(e.g. CSRF token)\u5024\u3092\u5f15\u304d\u7d99\u3050 +MacroBuilderUI.TrackingParamBorder.text=\u8ffd\u8de1\u30d1\u30e9\u30e1\u30fc\u30bf(e.g. CSRF token) +MacroBuilderUI.restore.text=\u5143\u306b\u623b\u3059 +MacroBuilderUI.update.text=\u4fdd\u5b58 +ParmGenAddParms.\u30d1\u30e9\u30e1\u30fc\u30bf\u9078\u629e\u753b\u9762.text=parameter\u9078\u629e\u753b\u9762 +ParmGenAddParms.\u7f6e\u63db\u5bfe\u8c61\u30d1\u30b9\uff1a\u3000\u65e2\u8a2d\u5b9a\u5024\u306b\u623b\u3059\u5834\u5408\u306f\u3001\u4e0b\u8a18\u306e\u30d7\u30eb\u30c0\u30a6\u30f3\u3067\u9078\u629e.text=\u7f6e\u63db\u5bfe\u8c61\u30d1\u30b9(Regex)\uff1a\u3000\u65e2\u8a2d\u5b9a\u5024\u306b\u623b\u3059\u5834\u5408\u306f\u3001\u4e0b\u8a18\u306e\u30d7\u30eb\u30c0\u30a6\u30f3\u3067\u9078\u629e +ParmGenAddParms.\u53d6\u6d88.text=\u53d6\u6d88 +ParmGenAddParms.\u8ffd\u52a0.text=\u8ffd\u52a0 +ParmGenAddParms.jLabel5.text=\u25a0\u30d1\u30e9\u30e1\u30fc\u30bf\u9078\u629e
\n(1)\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u4e0b\u8a18\u304b\u3089\u9078\u629e\u3057\u3001
\n(2)\u300c\u8ffd\u52a0\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002
\n\u203b[\u6b63\u898f\u8868\u73fe]\u30d1\u30e9\u30e1\u30fc\u30bf\u5024\u306e\u6b63\u898f\u8868\u73fe\u3092\u9078\u629e +ParmGenAddParms.jPanel1.border.text=\u6b63\u898f\u8868\u73fe +ParmGenAddParms.comboModel.\u30c7\u30d5\u30a9\u30eb\u30c8.text=\u30c7\u30d5\u30a9\u30eb\u30c8 +ParmGenAddParms.comboModel.\u6570\u5024\u56fa\u5b9a\u9577.text=\u6570\u5024\u56fa\u5b9a\u9577 +ParmGenAddParms.comboModel.\u82f1\u6570\u5b57\u56fa\u5b9a\u9577.text=\u82f1\u6570\u5b57\u56fa\u5b9a\u9577 +ParmGenAddParms.comboModel.\u6570\u5024\u4efb\u610f\u9577.text=\u6570\u5024\u4efb\u610f\u9577 +ParmGenAddParms.comboModel.\u82f1\u6570\u5b57\u4efb\u610f\u9577.text=\u82f1\u6570\u5b57\u4efb\u610f\u9577 +ParmGenAddParms.comboModel.\u56fa\u5b9a\u5024.text=\u56fa\u5b9a\u5024 +ParmGenAddParms.numbertooltip.text=value\u5024\u306e\u4ee5\u4e0b\u306e\u6587\u5b57\u5217\u304c\u7f6e\u63db\u5bfe\u8c61\u3068\u306a\u308b
\n\u6570\u5024\u56fa\u5b9a\u9577\u3000\u3000\u3000\u4f8b\uff1a\u3000n=test0001a -> "0001"\u306e\u6570\u5024\u90e8\u5206\u56fa\u5b9a\u9577\uff14\u6841
\n\u6587\u5b57\u5217\u56fa\u5b9a\u9577\u3000\u3000\u4f8b\uff1a\u3000n=test0001a -> "test0001a"\u82f1\u6570\u5b57\u5168\u4f53\u56fa\u5b9a\u9577\uff19\u6841
\n\u6570\u5024\u4efb\u610f\u9577\u3000\u3000\u3000\u4f8b\uff1an=test123a, n=test0000999b -> "123", "0000999"\u306e\u6570\u5024\u90e8\u5206\u4efb\u610f\u9577
\n\u6587\u5b57\u5217\u4efb\u610f\u9577\u3000\u3000\u4f8b\uff1a\u3000n=test123a, n=real0000101b => "test123a", "real0000101b"\n\u82f1\u6570\u5b57\u5168\u4f53\u4efb\u610f\u9577 +ParmGenAddParms.position.text=\u4f4d\u7f6e +ParmGenCSVLoader.\uff23\uff33\uff36\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f\u5931\u6557.text=\uff23\uff33\uff36\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f\u5931\u6557 +ParmGenCSVLoader.CSV\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f.text=CSV\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f +ParmGenCSVLoader.CSV\u30ab\u30e9\u30e0\u9078\u629e.text=CSV\u30ab\u30e9\u30e0\u9078\u629e +ParmGenCSVLoader.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e +ParmGenCSVLoader.\u6b21\u30ec\u30b3\u30fc\u30c9\u8aad\u307f\u8fbc\u307f.text=\u6b21\u30ec\u30b3\u30fc\u30c9\u8aad\u307f\u8fbc\u307f +ParmGenCSVLoader.\ \u30ab\u30e9\u30e0\u3092\u4e0b\u8a18\u4e00\u89a7\u304b\u3089\u9078\u629e\u3057\u3001\u9078\u629e\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002.text= \u30ab\u30e9\u30e0\u3092\u4e0b\u8a18\u4e00\u89a7\u304b\u3089\u9078\u629e\u3057\u3001\u9078\u629e\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002 +ParmGenCSVLoader.\u53d6\u6d88.text=\u53d6\u6d88 +ParmGenCSVLoader.\u9078\u629e.text=\u9078\u629e +ParmGenCSVLoader.columntitle.text=\u30ab\u30e9\u30e0\u4f4d\u7f6e(0start) ParmGenCSVLoader.columnvalue.text=\u5024 -ParmGenCSVLoader.tooltip.text=\n\u8FFD\u52A0\u3059\u308B\u30AB\u30E9\u30E0\u3092\u9078\u629E\u3057\u3001\uFF2F\uFF2B\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002 -ParmGenNew.\u30EC\u30B9\u30DD\u30F3\u30B9.text=\u30EC\u30B9\u30DD\u30F3\u30B9 -ParmGenNew.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E -ParmGenNew.\u30EC\u30B9\u30DD\u30F3\u30B9\u9078\u629E.text=\u30EC\u30B9\u30DD\u30F3\u30B9\u9078\u629E -ParmGenNew.\u30EA\u30AF\u30A8\u30B9\u30C8/\u30EC\u30B9\u30DD\u30F3\u30B9\u9078\u629E\u3059\u308B.text=\u30EA\u30AF\u30A8\u30B9\u30C8/\u30EC\u30B9\u30DD\u30F3\u30B9\u9078\u629E\u3059\u308B -ParmGenNew.\u53D6\u6D88.text=\u53D6\u6D88 -ParmGenNew.\u4FDD\u5B58.text=\u4FDD\u5B58 -ParmGenNew.\u30D1\u30BF\u30FC\u30F3.text=\u30D1\u30BF\u30FC\u30F3 -ParmGenNew.\u7DE8\u96C6.text=\u7DE8\u96C6 -ParmGenNew.\u25BC.text=\u25BC -ParmGenNew.\u25B2.text=\u25B2 -ParmGenNew.\u5BFE\u8C61\u30D1\u30B9.text=\u5BFE\u8C61\u30D1\u30B9 -ParmGenNew.\u30AB\u30A6\u30F3\u30BF\u3092\u521D\u671F\u5024\u3067\u521D\u671F\u5316\u3059\u308B\u969B\u306F\u3001\u30C1\u30A7\u30C3\u30AF.text=\u30AB\u30A6\u30F3\u30BF\u3092\u521D\u671F\u5024\u3067\u521D\u671F\u5316\u3059\u308B\u969B\u306F\u3001\u30C1\u30A7\u30C3\u30AF -ParmGenNew.CSV\u30D5\u30A1\u30A4\u30EB\u9078\u629E.text=CSV\u30D5\u30A1\u30A4\u30EB\u9078\u629E -ParmGenNew.\u30AB\u30A6\u30F3\u30BF\u3092\u521D\u671F\u5024\u3067\u521D\u671F\u5316\u3059\u308B\u5834\u5408\u306F\u3001\u30C1\u30A7\u30C3\u30AF.text=\u30AB\u30A6\u30F3\u30BF\u3092\u521D\u671F\u5024\u3067\u521D\u671F\u5316\u3059\u308B\u5834\u5408\u306F\u3001\u30C1\u30A7\u30C3\u30AF -ParmGenNew.\u30AB\u30A6\u30F3\u30BF\u3092\u521D\u671F\u5316\u3059\u308B.text=\u30AB\u30A6\u30F3\u30BF\u3092\u521D\u671F\u5316\u3059\u308B -ParmGenNew.\u6700\u592710\u30B1\u30BF\u307E\u3067.text=\u6700\u592710\u30B1\u30BF\u307E\u3067 +ParmGenCSVLoader.tooltip.text=\n\u8ffd\u52a0\u3059\u308b\u30ab\u30e9\u30e0\u3092\u9078\u629e\u3057\u3001\uff2f\uff2b\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002 +ParmGenNew.\u30ec\u30b9\u30dd\u30f3\u30b9.text=\u30ec\u30b9\u30dd\u30f3\u30b9 +ParmGenNew.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e +ParmGenNew.\u30ec\u30b9\u30dd\u30f3\u30b9\u9078\u629e.text=\u30ec\u30b9\u30dd\u30f3\u30b9\u9078\u629e +ParmGenNew.\u30ea\u30af\u30a8\u30b9\u30c8/\u30ec\u30b9\u30dd\u30f3\u30b9\u9078\u629e\u3059\u308b.text=\u30ea\u30af\u30a8\u30b9\u30c8/\u30ec\u30b9\u30dd\u30f3\u30b9\u9078\u629e\u3059\u308b +ParmGenNew.\u53d6\u6d88.text=\u53d6\u6d88 +ParmGenNew.\u4fdd\u5b58.text=\u4fdd\u5b58 +ParmGenNew.\u30d1\u30bf\u30fc\u30f3.text=\u30d1\u30bf\u30fc\u30f3 +ParmGenNew.\u7de8\u96c6.text=\u7de8\u96c6 +ParmGenNew.\u25bc.text=\u25bc +ParmGenNew.\u25b2.text=\u25b2 +ParmGenNew.\u5bfe\u8c61\u30d1\u30b9.text=\u5bfe\u8c61\u30d1\u30b9 +ParmGenNew.\u30ab\u30a6\u30f3\u30bf\u3092\u521d\u671f\u5024\u3067\u521d\u671f\u5316\u3059\u308b\u969b\u306f\u3001\u30c1\u30a7\u30c3\u30af.text=\u30ab\u30a6\u30f3\u30bf\u3092\u521d\u671f\u5024\u3067\u521d\u671f\u5316\u3059\u308b\u969b\u306f\u3001\u30c1\u30a7\u30c3\u30af +ParmGenNew.CSV\u30d5\u30a1\u30a4\u30eb\u9078\u629e.text=CSV\u30d5\u30a1\u30a4\u30eb\u9078\u629e +ParmGenNew.\u30ab\u30a6\u30f3\u30bf\u3092\u521d\u671f\u5024\u3067\u521d\u671f\u5316\u3059\u308b\u5834\u5408\u306f\u3001\u30c1\u30a7\u30c3\u30af.text=\u30ab\u30a6\u30f3\u30bf\u3092\u521d\u671f\u5024\u3067\u521d\u671f\u5316\u3059\u308b\u5834\u5408\u306f\u3001\u30c1\u30a7\u30c3\u30af +ParmGenNew.\u30ab\u30a6\u30f3\u30bf\u3092\u521d\u671f\u5316\u3059\u308b.text=\u30ab\u30a6\u30f3\u30bf\u3092\u521d\u671f\u5316\u3059\u308b +ParmGenNew.\u6700\u592710\u30b1\u30bf\u307e\u3067.text=\u6700\u592710\u30b1\u30bf\u307e\u3067 ParmGenNew.\u6841\u6570.text=\u6841\u6570 -ParmGenNew.\u6700\u59272147483647\u307E\u3067.text=\u6700\u59272147483647\u307E\u3067 -ParmGenNew.\u521D\u671F\u5024.text=\u521D\u671F\u5024 -ParmGenNew.\u7F6E\u63DB\u5BFE\u8C61\u30D1\u30B9.text=\u7F6E\u63DB\u5BFE\u8C61\u30D1\u30B9 -ParmGenNew.\u8FFD\u52A0.text=\u8FFD\u52A0 -ParmGenNew.\u25BCDOWN.text=\u25BCDOWN -ParmGenNew.\u25B2UP\ \ .text=\u25B2UP -ParmGenNew.\u524A\u9664.text=\u524A\u9664 -ParmGenNew.\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8.text=\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8 -ParmGenNew.PARMGEN\u7DE8\u96C6\u753B\u9762.text=Parameter Edit -ParmGenNew.\u203B\u8FFD\u8DE1\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u767B\u9332\u65B9\u6CD5
\u8FFD\u8DE1\u3059\u308B\u5024\u3092\u9078\u629E\u3057\u3001\u8FFD\u52A0\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002.text= -ParmGenNew.ReqPanel.TabConstraints.tabTitle.text=\u9078\u629E\u30EA\u30AF\u30A8\u30B9\u30C8 -ParmGenNew.ResPanel.TabConstraints.tabTitle.text=\u9078\u629E\u30EC\u30B9\u30DD\u30F3\u30B9 +ParmGenNew.\u6700\u59272147483647\u307e\u3067.text=\u6700\u59272147483647\u307e\u3067 +ParmGenNew.\u521d\u671f\u5024.text=\u521d\u671f\u5024 +ParmGenNew.\u7f6e\u63db\u5bfe\u8c61\u30d1\u30b9.text=\u7f6e\u63db\u5bfe\u8c61\u30d1\u30b9 +ParmGenNew.\u8ffd\u52a0.text=\u8ffd\u52a0 +ParmGenNew.\u25bcDOWN.text=\u25bcDOWN +ParmGenNew.\u25b2UP\ \ .text=\u25b2UP +ParmGenNew.\u524a\u9664.text=\u524a\u9664 +ParmGenNew.\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8.text=\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8 +ParmGenNew.PARMGEN\u7de8\u96c6\u753b\u9762.text=Parameter Edit +ParmGenNew.\u203b\u8ffd\u8de1\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u767b\u9332\u65b9\u6cd5
\u8ffd\u8de1\u3059\u308b\u5024\u3092\u9078\u629e\u3057\u3001\u8ffd\u52a0\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002.text= +ParmGenNew.ReqPanel.TabConstraints.tabTitle.text=\u9078\u629e\u30ea\u30af\u30a8\u30b9\u30c8 +ParmGenNew.ResPanel.TabConstraints.tabTitle.text=\u9078\u629e\u30ec\u30b9\u30dd\u30f3\u30b9 ParmGenNew.SeqNumber.TabConstrains.tabTitle.text=\u6570\u5024 -ParmGenNew.SeqResponse.TabConstraints.tabTitle.text=\u8FFD\u8DE1 -ParmGenNew.SeqCSV.TabConstraints.tabTitle.text=\uFF23\uFF33\uFF36 -ParmGenNew.jPanel2.border.title.text=\u30AB\u30A6\u30F3\u30BF\u521D\u671F\u5024 -ParmGenNew.nParamTable.title0.text=\u7F6E\u63DB\u7B87\u6240 -ParmGenNew.nParamTable.title1.text=\u7F6E\u63DB\u3057\u306A\u3044 -ParmGenNew.nParamTable.title2.text=\u7F6E\u63DB\u30D1\u30BF\u30FC\u30F3 -ParmGenNew.nParamTable.title3.text=\u30A4\u30F3\u30AF\u30EA\u30E1\u30F3\u30C8 -ParmGenNew.jPanel1.title.text=\u30AB\u30A6\u30F3\u30BF\u521D\u671F\u5024\uFF08\u8AAD\u307F\u98DB\u3070\u3057\u884C\u6570\uFF09 -ParmGenNew.csvParamTable.title0.text=\u7F6E\u63DB\u4F4D\u7F6E -ParmGenNew.csvParamTable.title1.text=\u7F6E\u63DB\u3057\u306A\u3044 -ParmGenNew.csvParamTable.title2.text=\uFF23\uFF33\uFF36\u30AB\u30E9\u30E0 -ParmGenNew.csvParamTable.title3.text=\u7F6E\u63DB\u30D1\u30BF\u30FC\u30F3 -ParmGenNew.csvParamTable.title4.text=\u30A4\u30F3\u30AF\u30EA\u30E1\u30F3\u30C8 -ParmGenNew.trackTable.title0.text=\u7F6E\u63DB\u7B87\u6240 -ParmGenNew.trackTable.title1.text=\u7F6E\u63DB\u3057\u306A\u3044 -ParmGenNew.trackTable.title2.text=\u7F6E\u63DB\u6B63\u898F\u8868\u73FE -ParmGenNew.trackTable.title3.text=\u8FFD\u8DE1URL -ParmGenNew.trackTable.title4.text=\u8FFD\u8DE1\u6B63\u898F\u8868\u73FE -ParmGenNew.trackTable.title5.text=\u8FFD\u8DE1\u7B87\u6240 -ParmGenNew.trackTable.title6.text=\u8FFD\u8DE1\u4F4D\u7F6E -ParmGenNew.trackTable.title7.text=\u8FFD\u8DE1NAME\u5024 -ParmGenNew.trackTable.title8.text=URLencode\u3059\u308B -ParmGenNew.trackTable.title9.text=\u8FFD\u8DE1from -ParmGenNew.trackTable.title10.text=\u8FFD\u8DE1to +ParmGenNew.SeqResponse.TabConstraints.tabTitle.text=\u8ffd\u8de1 +ParmGenNew.SeqCSV.TabConstraints.tabTitle.text=\uff23\uff33\uff36 +ParmGenNew.jPanel2.border.title.text=\u30ab\u30a6\u30f3\u30bf\u521d\u671f\u5024 +ParmGenNew.nParamTable.title0.text=\u7f6e\u63db\u7b87\u6240 +ParmGenNew.nParamTable.title1.text=\u7f6e\u63db\u3057\u306a\u3044 +ParmGenNew.nParamTable.title2.text=\u7f6e\u63db\u30d1\u30bf\u30fc\u30f3 +ParmGenNew.nParamTable.title3.text=\u30a4\u30f3\u30af\u30ea\u30e1\u30f3\u30c8 +ParmGenNew.jPanel1.title.text=\u30ab\u30a6\u30f3\u30bf\u521d\u671f\u5024\uff08\u8aad\u307f\u98db\u3070\u3057\u884c\u6570\uff09 +ParmGenNew.csvParamTable.title0.text=\u7f6e\u63db\u4f4d\u7f6e +ParmGenNew.csvParamTable.title1.text=\u7f6e\u63db\u3057\u306a\u3044 +ParmGenNew.csvParamTable.title2.text=\uff23\uff33\uff36\u30ab\u30e9\u30e0 +ParmGenNew.csvParamTable.title3.text=\u7f6e\u63db\u30d1\u30bf\u30fc\u30f3 +ParmGenNew.csvParamTable.title4.text=\u30a4\u30f3\u30af\u30ea\u30e1\u30f3\u30c8 +ParmGenNew.trackTable.title0.text=\u7f6e\u63db\u7b87\u6240 +ParmGenNew.trackTable.title1.text=\u7f6e\u63db\u3057\u306a\u3044 +ParmGenNew.trackTable.title2.text=\u7f6e\u63db\u6b63\u898f\u8868\u73fe +ParmGenNew.trackTable.title3.text=\u8ffd\u8de1URL +ParmGenNew.trackTable.title4.text=\u8ffd\u8de1\u6b63\u898f\u8868\u73fe +ParmGenNew.trackTable.title5.text=\u8ffd\u8de1\u7b87\u6240 +ParmGenNew.trackTable.title6.text=\u8ffd\u8de1\u4f4d\u7f6e +ParmGenNew.trackTable.title7.text=\u8ffd\u8de1NAME\u5024 +ParmGenNew.trackTable.title8.text=URLencode\u3059\u308b +ParmGenNew.trackTable.title9.text=\u8ffd\u8de1from +ParmGenNew.trackTable.title10.text=\u8ffd\u8de1to ParmGenNew.trackTable.title11.text=tokentype -ParmGenNew.TrackFromLabel.text=\u8FFD\u8DE1From -ParmGenNew.SetToLabel.text=\u8FFD\u8DE1To +ParmGenNew.trackTable.condRegex.text=\u5b8c\u4e86\u6b63\u898f\u8868\u73fe +ParmGenNew.trackTable.condTargetNo.text=\u8ffd\u8de1\u6761\u4ef6No +ParmGenNew.trackTable.condRegexTargetIsRequest.text=\u6761\u4ef6\u30ea\u30af\u30a8\u30b9\u30c8 +ParmGenNew.trackTable.replaceZeroSize.text=0\u30b5\u30a4\u30ba\u3092\u8a31\u5bb9 +ParmGenNew.TrackFromLabel.text=\u8ffd\u8de1From +ParmGenNew.SetToLabel.text=\u8ffd\u8de1To ParmGenNew.NumberTitle.text=\u6570\u5024 -ParmGenNew.DateTimeTitle.text=\u65E5\u6642 -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u304C\u4E0D\u6B63.text=\u6B63\u898F\u8868\u73FE\u304C\u4E0D\u6B63\n -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u306B\u30B0\u30EB\u30FC\u30D7\u6307\u5B9A()\u304C\u3042\u308A\u307E\u305B\u3093\u3002()\u3067\u7F6E\u63DB\u3059\u308B\u90E8\u5206\u3092\u56F2\u3093\u3067\u304F\u3060\u3055\u3044\u3002.text=\u6B63\u898F\u8868\u73FE\u306B\u30B0\u30EB\u30FC\u30D7\u6307\u5B9A()\u304C\u3042\u308A\u307E\u305B\u3093\u3002\n()\u3067\u7F6E\u63DB\u3059\u308B\u90E8\u5206\u3092\u56F2\u3093\u3067\u304F\u3060\u3055\u3044\u3002 -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u306B\u30B0\u30EB\u30FC\u30D7\u6307\u5B9A\u304C\u8907\u6570\u3042\u308A\u307E\u3059\u3002.text=\u6B63\u898F\u8868\u73FE\u306B\u30B0\u30EB\u30FC\u30D7\u6307\u5B9A\u304C\u8907\u6570\u3042\u308A\u307E\u3059\u3002 -ParmGenRegex.\u56FA\u5B9A.text=\u56FA\u5B9A -ParmGenRegex.0\u4EE5\u4E0A.text=0\u4EE5\u4E0A -ParmGenRegex.1\u4EE5\u4E0A.text=1\u4EE5\u4E0A -ParmGenRegex.\u7BC4\u56F2.text=\u7BC4\u56F2 -ParmGenRegex.\u4EE5\u4E0B.text=\u4EE5\u4E0B -ParmGenRegex.\u4EE5\u4E0A.text=\u4EE5\u4E0A -ParmGenRegex.\u6700\u5C0F\u30DE\u30C3\u30C1.text=\u6700\u5C0F\u30DE\u30C3\u30C1 -ParmGenRegex.\u6539\u884C\u542B\u3080\u4EFB\u610F.text=\u6539\u884C\u542B\u3080\u4EFB\u610F -ParmGenRegex.\u4EFB\u610F(.*).text=\u4EFB\u610F(.*) -ParmGenRegex.\u5168\u89D2(%NN).text=\u5168\u89D2(%nn) -ParmGenRegex.\u82F1\u6570\u5B57.text=\u82F1\u6570\u5B57 +ParmGenNew.DateTimeTitle.text=\u65e5\u6642 +ParmGenNew.RegexPopup.ParamRegex.text=\u7f6e\u63db\u6b63\u898f\u8868\u73fe\u66f4\u65b0\uff08\u8ffd\u8de1\u5024\u57cb\u3081\u8fbc\u307f\u5148\uff09 +ParmGenNew.RegexPopup.FromValueRegex.text=\u8ffd\u8de1\u6b63\u898f\u8868\u73fe\u66f4\u65b0\uff08\u8ffd\u8de1\u5024\u8ffd\u8de1\u5143\uff09 +ParmGenNew.RegexPopup.CondRegex.text=\u5b8c\u4e86\u6b63\u898f\u8868\u73fe\u66f4\u65b0\uff08\u51e6\u7406\u5b8c\u4e86\u306e\u691c\u51fa\u6b63\u898f\u8868\u73fe\uff09 +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u304c\u4e0d\u6b63.text=\u6b63\u898f\u8868\u73fe\u304c\u4e0d\u6b63\n +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u306b\u30b0\u30eb\u30fc\u30d7\u6307\u5b9a()\u304c\u3042\u308a\u307e\u305b\u3093\u3002()\u3067\u7f6e\u63db\u3059\u308b\u90e8\u5206\u3092\u56f2\u3093\u3067\u304f\u3060\u3055\u3044\u3002.text=\u6b63\u898f\u8868\u73fe\u306b\u30b0\u30eb\u30fc\u30d7\u6307\u5b9a()\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n()\u3067\u7f6e\u63db\u3059\u308b\u90e8\u5206\u3092\u56f2\u3093\u3067\u304f\u3060\u3055\u3044\u3002 +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u306b\u30b0\u30eb\u30fc\u30d7\u6307\u5b9a\u304c\u8907\u6570\u3042\u308a\u307e\u3059\u3002.text=\u6b63\u898f\u8868\u73fe\u306b\u30b0\u30eb\u30fc\u30d7\u6307\u5b9a\u304c\u8907\u6570\u3042\u308a\u307e\u3059\u3002 +ParmGenRegex.\u56fa\u5b9a.text=\u56fa\u5b9a +ParmGenRegex.0\u4ee5\u4e0a.text=0\u4ee5\u4e0a +ParmGenRegex.1\u4ee5\u4e0a.text=1\u4ee5\u4e0a +ParmGenRegex.\u7bc4\u56f2.text=\u7bc4\u56f2 +ParmGenRegex.\u4ee5\u4e0b.text=\u4ee5\u4e0b +ParmGenRegex.\u4ee5\u4e0a.text=\u4ee5\u4e0a +ParmGenRegex.\u6700\u5c0f\u30de\u30c3\u30c1.text=\u6700\u5c0f\u30de\u30c3\u30c1 +ParmGenRegex.\u6539\u884c\u542b\u3080\u4efb\u610f.text=\u6539\u884c\u542b\u3080\u4efb\u610f +ParmGenRegex.\u4efb\u610f(.*).text=\u4efb\u610f(.*) +ParmGenRegex.\u5168\u89d2(%NN).text=\u5168\u89d2(%nn) +ParmGenRegex.\u82f1\u6570\u5b57.text=\u82f1\u6570\u5b57 ParmGenRegex.\u6570\u5024.text=\u6570\u5024 -ParmGenRegex.\u82F1\u5927\u5C0F\u6587\u5B57\u533A\u5225\u3057\u306A\u3044.text=\u82F1\u5927\u5C0F\u6587\u5B57\u533A\u5225\u3057\u306A\u3044 +ParmGenRegex.\u82f1\u5927\u5c0f\u6587\u5b57\u533a\u5225\u3057\u306a\u3044.text=\u82f1\u5927\u5c0f\u6587\u5b57\u533a\u5225\u3057\u306a\u3044 ParmGenRegex.MULTILINE.text=MULTILINE -ParmGenRegex.\u30C6\u30B9\u30C8.text=\u30C6\u30B9\u30C8 -ParmGenRegex.\u53D6\u6D88.text=\u53D6\u6D88 -ParmGenRegex.\u4FDD\u5B58.text=\u4FDD\u5B58 -ParmGenRegex.\u8FFD\u52A0.text=\u8FFD\u52A0 -ParmGenRegex.\uFF5E.text=\uFF5E +ParmGenRegex.\u30c6\u30b9\u30c8.text=\u30c6\u30b9\u30c8 +ParmGenRegex.\u53d6\u6d88.text=\u53d6\u6d88 +ParmGenRegex.\u4fdd\u5b58.text=\u4fdd\u5b58 +ParmGenRegex.\u8ffd\u52a0.text=\u8ffd\u52a0 +ParmGenRegex.\uff5e.text=\uff5e ParmGenRegex.\u6841\u6570.text=\u6841\u6570 -ParmGenRegex.\u30AA\u30EA\u30B8\u30CA\u30EB.text=\u30AA\u30EA\u30B8\u30CA\u30EB -ParmGenRegex.\u6B63\u898F\u8868\u73FE.text=\u6B63\u898F\u8868\u73FE -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8\u753B\u9762.text=\u30E1\u30C3\u30BB\u30FC\u30B8\u7DE8\u96C6\uFF0F\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8 +ParmGenRegex.\u30aa\u30ea\u30b8\u30ca\u30eb.text=\u30aa\u30ea\u30b8\u30ca\u30eb +ParmGenRegex.\u6b63\u898f\u8868\u73fe.text=\u6b63\u898f\u8868\u73fe +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8\u753b\u9762.text=\u30e1\u30c3\u30bb\u30fc\u30b8\u7de8\u96c6\uff0f\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8 ParmGenRegex.REDO.text=Redo ParmGenRegex.UNDO.text=Undo -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002.text=\u6B63\u898F\u8868\u73FE\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -ParmGenRegex.\u691C\u7D22\u7D50\u679C.text=\u691C\u7D22\u7D50\u679C -ParmGenRegex.\u7B87\u6240\u4E00\u81F4\u3057\u307E\u3057\u305F\u3002.text=\u7B87\u6240\u4E00\u81F4\u3057\u307E\u3057\u305F\u3002 -ParmGenRegex.\u6B63\u898F\u8868\u73FE\u30A8\u30E9\u30FC.text=\u6B63\u898F\u8868\u73FE\u30A8\u30E9\u30FC +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002.text=\u6b63\u898f\u8868\u73fe\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002 +ParmGenRegex.\u691c\u7d22\u7d50\u679c.text=\u691c\u7d22\u7d50\u679c +ParmGenRegex.\u7b87\u6240\u4e00\u81f4\u3057\u307e\u3057\u305f\u3002.text=\u7b87\u6240\u4e00\u81f4\u3057\u307e\u3057\u305f\u3002 +ParmGenRegex.\u6b63\u898f\u8868\u73fe\u30a8\u30e9\u30fc.text=\u6b63\u898f\u8868\u73fe\u30a8\u30e9\u30fc ParmGenRegex.comboModel_regextype_number.text=\u6570\u5024 -ParmGenRegex.comboModel_regextype_number_alnum.text=\u82F1\u6570\u5B57 -ParmGenRegex.comboModel_regextype_number_percent.text=\u5168\u89D2(%nn) -ParmGenRegex.comboModel_regextype_number_any.text=\u4EFB\u610F(.*) -ParmGenRegex.comboModel_regextype_number_lfany.text=\u6539\u884C\u542B\u3080\u4EFB\u610F -ParmGenRegex.comboModel_regextype_number_whitespc.text=\u30DB\u30EF\u30A4\u30C8\u30B9\u30DA\u30FC\u30B9 +ParmGenRegex.comboModel_regextype_number_alnum.text=\u82f1\u6570\u5b57 +ParmGenRegex.comboModel_regextype_number_percent.text=\u5168\u89d2(%nn) +ParmGenRegex.comboModel_regextype_number_any.text=\u4efb\u610f(.*) +ParmGenRegex.comboModel_regextype_number_lfany.text=\u6539\u884c\u542b\u3080\u4efb\u610f +ParmGenRegex.comboModel_regextype_number_whitespc.text=\u30db\u30ef\u30a4\u30c8\u30b9\u30da\u30fc\u30b9 ParmGenRegex.comboModel_regextype_number_jsonstr.text=JSON:"string" ParmGenRegex.comboModel_regextype_number_jsonnum.text=JSON:123 -ParmGenRegex.comboModel_columnpolicy_fixed.text=\u56FA\u5B9A -ParmGenRegex.comboModel_columnpolicy_\u4EE5\u4E0A\uFF08\u6700\u5C0F\u30DE\u30C3\u30C1\uFF09.text=\u4EE5\u4E0A\uFF08\u6700\u5C0F\u30DE\u30C3\u30C1\uFF09 -ParmGenRegex.comboModel_columnpolicy_\u4EE5\u4E0A\uFF08\u6700\u5927\u30DE\u30C3\u30C1\uFF09.text=\u4EE5\u4E0A\uFF08\u6700\u5927\u30DE\u30C3\u30C1\uFF09 -ParmGenRegex.comboModel_columnpolicy_\u4EE5\u4E0B.text=\u4EE5\u4E0B -ParmGenRegex.comboModel_columnpolicy_\u7BC4\u56F2.text=\u7BC4\u56F2 -ParmGenRegex.comboModel_columnpolicy_1\u4EE5\u4E0A\uFF08\u6700\u5C0F\u30DE\u30C3\u30C1\uFF09.text=1\u4EE5\u4E0A\uFF08\u6700\u5C0F\u30DE\u30C3\u30C1\uFF09 -ParmGenRegex.comboModel_columnpolicy_1\u4EE5\u4E0A\uFF08\u6700\u5927\u30DE\u30C3\u30C1\uFF09.text=1\u4EE5\u4E0A\uFF08\u6700\u5927\u30DE\u30C3\u30C1\uFF09 -ParmGenRegex.comboModel_columnpolicy_0\u4EE5\u4E0A\uFF08\u6700\u5C0F\u30DE\u30C3\u30C1\uFF09.text=0\u4EE5\u4E0A\uFF08\u6700\u5C0F\u30DE\u30C3\u30C1\uFF09 -ParmGenRegex.comboModel_columnpolicy_0\u4EE5\u4E0A\uFF08\u6700\u5927\u30DE\u30C3\u30C1\uFF09.text=0\u4EE5\u4E0A\uFF08\u6700\u5927\u30DE\u30C3\u30C1\uFF09 -ParmGenRegex.insCR.text =CR\u633F\u5165 -ParmGenTokenJDialog.\u8FFD\u8DE1\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002.text=\u8FFD\u8DE1\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -ParmGenTokenJDialog.title1.text=\u7A2E\u985E -ParmGenTokenJDialog.title3.text=\u51FA\u73FE\u9806\u5E8F -ParmGenTop.PARMGEN\u30C8\u30C3\u30D7\u753B\u9762.text=Custom Parameter Config -ParmGenTop.\u30ED\u30FC\u30C9.text=\u30ED\u30FC\u30C9 -ParmGenTop.\u6CE8\u610F\uFF1A\u51E6\u7406\u5B9F\u884C\u524D\u306B\u3001\u3053\u306E\u753B\u9762\u306F\u4FDD\u5B58\u307E\u305F\u306F\u9589\u3058\u308B\u30DC\u30BF\u30F3\u3067\u9589\u3058\u3066\u304F\u3060\u3055\u3044\u3002.text=\u6CE8\u610F\uFF1A\u51E6\u7406\u5B9F\u884C\u524D\u306B\u3001\u3053\u306E\u753B\u9762\u306F\u4FDD\u5B58\u307E\u305F\u306F\u9589\u3058\u308B\u30DC\u30BF\u30F3\u3067\u9589\u3058\u3066\u304F\u3060\u3055\u3044\u3002 +ParmGenRegex.comboModel_columnpolicy_fixed.text=\u56fa\u5b9a +ParmGenRegex.comboModel_columnpolicy_\u4ee5\u4e0a\uff08\u6700\u5c0f\u30de\u30c3\u30c1\uff09.text=\u4ee5\u4e0a\uff08\u6700\u5c0f\u30de\u30c3\u30c1\uff09 +ParmGenRegex.comboModel_columnpolicy_\u4ee5\u4e0a\uff08\u6700\u5927\u30de\u30c3\u30c1\uff09.text=\u4ee5\u4e0a\uff08\u6700\u5927\u30de\u30c3\u30c1\uff09 +ParmGenRegex.comboModel_columnpolicy_\u4ee5\u4e0b.text=\u4ee5\u4e0b +ParmGenRegex.comboModel_columnpolicy_\u7bc4\u56f2.text=\u7bc4\u56f2 +ParmGenRegex.comboModel_columnpolicy_1\u4ee5\u4e0a\uff08\u6700\u5c0f\u30de\u30c3\u30c1\uff09.text=1\u4ee5\u4e0a\uff08\u6700\u5c0f\u30de\u30c3\u30c1\uff09 +ParmGenRegex.comboModel_columnpolicy_1\u4ee5\u4e0a\uff08\u6700\u5927\u30de\u30c3\u30c1\uff09.text=1\u4ee5\u4e0a\uff08\u6700\u5927\u30de\u30c3\u30c1\uff09 +ParmGenRegex.comboModel_columnpolicy_0\u4ee5\u4e0a\uff08\u6700\u5c0f\u30de\u30c3\u30c1\uff09.text=0\u4ee5\u4e0a\uff08\u6700\u5c0f\u30de\u30c3\u30c1\uff09 +ParmGenRegex.comboModel_columnpolicy_0\u4ee5\u4e0a\uff08\u6700\u5927\u30de\u30c3\u30c1\uff09.text=0\u4ee5\u4e0a\uff08\u6700\u5927\u30de\u30c3\u30c1\uff09 +ParmGenRegex.insCR.text =CR\u633f\u5165 +ParmGenRegex.SelectPattern.text=\u9078\u629e\u3057\u305f\u30c6\u30ad\u30b9\u30c8\u3067\u6b63\u898f\u8868\u73fe\u3092\u66f4\u65b0 +ParmGenTokenJDialog.\u8ffd\u8de1\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002.text=\u8ffd\u8de1\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +ParmGenTokenJDialog.title1.text=\u7a2e\u985e +ParmGenTokenJDialog.title3.text=\u51fa\u73fe\u9806\u5e8f +ParmGenTop.PARMGEN\u30c8\u30c3\u30d7\u753b\u9762.text=Custom Parameter Config +ParmGenTop.\u30ed\u30fc\u30c9.text=\u30ed\u30fc\u30c9 +ParmGenTop.\u6ce8\u610f\uff1a\u51e6\u7406\u5b9f\u884c\u524d\u306b\u3001\u3053\u306e\u753b\u9762\u306f\u4fdd\u5b58\u307e\u305f\u306f\u9589\u3058\u308b\u30dc\u30bf\u30f3\u3067\u9589\u3058\u3066\u304f\u3060\u3055\u3044\u3002.text=\u6ce8\u610f\uff1a\u51e6\u7406\u5b9f\u884c\u524d\u306b\u3001\u3053\u306e\u753b\u9762\u306f\u4fdd\u5b58\u307e\u305f\u306f\u9589\u3058\u308b\u30dc\u30bf\u30f3\u3067\u9589\u3058\u3066\u304f\u3060\u3055\u3044\u3002 ParmGenTop.REPEATER.text=repeater ParmGenTop.SCANNER.text=scanner ParmGenTop.INTRUDER.text=intruder ParmGenTop.PROXY.text=Proxy -ParmGenTop.\u30ED\u30B0\u30D5\u30A1\u30A4\u30EB\u51FA\u529B.text=\u30ED\u30B0\u30D5\u30A1\u30A4\u30EB\u51FA\u529B -ParmGenTop.\u9589\u3058\u308B.text=\u9589\u3058\u308B -ParmGenTop.\u4FDD\u5B58.text=\u4FDD\u5B58 -ParmGenTop.\u524A\u9664.text=\u524A\u9664 -ParmGenTop.\u4FEE\u6B63.text=\u4FEE\u6B63 -ParmGenTop.\u65B0\u898F.text=\u65B0\u898F -ParmGenTop.\u6587\u5B57\u30B3\u30FC\u30C9.text=\u6587\u5B57\u30B3\u30FC\u30C9 -ParmGenTop.title0.text=\u505C\u6B62 -ParmGenTop.title1.text=\u7F6E\u63DB\u5BFE\u8C61\u30D1\u30B9 -ParmGenTop.title2.text=\u521D\u671F\u5024/CSV\u30D5\u30A1\u30A4\u30EB +ParmGenTop.\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u51fa\u529b.text=\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u51fa\u529b +ParmGenTop.\u9589\u3058\u308b.text=\u9589\u3058\u308b +ParmGenTop.\u4fdd\u5b58.text=\u4fdd\u5b58 +ParmGenTop.\u524a\u9664.text=\u524a\u9664 +ParmGenTop.\u4fee\u6b63.text=\u4fee\u6b63 +ParmGenTop.\u65b0\u898f.text=\u65b0\u898f +ParmGenTop.\u6587\u5b57\u30b3\u30fc\u30c9.text=\u6587\u5b57\u30b3\u30fc\u30c9 +ParmGenTop.title0.text=\u505c\u6b62 +ParmGenTop.title1.text=\u7f6e\u63db\u5bfe\u8c61\u30d1\u30b9 +ParmGenTop.title2.text=\u521d\u671f\u5024/CSV\u30d5\u30a1\u30a4\u30eb ParmGenTop.title3.text=\u6841\u6570 -ParmGenTop.title4.text=\u6A5F\u80FD -ParmGenTop.title5.text=\u30D1\u30BF\u30FC\u30F3\u30EA\u30B9\u30C8 -ParmGenTop.title6.text=\u73FE\u5728\u5024 -ParmGenTop.typeoftool.text=\u5BFE\u8C61\u7BC4\u56F2 -ResponseTracker.\u30EC\u30B9\u30DD\u30F3\u30B9\u8FFD\u8DE1.text=\u6B63\u898F\u8868\u73FE\u6307\u5B9A\u8FFD\u8DE1\u30D1\u30E9\u30E1\u30FC\u30BF\u62BD\u51FA -ResponseTracker.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E -ResponseTracker.\u56FA\u5B9A\u9577.text=\u56FA\u5B9A\u9577 -ResponseTracker.\u30EC\u30B9\u30DD\u30F3\u30B9.text=\u30EC\u30B9\u30DD\u30F3\u30B9 -ResponseTracker.\u30AD\u30E3\u30F3\u30BB\u30EB.text=\u30AD\u30E3\u30F3\u30BB\u30EB -ResponseTracker.3)\u6B21\u3078.text=3)\u6B21\u3078 -ResponseTracker.1)\u5024\u9078\u629E.text=1)\u5024\u9078\u629E -ResponseTracker.\uFF35\uFF32\uFF2C.text=\uFF35\uFF32\uFF2C -ResponseTracker.\ 1)\u8868\u793A\u3055\u308C\u305F\u30EC\u30B9\u30DD\u30F3\u30B9\u306E\u8FFD\u8DE1\u3059\u308B\u5024\u3092\u30DE\u30A6\u30B9\u3067\u9078\u629E\u3057\u3001\u5024\u9078\u629E\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002
\ 2)\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8\u30DC\u30BF\u30F3\u3067\u3001\u5024\u304C\u9078\u629E\u3055\u308C\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3059\u308B\u3002
\ 3)\u6B21\u3078\u30DC\u30BF\u30F3\u3067\u3001\u30EA\u30AF\u30A8\u30B9\u30C8\u8A2D\u5B9A\u753B\u9762\u3078\u3002.text= 1)\u8868\u793A\u3055\u308C\u305F\u30EC\u30B9\u30DD\u30F3\u30B9\u306E\u8FFD\u8DE1\u3059\u308B\u5024\u3092\u30DE\u30A6\u30B9\u3067\u9078\u629E\u3057\u3001\u5024\u9078\u629E\u30DC\u30BF\u30F3\u3092\u62BC\u3059\u3002
2)\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8\u30DC\u30BF\u30F3\u3067\u3001\u5024\u304C\u9078\u629E\u3055\u308C\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3059\u308B\u3002
3)\u6B21\u3078\u30DC\u30BF\u30F3\u3067\u3001\u30EA\u30AF\u30A8\u30B9\u30C8\u8A2D\u5B9A\u753B\u9762\u3078\u3002 -ResponseTracker.2)\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8.text=2)\u6B63\u898F\u8868\u73FE\u30C6\u30B9\u30C8 +ParmGenTop.title4.text=\u6a5f\u80fd +ParmGenTop.title5.text=\u30d1\u30bf\u30fc\u30f3\u30ea\u30b9\u30c8 +ParmGenTop.title6.text=\u73fe\u5728\u5024 +ParmGenTop.typeoftool.text=\u5bfe\u8c61\u7bc4\u56f2 +ResponseTracker.\u30ec\u30b9\u30dd\u30f3\u30b9\u8ffd\u8de1.text=\u6b63\u898f\u8868\u73fe\u6307\u5b9a\u8ffd\u8de1\u30d1\u30e9\u30e1\u30fc\u30bf\u62bd\u51fa +ResponseTracker.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e +ResponseTracker.\u56fa\u5b9a\u9577.text=\u56fa\u5b9a\u9577 +ResponseTracker.\u30ec\u30b9\u30dd\u30f3\u30b9.text=\u30ec\u30b9\u30dd\u30f3\u30b9 +ResponseTracker.\u30ad\u30e3\u30f3\u30bb\u30eb.text=\u30ad\u30e3\u30f3\u30bb\u30eb +ResponseTracker.3)\u6b21\u3078.text=3)\u6b21\u3078 +ResponseTracker.1)\u5024\u9078\u629e.text=1)\u5024\u9078\u629e +ResponseTracker.\uff35\uff32\uff2c.text=\uff35\uff32\uff2c +ResponseTracker.\ 1)\u8868\u793a\u3055\u308c\u305f\u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u8ffd\u8de1\u3059\u308b\u5024\u3092\u30de\u30a6\u30b9\u3067\u9078\u629e\u3057\u3001\u5024\u9078\u629e\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002
\ 2)\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8\u30dc\u30bf\u30f3\u3067\u3001\u5024\u304c\u9078\u629e\u3055\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002
\ 3)\u6b21\u3078\u30dc\u30bf\u30f3\u3067\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u8a2d\u5b9a\u753b\u9762\u3078\u3002.text= 1)\u8868\u793a\u3055\u308c\u305f\u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u8ffd\u8de1\u3059\u308b\u5024\u3092\u30de\u30a6\u30b9\u3067\u9078\u629e\u3057\u3001\u5024\u9078\u629e\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3002
2)\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8\u30dc\u30bf\u30f3\u3067\u3001\u5024\u304c\u9078\u629e\u3055\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002
3)\u6b21\u3078\u30dc\u30bf\u30f3\u3067\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u8a2d\u5b9a\u753b\u9762\u3078\u3002 +ResponseTracker.2)\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8.text=2)\u6b63\u898f\u8868\u73fe\u30c6\u30b9\u30c8 SelectRequest.RESPONSE.text=response SelectRequest.REQUEST.text=request -SelectRequest.\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u4E0B\u8A18\u4E00\u89A7\u304B\u3089\u9078\u629E\u3057\u3001\uFF2F\uFF2B\u30DC\u30BF\u30F3\u3067\u9078\u629E\u3002.text=\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u4E0B\u8A18\u4E00\u89A7\u304B\u3089\u9078\u629E\u3057\u3001\uFF2F\uFF2B\u30DC\u30BF\u30F3\u3067\u9078\u629E\u3002 -SelectRequest.\u53D6\u6D88.text=\u53D6\u6D88 +SelectRequest.\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u4e0b\u8a18\u4e00\u89a7\u304b\u3089\u9078\u629e\u3057\u3001\uff2f\uff2b\u30dc\u30bf\u30f3\u3067\u9078\u629e\u3002.text=\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u4e0b\u8a18\u4e00\u89a7\u304b\u3089\u9078\u629e\u3057\u3001\uff2f\uff2b\u30dc\u30bf\u30f3\u3067\u9078\u629e\u3002 +SelectRequest.\u53d6\u6d88.text=\u53d6\u6d88 SelectRequest.OK.text=OK -SelectRequest.\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E.text=\u30EA\u30AF\u30A8\u30B9\u30C8\u9078\u629E +SelectRequest.\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e.text=\u30ea\u30af\u30a8\u30b9\u30c8\u9078\u629e SelectRequest.STATUS.text=Status SelectRequest.URL.text=URL SelectRequest.METHOD.text=Method -ParmFileFilter.PARMGEN\u8A2D\u5B9A.text=MacroBuilderJSON +ParmFileFilter.PARMGEN\u8a2d\u5b9a.text=MacroBuilderJSON ParmGen.TAMPERPROXY.text=TamperProxy -ParmGen.\u8FFD\u8DE1.text=\u8FFD\u8DE1 -ParmGen.\u4E71\u6570.text=\u4E71\u6570 -ParmGen.CSV\u30D5\u30A1\u30A4\u30EB\u6607\u9806.text=CSV\u30D5\u30A1\u30A4\u30EB\u6607\u9806 +ParmGen.\u8ffd\u8de1.text=\u8ffd\u8de1 +ParmGen.\u4e71\u6570.text=\u4e71\u6570 +ParmGen.CSV\u30d5\u30a1\u30a4\u30eb\u6607\u9806.text=CSV\u30d5\u30a1\u30a4\u30eb\u6607\u9806 ParmGen.\u6570\u5024\u6607\u9806.text=\u6570\u5024\u6607\u9806 -ParmGen.parameter_regex_err2.text=ERROR*\u30D1\u30E9\u30E1\u30FC\u30BF\u6B63\u898F\u8868\u73FE[{0}]\n [{1}={2}] -> \u8FFD\u8DE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 -ParmGen.parameter_regex_err1.text=ERROR*\u30D1\u30E9\u30E1\u30FC\u30BF\u6B63\u898F\u8868\u73FE[{0}]\n [{1}={2}] -> \u8FFD\u8DE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 -ParmGen.parameter_regex_msg1.text=******\u30D1\u30E9\u30E1\u30FC\u30BF\u6B63\u898F\u8868\u73FE[{0}]\n Value[{1}]->[{2}={3}] -ParmGen.parameter_regex_msg2.text=******\u30D1\u30E9\u30E1\u30FC\u30BF\u6B63\u898F\u8868\u73FE[{0}]\n Value[{1}]->[{2}={3}] -LangSelectDialog.\u8868\u793A\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002.text=\u8868\u793A\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +ParmGen.parameter_regex_err2.text=ERROR*\u30d1\u30e9\u30e1\u30fc\u30bf\u6b63\u898f\u8868\u73fe[{0}]\n [{1}={2}] -> \u8ffd\u8de1\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +ParmGen.parameter_regex_err1.text=ERROR*\u30d1\u30e9\u30e1\u30fc\u30bf\u6b63\u898f\u8868\u73fe[{0}]\n [{1}={2}] -> \u8ffd\u8de1\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +ParmGen.parameter_regex_msg1.text=******\u30d1\u30e9\u30e1\u30fc\u30bf\u6b63\u898f\u8868\u73fe[{0}]\n Value[{1}]->[{2}={3}] +ParmGen.parameter_regex_msg2.text=******\u30d1\u30e9\u30e1\u30fc\u30bf\u6b63\u898f\u8868\u73fe[{0}]\n Value[{1}]->[{2}={3}] +LangSelectDialog.\u8868\u793a\u8a00\u8a9e\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002.text=\u8868\u793a\u8a00\u8a9e\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002