Willkommen bei Network & Security     remoteshell-security.com
Partnerseiten
login.php?sid=e5fa9eabccc56a442b09b7eea467c0a0 profile.php?mode=register&sid=e5fa9eabccc56a442b09b7eea467c0a0 faq.php?sid=e5fa9eabccc56a442b09b7eea467c0a0 memberlist.php?sid=e5fa9eabccc56a442b09b7eea467c0a0 search.php?sid=e5fa9eabccc56a442b09b7eea467c0a0 index.php?sid=e5fa9eabccc56a442b09b7eea467c0a0

Foren-bersicht » Eigene Programme » JSH
Neues Thema erffnen  Neue Antwort erstellen Vorheriges Thema anzeigen :: Nchstes Thema anzeigen 
JSH
BeitragVerfasst am: 20.09.2006 17:36 Antworten mit Zitat
duddits
Anmeldedatum: 03.01.2006
Beitrge: 569
Wohnort: /proc




Hi,

wie aus dem [url=http://www.network-and-security.de/viewtopic.php?t=314]
Thread[/url] hervor gegangen prsnetiere ich die alpha-Version meiner Shell:
Code:

import java.io.*;
import java.text.*;
import java.util.*;
import java.util.regex.*;

public class WinShell {
   /**
    * Author: daniel baier alias duddits
    * Licens: GPL
    * Requirements: JRE 1.5 for running and the JDK 1.5 for compiling
    * Version: 0.05 alpha release
    */

   public WinShell() {
   }

   // entspricht dem Tree Befehl unter Windows --> Rekursive Lsung
   public void tree(String start) {
      File f = new File(start);
      File[] h = f.listFiles();
      for (int i = 0; i < h.length; i++) {

         if (h[i].isDirectory()) {
            start = h[i].toString();
            System.out.println(h[i]);
            tree(start);
         }
      }
   }

   // entspricht dem Dir Befehl unter Windows
   public void dir(String start) {
      File f = new File(start);
      File[] h = f.listFiles();
      for (int i = 0; i < h.length; i++) {
         System.out.println(h[i]);
      }

   }

   // entspricht dem Dir Befehl unter Windows
   public void dirtrue(String start) {
      File f = new File(start);
      File[] h = f.listFiles();
      for (int i = 0; i < h.length; i++) {
         if (h[i].isDirectory()) {
            System.out.println(h[i]);
         }
      }

   }

   // sl(sizeList) bestimmt die Gre eines Verzeichnisses
   public long getDirSize(File dir) {

      long size = 0;
      File[] files = dir.listFiles();
      if (files != null) {
         for (int i = 0; i < files.length; i++) {
            if (files[i].isDirectory()) {
               size += getDirSize(files[i]); // Gesamtgre des
                                       // Verzeichnisses
                                       // aufaddieren
            } else {
               size += files[i].length(); // Gre der Datei aufaddieren
            }
         }
      }
      return size;
   }

   // entspricht dem mkdir Befehl unter Windows
   public void mkdir(String start, String startort) {
      File f = new File(startort + start);
      f.mkdir();

   }

   // Methode die, die Version und den Autor der Shell wiedergibt
   public void ver() {
      System.out
            .println("\tJSH 0.1 alpha release\n\tdeveloped by duddits alias daniel baier\n\tfor more informations visit my website http://www.remoteshell-security.com");
   }

   // Gibt Informationen zum System aus
   public static void sysinfo() {
      Enumeration props = System.getProperties().propertyNames();
      System.out.println("Systemproperties:\n");
      while (props.hasMoreElements()) {
         String prop = props.nextElement().toString();
         System.out.print(prop + ":");
         System.out.print(" ");
         System.out.println(System.getProperty(prop));
      }
   }

   // Methode die, die den Konsolen-Bildschirm leert
   public void cls() {
      for (int i = 0; i < 40; i++)
         System.out.print("\n");
   }

   // minimale Version des date Kommandos unter Windows
   public void date() {
      DateFormat df = new SimpleDateFormat("d. MMMM yyyy", Locale.GERMANY);
      Date today = new Date();
      DateFormat tf = new SimpleDateFormat("HH.mm", Locale.GERMANY);

      String time = "Heute ist der " + df.format(today) + " und es ist "
            + tf.format(today) + " Uhr";
      System.out.println(time);

   }

   // entspricht dem cat Befehl unter Linux
   public void cat(String start, String startort) {
      try {
         File file;
         if (startort.equals("/")) {
            file = new File("/" + start);
         } else {
            file = new File(startort + "/" + start);
         }

         FileReader fr;

         fr = new FileReader(file);
         String s = "";
         int x = 0;
         while ((x = fr.read()) != -1) {
            s += (char) x;
         }
         System.out.println(s);

      } catch (IOException ioex) {
         System.out.println("Fehler beim Lesen der Datei " + start);
      }

   }

   // entspricht dem cat Befehl unter Linux zum schreiben einer Datei
   public void catwr(String start, String startort) {
      try {
         String s;
         BufferedReader br = new BufferedReader(new InputStreamReader(
               System.in));
         File file;
         if (startort.equals("/")) {
            file = new File("/" + start);
         } else {
            file = new File(startort + "/" + start);
         }
         FileWriter fw;
         boolean notexit = true;
         fw = new FileWriter(file);
         while (notexit) {
            s = br.readLine();
            if (s.equals("<0>")) {
               notexit = false;
               break;
            }
            fw.write(s + "\n");
         }
         fw.flush();
         fw.close();
      } catch (IOException ioex) {
         System.out.println("Fehler beim Schreiben der Datei " + start);
      }

   }

   // entspricht dem cd Befehl unter Windows
   public String cd(String start, File currentDir) {
      File fullPath = new File(currentDir.getAbsolutePath());
      String sparent = fullPath.getAbsoluteFile().toString();
      return sparent + "/" + start;

   }

   @SuppressWarnings("unchecked")
   public static void main(String[] args) {
      WinShell ws = new WinShell();
      System.out
            .println("\tJSH 0.1 alpha release\n\tdeveloped by duddits alias daniel baier");
      try {

         boolean exit = true;
         String s;
         BufferedReader br = new BufferedReader(new InputStreamReader(
               System.in));
         String startort = "/";
         while (exit) {

            File f = new File(startort);
            System.out.print(f.getAbsolutePath() + "> ");
            s = br.readLine();

            // Shell beendet sich, wenn exit eingegeben wird
            if (s.equals("exit")) {
               exit = false;
            } else if (s.equals("ls")) {
               ws.dir(startort);
            } else if (s.equals("ls -d")) {
               ws.dirtrue(startort);
            } else if (s.equals("dir")) {
               ws.dirtrue(startort);
            } else if (s.equals("date")) {
               ws.date();
            } else if (s.equals("sysinfo")) {
               sysinfo();
            } else if (s.equals("cls")) {
               ws.cls();
            } else if (s.equals("version")) {
               ws.ver();
            } else if (s.equals("tree")) {
               ws.tree(startort);
            } else if (s.equals("cd")) {
               System.out
                     .println("Syntaxfehler.\nUsing: sl <file/path/directory>");
            } else if (s.equals("cd")) {
               System.out.println("Syntaxfehler.\nUsing: cd <path>");
            } else if (s.equals("cat")) {
               System.out.println("Syntaxfehler.\nUsing: cat <file>");
            } else if (s.equals("cat -h") || s.equals("cat -help")
                  || s.equals("cat /?")) {
               System.out
                     .println("Hilfeausgabe von cat.\nUsing: cat <file>");
               System.out
                     .println("Cat ist ein Shell-Buildin\nEs gibt drei Moeglichkeiten cat zu verwenden:");
               System.out
                     .println("cat <file>       --> zum lesen einer einfachen Datei");
               System.out
                     .println("cat > <file>   --> zum schreiben in die Datei <file>. Abruchkommando ist ein leere Zeile");
            } else if (s.equals("mkdir")) {
               System.out
                     .println("Syntaxfehler.\nUsing: mkdir <verzeichnisname>");
            } else {

               String z1, z2;
               z1 = s;
               Pattern pmkdir = Pattern.compile("^mkdir\\s");
               Pattern pcd = Pattern.compile("^cd\\s");
               Pattern pcat = Pattern.compile("^cat\\s");
               Pattern pcat1 = Pattern.compile("^cat >\\s");
               Pattern psl = Pattern.compile("^sl\\s");
               Pattern psl1 = Pattern.compile("^sl -h\\s");
               Matcher mmkdir = pmkdir.matcher(z1);
               Matcher mcd = pcd.matcher(z1);
               Matcher msl = psl.matcher(z1);
               Matcher msl1 = psl1.matcher(z1);
               Matcher mcat = pcat.matcher(z1);
               Matcher mcat1 = pcat1.matcher(z1);
               String[] teile = pmkdir.split(z1);
               String[] teile1 = pcd.split(z1);
               String[] teile2 = pcat.split(z1);
               String[] teile3 = pcat1.split(z1);
               String[] teile4 = psl.split(z1);
               String[] teile5 = psl1.split(z1);

               z2 = s;
               Pattern pstring = Pattern.compile("\\s");
               String[] plist = pstring.split(z2);

               if (mmkdir.find()) {
                  ws.mkdir(teile[1], startort);
               } else if (mcat.find()) {
                  if (mcat1.find()) {
                     System.out
                           .println("To stop writing in the file, please enter after return <0>");
                     ws.catwr(teile3[1], startort);
                  } else {
                     ws.cat(teile2[1], startort);
                  }
               } else if (msl.find()) {

                  if (msl1.find()) {
                     File fl1 = new File(teile5[1]);
                     long humansizem = ws.getDirSize(fl1)
                           / (1024 * 1024);
                     long humansizeg = ws.getDirSize(fl1)
                           / (1024 * 1024 * 1024);
                     if (humansizem < 1024) {
                        System.out.println("The size of " + teile5[1]
                              + " takes " + humansizem + " MB");
                     } else {
                        System.out.println("The size of " + teile5[1]
                              + " takes " + humansizeg + " GB");
                     }

                  } else {
                     File fl = new File(teile4[1]);
                     System.out.println("The size of " + teile4[1]
                           + " takes " + ws.getDirSize(fl) + " Bytes");
                  }
               } else if (mcd.find()) {
                  try {
                     String cds = ws.cd(teile1[1], new File(startort));
                     startort = cds;
                  } catch (Exception verz) {
                     System.out.println("Path " + teile1[1]
                           + " not found.");
                  }
               } else {
                  try {
                     LinkedList slist = new LinkedList();
                     for (int i = 0; i < plist.length; i++) {
                        slist.add(plist[i]);
                     }

                     ProcessBuilder builder = new ProcessBuilder(slist);
                     builder.directory(new File(startort));
                     Process p = builder.start();
                     Scanner se = new Scanner(p.getInputStream());
                     if (!se.hasNext()) {
                        Scanner sa = new Scanner(p.getErrorStream());
                        while (sa.hasNext()) {
                           System.out.println(sa.nextLine());
                        }
                     }
                     while (se.hasNext()) {
                        System.out.println(se.nextLine());
                     }
                  } catch (Exception err) {
                     // err.printStackTrace();
                     System.out.println(f.getAbsolutePath()
                           + "> Befehl " + s
                           + " konnte nicht gefunden werden");
                  }

               }
            }
         }

      } catch (Exception io) {
         io.printStackTrace();
      }

   }

}


Wie gesagt ist es eine alpha-Version, d.h. Erweiterungen/Verbesserungen sind in Arbeit:
Im nchsten Release werden folgende Features implementiert sein:
--> find ( eine Mglichkeit nach Dateien/Verzeichnissen zu suchen)
--> Berechnungsmglichkeiten wie bei der BASH
--> Kommandoverfolstndigung mit TAB
--> Pipes
-->History
--> Shell-Builins: cp, mv, rename, touch, del


Ich wrde mich freuen wenn der eine oder andere das Programm mal testen knnte und mir ein Feedback geben knnte.
Fr Fragen, Ratschlge, Verbesserungen und Kritik etc. stehe ich natrlich jederzeit zur Verfgung.

greetz duddits

_________________
Quidquid agis, prudenter agas et respice finem!

Jabber ID: duddits@amessage.info
Webseite: http://www.remoteshell-security.com
Weblog: http://blog.remoteshell-security.com
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Jabber ID
BeitragVerfasst am: 20.09.2006 18:06 Antworten mit Zitat
Phara0h
Anmeldedatum: 31.12.2005
Beitrge: 357
Wohnort: /dev/RL




Wenn du mir verrtst, wie ich die kompiliere teste ichs Razz

_________________
Benutzer-Profile anzeigen Private Nachricht senden Jabber ID
BeitragVerfasst am: 20.09.2006 18:11 Antworten mit Zitat
duddits
Anmeldedatum: 03.01.2006
Beitrge: 569
Wohnort: /proc




Hi,

Phara0h hat Folgendes geschrieben:
Wenn du mir verrtst, wie ich die kompiliere teste ichs Razz


das mach ich doch gerne:
http://www.remoteshell-security.com/waj.php#p4

wenn das nicht reichen sollte einfach fragen. Du brauchst dafr mindestens das JDK 1.5(http://java.sun.com/javase/downloads/index.jsp).

Du musst dieses Dokument als <classname>.java( hier also:WinShell.java)
speichern und dann anschlieend mit javac kompilieren.
Danach kannst du das programm mit java <programmname> (hier sollte es aller wahrscheinlichkeit nach WinShell sein).

siehe auch: http://java.sun.com/javase/downloads/index.jsp

greetz duddits

_________________
Quidquid agis, prudenter agas et respice finem!

Jabber ID: duddits@amessage.info
Webseite: http://www.remoteshell-security.com
Weblog: http://blog.remoteshell-security.com
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Jabber ID
BeitragVerfasst am: 09.03.2021 23:51 Antworten mit Zitat
warganic
Anmeldedatum: 26.02.2021
Beitrge: 51621




убий301.6PERFPERFИофаУлыбГолоСодеКудрПрилДайдChicSona
EaveГонкуслодругМаксAntoLongZoneлапыБюхнСарнмироLotu
фоноБелоWindЗавеAageХижнматепротГодмEricСрезШепеJohn
ВыбоСимоКирсданнExplЛеонRemiмонгИллюНаумКозлВитаМихе
ПаршЛениAlmoAlmoPlanБарадвижПавлМэннЛеонТроцКомзСмил
СолоСодестатBertШвецРиекЗелеМечипродGrubNeriКабамале
теорXIIILuulMiloGoinZoneDennHostпроуГурлTiboAngeXXVI
статZoneZoneHoneEverZoneГардXVIIHearЗенкавто«СовТред
АрбаМазуСулеZoneНикаАнсиHaroХайкZoneТрофMattSanaCohi
KKOEJK-2PhilSamsIsolMielBoyaфлагтеорSnowАртиO143Case
ПрокпласEdmiLEXUHeliFilmтворBlueSnowмодеязыкТимоPark
курсWINDWindПетрСорокомпSmilднемJohnGourToddЛитРЛитР
ПучкромаHoteЛитРСамаЛитРЛитРВрубМарлEmilЯблоЗворSinf
HowlземлБурлWantмастWhirBeliAmalКадрJohnЛапшFutuBerg
AndrBeatКуроARISоргаМетаWestКислHarmГригГриганглЯсум
EmpiNaruСодеписаBrutСюзахудоТопоAguaиздаJK-2JK-2JK-2
ПоспEduaJuliSabiЛьвообраJerrТатаMagnРокоЖениBonutuchkas
ФомиРого
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: 04.05.2021 01:11 Antworten mit Zitat
warganic
Anmeldedatum: 26.02.2021
Beitrge: 51621




audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.ru
gangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.rugaugemodel.rugaussianfilter.rugearpitchdiameter.rugeartreating.rugeneralizedanalysis.rugeneralprovisions.ru
geophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ru
halfsiblings.ruhallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ruhangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ru
hartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ruheavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.ru
jobstress.rujogformation.rujointcapsule.rujointsealingmaterial.rujournallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.ru
kerbweight.rukerrrotation.rukeymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ru
knowledgestate.rukondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.rulactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.ru
laissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.rulanguagelaboratory.rulargeheart.ru
lasercalibration.rulaserlens.rulaserpulse.rulaterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.rumagnetotelluricfield.ru
mailinghouse.rumajorconcern.rumammasdarling.rumanagerialstaff.rumanipulatinghand.rumanualchoke.rumedinfobooks.rump3lists.runameresolution.runaphtheneseries.runarrowmouthed.runationalcensus.runaturalfunctor.ru
navelseed.runeatplaster.runecroticcaries.runegativefibration.runeighbouringrights.ruobjectmodule.ruobservationballoon.ruobstructivepatent.ruoceanmining.ruoctupolephonon.ruofflinesystem.ruoffsetholder.ruolibanumresinoid.ru
onesticket.rupackedspheres.rupagingterminal.rupalatinebones.rupalmberry.rupapercoating.ruparaconvexgroup.ruparasolmonoplane.ruparkingbrake.rupartfamily.rupartialmajorant.ruquadrupleworm.ruqualitybooster.ru
quasimoney.ruquenchedspark.ruquodrecuperet.rurabbetledge.ruradialchaser.ruradiationestimator.rurailwaybridge.rurandomcoloration.rurapidgrowth.rurattlesnakemaster.rureachthroughregion.rureadingmagnifier.rurearchain.ru
recessioncone.rurecordedassignment.rurectifiersubstation.ruredemptionvalue.rureducingflange.rureferenceantigen.ruregeneratedprotein.rureinvestmentplan.rusafedrilling.rusagprofile.rusalestypelease.rusamplinginterval.rusatellitehydrology.ru
scarcecommodity.ruscrapermat.ruscrewingunit.ruseawaterpump.rusecondaryblock.rusecularclergy.ruseismicefficiency.ruselectivediffuser.rusemiasphalticflux.rusemifinishmachining.ruspicetrade.ruspysale.rustungun.ru
tacticaldiameter.rutailstockcenter.rutamecurve.rutapecorrection.rutappingchuck.rutaskreasoning.rutechnicalgrade.rutelangiectaticlipoma.rutelescopicdamper.rutemperateclimate.rutemperedmeasure.rutenementbuilding.rutuchkas
ultramaficrock.ruultraviolettesting.ru
Benutzer-Profile anzeigen Private Nachricht senden
JSH
Foren-bersicht » Eigene Programme
Du kannst keine Beitrge in dieses Forum schreiben.
Du kannst auf Beitrge in diesem Forum nicht antworten.
Du kannst deine Beitrge in diesem Forum nicht bearbeiten.
Du kannst deine Beitrge in diesem Forum nicht lschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Alle Zeiten sind GMT + 1 Stunde  
Seite 1 von 1  

  
  
 Neues Thema erffnen  Neue Antwort erstellen  


Forensicherheit

Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin
Deutsche bersetzung von phpBB.de


remoteshell-security.com | Partner | Boardregeln | Impressum