mirror of
https://github.com/rapid7/metasploit-framework
synced 2024-11-12 11:52:01 +01:00
Multiple-session script execution fixed.
Build config updated for netbeans 6.9 and current tree. git-svn-id: file:///home/svn/framework3/trunk@9830 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
parent
fb57dde60c
commit
85d07af548
Binary file not shown.
@ -55,6 +55,7 @@ is divided into following sections:
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
|
||||
<available file="${manifest.file}" property="manifest.available"/>
|
||||
<available file="${application.splash}" property="splashscreen.available"/>
|
||||
<condition property="main.class.available">
|
||||
<and>
|
||||
<isset property="main.class"/>
|
||||
@ -83,23 +84,40 @@ is divided into following sections:
|
||||
<isset property="do.mkdist"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+mkdist.available">
|
||||
<condition property="manifest.available+main.class+mkdist.available+splashscreen.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available}"/>
|
||||
<isset property="do.mkdist"/>
|
||||
<istrue value="${manifest.available+main.class+mkdist.available}"/>
|
||||
<istrue value="${splashscreen.available}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available-mkdist.available">
|
||||
<or>
|
||||
<istrue value="${manifest.available}"/>
|
||||
<isset property="do.mkdist"/>
|
||||
</or>
|
||||
<condition property="do.archive">
|
||||
<not>
|
||||
<istrue value="${jar.archive.disabled}"/>
|
||||
</not>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class-mkdist.available">
|
||||
<or>
|
||||
<condition property="do.archive+manifest.available">
|
||||
<and>
|
||||
<isset property="manifest.available"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<isset property="do.mkdist"/>
|
||||
</or>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class+mkdist.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class+mkdist.available}"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class+mkdist.available+splashscreen.available}"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="have.tests">
|
||||
<or>
|
||||
@ -156,6 +174,8 @@ is divided into following sections:
|
||||
<length length="0" string="${endorsed.classpath}" when="greater"/>
|
||||
</condition>
|
||||
<property name="javac.fork" value="false"/>
|
||||
<property name="jar.index" value="false"/>
|
||||
<available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
|
||||
</target>
|
||||
<target name="-post-init">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
@ -182,11 +202,53 @@ is divided into following sections:
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-javac">
|
||||
<target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
|
||||
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<attribute default="${javac.processorpath}" name="processorpath"/>
|
||||
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
<attribute default="${empty.dir}" name="sourcepath"/>
|
||||
<attribute default="${empty.dir}" name="gensrcdir"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<property location="${build.dir}/empty" name="empty.dir"/>
|
||||
<mkdir dir="${empty.dir}"/>
|
||||
<mkdir dir="@{apgeneratedsrcdir}"/>
|
||||
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
|
||||
<src>
|
||||
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</src>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<compilerarg line="${javac.compilerargs}"/>
|
||||
<compilerarg value="-processorpath"/>
|
||||
<compilerarg path="@{processorpath}:${empty.dir}"/>
|
||||
<compilerarg line="${ap.processors.internal}"/>
|
||||
<compilerarg line="${annotation.processing.processor.options}"/>
|
||||
<compilerarg value="-s"/>
|
||||
<compilerarg path="@{apgeneratedsrcdir}"/>
|
||||
<compilerarg line="${ap.proc.none.internal}"/>
|
||||
<customize/>
|
||||
</javac>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
|
||||
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<attribute default="${javac.processorpath}" name="processorpath"/>
|
||||
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
@ -211,6 +273,8 @@ is divided into following sections:
|
||||
</javac>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
|
||||
<macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
@ -358,14 +422,65 @@ is divided into following sections:
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-copylibs">
|
||||
<macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to=""/>
|
||||
</pathconvert>
|
||||
<pathconvert pathsep=" " property="jar.classpath">
|
||||
<path path="${run.classpath.without.build.classes.dir}"/>
|
||||
<chainedmapper>
|
||||
<flattenmapper/>
|
||||
<globmapper from="*" to="lib/*"/>
|
||||
</chainedmapper>
|
||||
</pathconvert>
|
||||
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
|
||||
<copylibs compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
<manifest>
|
||||
<attribute name="Class-Path" value="${jar.classpath}"/>
|
||||
<customize/>
|
||||
</manifest>
|
||||
</copylibs>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-presetdef-jar">
|
||||
<presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<jar compress="${jar.compress}" jarfile="${dist.jar}">
|
||||
<jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
|
||||
<j2seproject1:fileset dir="${build.classes.dir}"/>
|
||||
</jar>
|
||||
</presetdef>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
|
||||
<target name="-init-ap-cmdline-properties">
|
||||
<property name="annotation.processing.enabled" value="true"/>
|
||||
<property name="annotation.processing.processors.list" value=""/>
|
||||
<property name="annotation.processing.processor.options" value=""/>
|
||||
<property name="annotation.processing.run.all.processors" value="true"/>
|
||||
<property name="javac.processorpath" value="${javac.classpath}"/>
|
||||
<property name="javac.test.processorpath" value="${javac.test.classpath}"/>
|
||||
<condition property="ap.supported.internal" value="true">
|
||||
<not>
|
||||
<matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
|
||||
</not>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
|
||||
<condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
|
||||
<isfalse value="${annotation.processing.run.all.processors}"/>
|
||||
</condition>
|
||||
<condition else="" property="ap.proc.none.internal" value="-proc:none">
|
||||
<isfalse value="${annotation.processing.enabled}"/>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
|
||||
<property name="ap.cmd.line.internal" value=""/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
|
||||
<!--
|
||||
===================
|
||||
COMPILATION SECTION
|
||||
@ -409,12 +524,18 @@ is divided into following sections:
|
||||
</pathconvert>
|
||||
<j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
|
||||
<j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
|
||||
<copy todir="${build.classes.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target if="has.persistence.xml" name="-copy-persistence-xml">
|
||||
<mkdir dir="${build.classes.dir}/META-INF"/>
|
||||
<copy todir="${build.classes.dir}/META-INF">
|
||||
<fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
@ -447,13 +568,13 @@ is divided into following sections:
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available">
|
||||
<j2seproject1:jar/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
|
||||
<j2seproject1:jar manifest="${manifest.file}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
|
||||
<j2seproject1:jar manifest="${manifest.file}">
|
||||
<j2seproject1:manifest>
|
||||
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
|
||||
@ -468,78 +589,35 @@ is divided into following sections:
|
||||
</pathconvert>
|
||||
<echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to=""/>
|
||||
</pathconvert>
|
||||
<pathconvert pathsep=" " property="jar.classpath">
|
||||
<path path="${run.classpath.without.build.classes.dir}"/>
|
||||
<chainedmapper>
|
||||
<flattenmapper/>
|
||||
<globmapper from="*" to="lib/*"/>
|
||||
</chainedmapper>
|
||||
</pathconvert>
|
||||
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
|
||||
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
<manifest>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available" name="-do-jar-with-libraries-and-splashscreen">
|
||||
<basename file="${application.splash}" property="splashscreen.basename"/>
|
||||
<mkdir dir="${build.classes.dir}/META-INF"/>
|
||||
<copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
|
||||
<j2seproject3:copylibs>
|
||||
<customize>
|
||||
<attribute name="Main-Class" value="${main.class}"/>
|
||||
<attribute name="Class-Path" value="${jar.classpath}"/>
|
||||
</manifest>
|
||||
</copylibs>
|
||||
<attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
|
||||
</customize>
|
||||
</j2seproject3:copylibs>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<echo>java -jar "${dist.jar.resolved}"</echo>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+mkdist.available" name="-do-jar-with-libraries-without-mainclass" unless="main.class.available">
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to=""/>
|
||||
</pathconvert>
|
||||
<pathconvert pathsep=" " property="jar.classpath">
|
||||
<path path="${run.classpath.without.build.classes.dir}"/>
|
||||
<chainedmapper>
|
||||
<flattenmapper/>
|
||||
<globmapper from="*" to="lib/*"/>
|
||||
</chainedmapper>
|
||||
</pathconvert>
|
||||
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
|
||||
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
<manifest>
|
||||
<attribute name="Class-Path" value="${jar.classpath}"/>
|
||||
</manifest>
|
||||
</copylibs>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.mkdist" name="-do-jar-with-libraries-without-manifest" unless="manifest.available">
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to=""/>
|
||||
</pathconvert>
|
||||
<pathconvert pathsep=" " property="jar.classpath">
|
||||
<path path="${run.classpath.without.build.classes.dir}"/>
|
||||
<chainedmapper>
|
||||
<flattenmapper/>
|
||||
<globmapper from="*" to="lib/*"/>
|
||||
</chainedmapper>
|
||||
</pathconvert>
|
||||
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
|
||||
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
<manifest>
|
||||
<attribute name="Class-Path" value="${jar.classpath}"/>
|
||||
</manifest>
|
||||
</copylibs>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries" unless="splashscreen.available">
|
||||
<j2seproject3:copylibs>
|
||||
<customize>
|
||||
<attribute name="Main-Class" value="${main.class}"/>
|
||||
</customize>
|
||||
</j2seproject3:copylibs>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<echo>java -jar "${dist.jar.resolved}"</echo>
|
||||
</target>
|
||||
<target name="-post-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-do-jar-with-libraries-without-mainclass,-do-jar-with-libraries-without-manifest,-post-jar" description="Build JAR." name="jar"/>
|
||||
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries-and-splashscreen,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
|
||||
<!--
|
||||
=================
|
||||
EXECUTION SECTION
|
||||
@ -609,7 +687,7 @@ is divided into following sections:
|
||||
JAVADOC SECTION
|
||||
===============
|
||||
-->
|
||||
<target depends="init" name="-javadoc-build">
|
||||
<target depends="init" if="have.sources" name="-javadoc-build">
|
||||
<mkdir dir="${dist.javadoc.dir}"/>
|
||||
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
|
||||
<classpath>
|
||||
@ -643,7 +721,7 @@ is divided into following sections:
|
||||
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
|
||||
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
@ -660,7 +738,7 @@ is divided into following sections:
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
|
||||
<j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
|
@ -1,8 +1,8 @@
|
||||
build.xml.data.CRC32=84c180dd
|
||||
build.xml.script.CRC32=7b4769ae
|
||||
build.xml.stylesheet.CRC32=958a1d3e@1.32.1.45
|
||||
build.xml.stylesheet.CRC32=28e38971@1.38.1.45
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=84c180dd
|
||||
nbproject/build-impl.xml.script.CRC32=f85285ea
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=576378a2@1.32.1.45
|
||||
nbproject/build-impl.xml.script.CRC32=dcb7e251
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=78c6a6ee@1.38.1.45
|
||||
|
@ -17,7 +17,7 @@ debug.classpath=\
|
||||
debug.test.classpath=\
|
||||
${run.test.classpath}
|
||||
# This directory is removed when the project is cleaned:
|
||||
dist.dir=dist
|
||||
dist.dir=../../../../data/gui/
|
||||
dist.jar=${dist.dir}/msfgui.jar
|
||||
dist.javadoc.dir=${dist.dir}/javadoc
|
||||
endorsed.classpath=
|
||||
|
@ -11,7 +11,7 @@ public class AutorouteOptionsDialog extends OptionsDialog {
|
||||
super(parent.getFrame(), "Autoroute Options", modal);
|
||||
initComponents();
|
||||
try{
|
||||
ipField.setText(parent.session.get("tunnel_peer").toString().split(":")[0]+"/24");
|
||||
ipField.setText("192.168.1.1/24");
|
||||
}catch(NullPointerException nex){
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<?xml version="1.1" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.5" maxVersion="1.7">
|
||||
<Form version="1.6" maxVersion="1.7">
|
||||
<NonVisualComponents>
|
||||
<Container class="javax.swing.JPanel" name="mainPanel">
|
||||
<Properties>
|
||||
@ -20,7 +20,7 @@
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<Component id="splitPane" pref="460" max="32767" attributes="0"/>
|
||||
<Component id="splitPane" pref="462" max="32767" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
@ -57,7 +57,7 @@
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jScrollPane1" alignment="0" pref="37" max="32767" attributes="0"/>
|
||||
<Component id="jScrollPane1" alignment="0" pref="38" max="32767" attributes="0"/>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="jobsLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
@ -70,7 +70,7 @@
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jobsLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane1" pref="411" max="32767" attributes="0"/>
|
||||
<Component id="jScrollPane1" pref="417" max="32767" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
@ -124,10 +124,10 @@
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="sessionsLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="710" max="32767" attributes="0"/>
|
||||
<EmptySpace pref="717" max="32767" attributes="0"/>
|
||||
<Component id="searchButton" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Component id="jScrollPane2" alignment="1" pref="845" max="32767" attributes="0"/>
|
||||
<Component id="jScrollPane2" alignment="1" pref="843" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
@ -141,7 +141,7 @@
|
||||
<Component id="searchButton" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane2" pref="412" max="32767" attributes="0"/>
|
||||
<Component id="jScrollPane2" pref="417" max="32767" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
@ -173,6 +173,9 @@
|
||||
<TableColumnModel selectionModel="0"/>
|
||||
</Property>
|
||||
<Property name="name" type="java.lang.String" value="sessionsTable" noResource="true"/>
|
||||
<Property name="selectionModel" type="javax.swing.ListSelectionModel" editor="org.netbeans.modules.form.editors2.JTableSelectionModelEditor">
|
||||
<JTableSelectionModel selectionMode="2"/>
|
||||
</Property>
|
||||
<Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor">
|
||||
<TableHeader reorderingAllowed="true" resizingAllowed="true"/>
|
||||
</Property>
|
||||
@ -417,7 +420,7 @@
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="statusMessageLabel" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="736" max="32767" attributes="0"/>
|
||||
<EmptySpace pref="725" max="32767" attributes="0"/>
|
||||
<Component id="progressBar" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="statusAnimationLabel" min="-2" max="-2" attributes="0"/>
|
||||
|
@ -48,7 +48,7 @@ public class MainFrame extends FrameView {
|
||||
private SessionsTable sessionsTableModel;
|
||||
private JPopupMenu jobPopupMenu, shellPopupMenu, meterpreterPopupMenu, sessionPopupMenu;
|
||||
private String clickedJob;
|
||||
public Map session;
|
||||
public Map[] selectedSessions;
|
||||
private SearchWindow searchWin;
|
||||
|
||||
public MainFrame(SingleFrameApplication app) {
|
||||
@ -132,8 +132,10 @@ public class MainFrame extends FrameView {
|
||||
sessionsPollTimer = new SwingWorker(){
|
||||
@Override
|
||||
protected List doInBackground() throws Exception {
|
||||
int delay = 500;
|
||||
while(true){
|
||||
try {
|
||||
Thread.sleep(delay);
|
||||
//update sessions
|
||||
Map slist = (Map) rpcConn.execute("session.list");
|
||||
ArrayList sessionList = new ArrayList();
|
||||
@ -165,9 +167,9 @@ public class MainFrame extends FrameView {
|
||||
i++;
|
||||
}
|
||||
publish((Object)jobStrings);
|
||||
Thread.sleep(500);
|
||||
} catch (MsfException xre) {
|
||||
JOptionPane.showMessageDialog(null, xre);
|
||||
delay *= 2;
|
||||
} catch (InterruptedException iex){
|
||||
}
|
||||
}
|
||||
@ -209,7 +211,7 @@ public class MainFrame extends FrameView {
|
||||
searchNext = false;
|
||||
Component [] compsCopy = comps;
|
||||
for (Component menu : compsCopy) {
|
||||
if (menu.getName().equals(names[i])) {
|
||||
if (menu.getName().equals(names[i]) && menu instanceof JMenu) {
|
||||
if (i < names.length - 1)
|
||||
currentMenu = (JMenu) menu;
|
||||
found = true;
|
||||
@ -429,6 +431,7 @@ public class MainFrame extends FrameView {
|
||||
}
|
||||
));
|
||||
sessionsTable.setName("sessionsTable"); // NOI18N
|
||||
sessionsTable.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
|
||||
jScrollPane2.setViewportView(sessionsTable);
|
||||
|
||||
searchButton.setText(resourceMap.getString("searchButton.text")); // NOI18N
|
||||
@ -723,9 +726,9 @@ public class MainFrame extends FrameView {
|
||||
private void killSessionsMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_killSessionsMenuItemActionPerformed
|
||||
for( Object sesObj : sessionsTableModel.sessions ){
|
||||
try{
|
||||
rpcConn.execute("session.stop", new Object[]{session.get("id")});
|
||||
rpcConn.execute("session.stop", new Object[]{((Map)sesObj).get("id")});
|
||||
} catch (MsfException xre) {
|
||||
statusMessageLabel.setText("Error killing session "+session.get("id"));
|
||||
statusMessageLabel.setText("Error killing session "+((Map)sesObj).get("id"));
|
||||
}
|
||||
}
|
||||
}//GEN-LAST:event_killSessionsMenuItemActionPerformed
|
||||
@ -761,7 +764,8 @@ public class MainFrame extends FrameView {
|
||||
return RpcConnection.startRpcConn(this);
|
||||
}
|
||||
public void showInteractWindow() {
|
||||
((InteractWindow)(sessionPopupMap.get(session.get("uuid")))).setVisible(true);
|
||||
for(Map session : selectedSessions)
|
||||
((InteractWindow)(sessionPopupMap.get(session.get("uuid")))).setVisible(true);
|
||||
}
|
||||
/* Master function to setup popup menus for jobs and sessions
|
||||
* First handles jobs, then shell sessions, then meterpreter sessions,
|
||||
@ -804,18 +808,19 @@ public class MainFrame extends FrameView {
|
||||
//SESSION POPUP MENUS
|
||||
sessionsTable.addMouseListener(new PopupMouseListener() {
|
||||
public void doubleClicked(MouseEvent e){ //show interaction window on double-click
|
||||
int clickedSession = sessionsTable.rowAtPoint(e.getPoint());
|
||||
if (clickedSession == -1)
|
||||
return;
|
||||
session = (Map) sessionsTableModel.getSessionList().get(clickedSession);
|
||||
showInteractWindow();
|
||||
int[] selrows = sessionsTable.getSelectedRows();
|
||||
selectedSessions = new HashMap[selrows.length];
|
||||
for(int i = 0; i < selrows.length; i++)
|
||||
selectedSessions[i] = (Map)sessionsTableModel.getSessionList().get(selrows[i]);
|
||||
}
|
||||
public void showPopup(MouseEvent e) {
|
||||
//must have a row selected
|
||||
int clickedSession = sessionsTable.rowAtPoint(e.getPoint());
|
||||
if (!e.isPopupTrigger() || clickedSession == -1)
|
||||
if (!e.isPopupTrigger())
|
||||
return;
|
||||
session = (Map) sessionsTableModel.getSessionList().get(clickedSession);
|
||||
doubleClicked(e);
|
||||
if(selectedSessions.length == 0)
|
||||
return;
|
||||
Map session = selectedSessions[0];
|
||||
if (session.get("type").equals("shell"))
|
||||
shellPopupMenu.show(e.getComponent(), e.getX(), e.getY());
|
||||
else if (session.get("type").equals("meterpreter"))
|
||||
@ -837,13 +842,13 @@ public class MainFrame extends FrameView {
|
||||
|
||||
//Setup meterpreter menu
|
||||
meterpreterPopupMenu = new JPopupMenu();
|
||||
addSessionItem("Access Filesystem",meterpreterPopupMenu,new RpcAction() {
|
||||
public void action() throws Exception {
|
||||
addSessionItem("Access Filesystem",meterpreterPopupMenu,new RpcAction(this) {
|
||||
public void action(Map session) throws Exception {
|
||||
new MeterpFileBrowser(rpcConn, session, sessionPopupMap).setVisible(true);
|
||||
}
|
||||
});
|
||||
addSessionItem("Processes",meterpreterPopupMenu,new RpcAction() {
|
||||
public void action() throws Exception {
|
||||
addSessionItem("Processes",meterpreterPopupMenu,new RpcAction(this) {
|
||||
public void action(Map session) throws Exception {
|
||||
new ProcessList(rpcConn,session,sessionPopupMap).setVisible(true);
|
||||
}
|
||||
});
|
||||
@ -863,8 +868,8 @@ public class MainFrame extends FrameView {
|
||||
meterpreterPopupMenu.add(monitorMenu);
|
||||
addScript("Start keylogger",monitorMenu,"keylogrecorder");
|
||||
addScript("Start packet recorder",monitorMenu,"packetrecorder");
|
||||
addScript("Screenshot",monitorMenu,new RpcAction() {
|
||||
public void action() throws Exception {
|
||||
addScript("Screenshot",monitorMenu,new RpcAction(this) {
|
||||
public void action(Map session) throws Exception {
|
||||
rpcConn.execute("session.meterpreter_write", new Object[]{session.get("id"),
|
||||
Base64.encode("screenshot\n".getBytes())});
|
||||
}
|
||||
@ -896,8 +901,8 @@ public class MainFrame extends FrameView {
|
||||
return "gettelnet.rb "+UserPassDialog.getUserPassOpts(getFrame());
|
||||
}
|
||||
});
|
||||
addScript("Add admin user",accessMenu,new RpcAction() {
|
||||
public void action() throws Exception {
|
||||
addScript("Add admin user",accessMenu,new RpcAction(this) {
|
||||
public void action(Map session) throws Exception {
|
||||
String[] userPass = UserPassDialog.showUserPassDialog(getFrame());
|
||||
if(userPass == null)
|
||||
return;
|
||||
@ -938,6 +943,8 @@ public class MainFrame extends FrameView {
|
||||
}
|
||||
/** Adds a named session menu item to a given popup menu */
|
||||
private void addSessionItem(String name, JComponent menu,ActionListener action) {
|
||||
if(action == null)
|
||||
action = new RpcAction(null,this);
|
||||
JMenuItem tempItem = new JMenuItem(name);
|
||||
menu.add(tempItem);
|
||||
tempItem.addActionListener(action);
|
||||
@ -961,8 +968,8 @@ public class MainFrame extends FrameView {
|
||||
}
|
||||
/** Adds a kill session menu item to a given popup menu */
|
||||
private void addSessionKillItem(JComponent popupMenu) throws HeadlessException {
|
||||
addSessionItem("Kill session",popupMenu,new RpcAction() {
|
||||
public void action() throws Exception {
|
||||
addSessionItem("Kill session",popupMenu,new RpcAction(this) {
|
||||
public void action(Map session) throws Exception {
|
||||
rpcConn.execute("session.stop", new Object[]{session.get("id")});
|
||||
}
|
||||
});
|
||||
|
@ -2,6 +2,7 @@ package msfgui;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.Map;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
/**
|
||||
@ -16,24 +17,34 @@ public class RpcAction implements ActionListener {
|
||||
}
|
||||
public RpcAction(){
|
||||
}
|
||||
public RpcAction( MainFrame parent){
|
||||
this.parent = parent;
|
||||
}
|
||||
public RpcAction(Object arg, MainFrame parent){
|
||||
this.arg = arg;
|
||||
this.parent = parent;
|
||||
}
|
||||
public void actionPerformed(ActionEvent e){
|
||||
try{
|
||||
action();
|
||||
if(parent == null)
|
||||
action();
|
||||
else
|
||||
for(Map session : parent.selectedSessions)
|
||||
action(session);
|
||||
}catch(Exception ex){
|
||||
if(!ex.getMessage().equals("cancelled"))
|
||||
JOptionPane.showMessageDialog(null, "Error in RPC call: "+ex);
|
||||
}
|
||||
}
|
||||
/* Default action executes session.meterpreter_script and shows console window. */
|
||||
/** action() with no args provided as an exception-handling action listener. */
|
||||
public void action() throws Exception{
|
||||
if(arg != null)
|
||||
parent.rpcConn.execute("session.meterpreter_script", new Object[]{parent.session.get("id"), getCmd()});
|
||||
else if (parent == null)
|
||||
if (parent == null)
|
||||
throw new MsfException("Error: no parent. If using default constructor, must override action().");
|
||||
}
|
||||
/** Default action executes session.meterpreter_script and shows console window. */
|
||||
public void action(Map session) throws Exception{
|
||||
if(arg != null)
|
||||
parent.rpcConn.execute("session.meterpreter_script", new Object[]{session.get("id"), getCmd()});
|
||||
parent.showInteractWindow();
|
||||
}
|
||||
}
|
||||
|
@ -254,12 +254,12 @@ public class RpcConnection {
|
||||
root.setAttribute("host", "127.0.0.1");
|
||||
root.setAttribute("port", Integer.toString(defaultPort));
|
||||
|
||||
setMessage("Starting msfrpcd. \"msfrpcd -P " + defaultPass + " -S -U metasploit -a 127.0.0.1\"");
|
||||
setMessage("Starting msfrpcd. \"msfrpcd -P " + defaultPass + " -t Basic -S -U metasploit -a 127.0.0.1\"");
|
||||
setProgress(0.2f);
|
||||
Process proc = null;
|
||||
try {
|
||||
proc = MsfguiApp.startMsfProc(new String[]{
|
||||
"msfrpcd","-P",defaultPass,"-S","-U",defaultUser,"-a","127.0.0.1"});
|
||||
"msfrpcd","-P",defaultPass,"-t","Basic","-S","-U",defaultUser,"-a","127.0.0.1"});
|
||||
} catch (MsfException ex) {
|
||||
setMessage("msfrpcd not found.");
|
||||
setProgress(1f);
|
||||
|
Loading…
Reference in New Issue
Block a user