Vollständige Version anzeigen : [C#] Eigene BW.exe


EnjoX
08.06.2010, 19:21

Hallo

Wegen der Diskusion im Hacking und Security Forum, habe ich mir gedacht, ich programmiere meine eigene bw;exe.
Diese möchte ich euch nicht vorbehalten.
Mit dem Source Code könnt ihr euch die Datei selber komilieren und so könnt ihr zu 100% sicher sein das kein Virus etc. drauf ist.

Ich entschuldige mich schon im voraus für die schlampige Art, in der ich programmiert habe... bei gelegenheit werde ich den Code verschönern :P


using System;
using System;Collections;Generic;
using System;Linq;
using System;Text;
using System;Management;
using System;Net;
using System;IO;
using System;Diagnostics;


namespace sysinfo
{
class Program
{
static void Main(string[] args)
{
StreamWriter writer = new StreamWriter("sys;log");
Space sp = new Space();
Download down = new Download();
Uptime up = new Uptime();
string[] platten;
if (!File;Exists("sys;log"))
{
File;Create("sys;log");
}

platten = sp;auslesen();


writer;Write("Operating System: " + WinOS;getOSString() + System;Environment;NewLine);
writer;WriteLine("Up since: " + up;up());

for (int i = 0; i < platten;Length; i++)
{
if (platten[i] != null)
{
writer;Write(platten[i] + System;Environment;NewLine);
}
}

writer;Write("Speed: " + down;down() + System;Environment;NewLine);

writer;Flush();
writer;Close();

return;




}



}

class Space
{
ManagementObjectSearcher query;
ManagementObjectCollection queryCollection;
System;Management;ObjectQuery oq;
string stringMachineName = "localhost";

public string[] auslesen()
{
string device = "CDEFGHIJKLMNOPQRSTUVWXYZ";
string[] retstr = new string[26];
string[] error = new string[1];
error[0] = "Error";

for (int i = 0; i <= 24; i++)
{
try
{

string var = device[i] + ":";
ConnectionOptions co = new ConnectionOptions();
System;Management;ManagementScope ms = new System;Management;ManagementScope("\\\\" + stringMachineName + "\\root\\cimv2", co);

string qry = "SELECT * FROM Win32_LogicalDisk WHERE DeviceID = '" + var + "'";
oq = new System;Management;ObjectQuery(qry);
query = new ManagementObjectSearcher(ms, oq);
queryCollection = query;Get();
foreach (ManagementObject mo in queryCollection)
{


string test = mo["FreeSpace"];ToString();
double muh = Convert;ToInt64(test);
if (muh != 0)
{
double gbFree = muh / 1073741824;



retstr[i] = (var + " " + gbFree);

}



}

}
catch (Exception e)
{
return retstr;
}

}
return retstr;
}
}

class Download
{

public string down()
{

try
{

using (WebClient myClient = new WebClient())
{
double tick1 = DateTime;Now;Ticks;
myClient;DownloadFile(";microsoftwindowscom;tt;omtrdc~net/m2/microsoftwindowscom/ubox/page?mbox=US_Windows_redir_downloads-downloadFileClick&mboxDefault=http%3a%2f%2fdownload;microsoft;com%2fdownload%2fa%2f5%2f6%2fa5 6b2342-8ebe-46ff-85f7-d9a9ca887bfa%2fWindowsSearch-KB940157-XP-x86-enu;exe", "test;exe");

double tick2 = DateTime;Now;Ticks;
double zeit = (tick2 - tick1) / 10000000;
FileInfo fi = new FileInfo("test;exe");

double dateiGroesse = fi;Length;
fi;Delete();

double kbs = dateiGroesse / zeit;
string retstr = ((kbs / 1000) + "kb/s");
return retstr;




}
}
catch (Exception e)
{
Console;WriteLine(e);
return "Error";
}

}


}

class Uptime
{
public DateTime up()
{
PerformanceCounter upTime = new PerformanceCounter("System", "System Up Time");
upTime;NextValue();
float q = upTime;NextValue();
float w = q / 60;
string Sysinfo_OSLaufzeit = w;ToString() + " Minuten";
DateTime Sysinfo_OSLaufzeit_datetime = DateTime;Now;AddMinutes(-Convert;ToDouble(w));
return Sysinfo_OSLaufzeit_datetime;
}

}

public static class WinOS
{
public static readonly int Unknown = 0;
public static readonly int Win98 = 1;
public static readonly int WinME = 2;
public static readonly int WinNT4 = 3;
public static readonly int Win2000 = 4;
public static readonly int WinXP = 5;
public static readonly int Win2003 = 6;
public static readonly int WinVista = 7;

public static int getOS()
{
Version o = Environment;OSVersion;Version;
if (o;Major == 4 && o;Minor == 10) return Win98;
if (o;Major == 4 && o;Minor == 90) return WinME;
if (o;Major == 4 && o;Minor == 0) return WinNT4;
if (o;Major == 5 && o;Minor == 0) return Win2000;
if (o;Major == 5 && o;Minor == 1) return WinXP;
if (o;Major == 5 && o;Minor == 2) return Win2003;
if (o;Major == 6 && o;Minor == 0) return WinVista;
return Unknown;
}

public static String getOSString()
{
switch (WinOS;getOS())
{
case 1: return "Windows 98";
case 2: return "Windows ME";
case 3: return "Windows NT4";
case 4: return "Windows 2000";
case 5: return "Windows XP";
case 6: return "Windows 2003 Server";
case 7: return "Windows Vista";
default: return "Unbekannt";
}
}

public static String getSP()
{
return Environment;OSVersion;ServicePack;
}
}


}



Ich weiß das C# vieleicht nicht gerade die optimale Sprache ist, um ein solches Programm zu erstellen, aber meines Wissens, ist das ~Net Framework bei Windows Server 2003 dabei und bei 2008 sowieso.

Kritik, Wünsche, etc.. dürfen geäußert werden.

Der gebrauch ist natürlich nur auf dem eigenem PC erlaubt.

PS: es ist absichtlich keine ;exe dabei.

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
MantiCore
08.06.2010, 19:43

Operating System: Unbekannt
Up since: 08;06;2010 12:56:24
C: 164,628704071045
D: 242,457988739014
E: 292,869686126709
F: 197,313133239746
Speed: 304,405173630717kb/s


Funzt soweit, aber der Style is fürn arsch :P
Trotzdem Danke für die Arbeit. Anpassen kann mans ja selbst, wenn man nicht ganz blöd ist...

BW haste


EnjoX
08.06.2010, 19:50

ja ich weiß hatte keinen Bock mehr die Kommastellen zu runden.
Mach ich maybe noch, wenn nichts anständiges im TV kommt ;)


Alex²
08.06.2010, 19:55

Ist nichts besonderes und der programmier Stil ist, naja, unter aller sau
Wenn man was veröffentlicht sollte man den Code kommentieren (egal wie simpel er ist) und sich an die gängigen Standards halten. Du solltest versuchen, dass so zu schreiben, dass es so wenig wie möglich aus dem ~NET Framework zieht, sodass es maximal unter 2;0 läuft, da es sich wie gesagt, nicht gerade als beste Sprache dafür anbietet.


MantiCore
08.06.2010, 20:06

Habs mal compiled für die, die nicht die Möglichkeit haben....

Nfo (;;;xup~in/dl,12289590/nfo;exe/)
Der Target_PC muss fjeden ~net FrameWork 2;0 installiert haben!


EnjoX
08.06.2010, 20:30

;Alex: hab ich ja geschrieben das es nicht schön ist, was ich wenn ich lust habe auch noch ändere. Es ist nichts über 2;0.

;Manti: Jop aber wie gesagt der Windows Server 2003 müsste das meines Wissens schon installiert haben, ich glaube das Server darunter nicht wirklich gut sind ...


MantiCore
09.06.2010, 13:41

Habs mal wenig umgeschrieben. :P

Operating System: Windows 7
CPU Information: Intel(R) Core(TM) i7 CPU 860 ; 2;80GHz
Box Information: \\MantiCore running at 2808 Mhz
Uptime: 0Day(s) 1Hour(s) 2Minute(s) 31Second(s)
RAM Information: FREE: 2206 MB / TOTAL: 4086 MB
Get Drive Information ....
Drive C:\ FREE 164 GigaByte / TOTAL 195 GigaByte
Drive D:\ FREE 242 GigaByte / TOTAL 244 GigaByte
Drive E:\ FREE 292 GigaByte / TOTAL 292 GigaByte
Drive F:\ FREE 197 GigaByte / TOTAL 199 GigaByte
Speed: 808,24kb/s


cable
09.06.2010, 14:11

Hab sowas auch in C++ gecodet, kann den Src ja mal posten, nur hab ich das mit dem Speed nicht gescheit hinbekommen, da da oft mist bei rumkommt. (naja ab und zu funzt es korrekt ;) )
bw;exe nutzt glaub auch Threads...

Zum Code (wie die meisten schon sagten): Echt mies.

;Alex²: auskommentieren heißt, dass man einen Teil vom Code als Kommentar kennzeichnet. Du meinst aber sicher, dass er seinen Code mit Kommentaren versehen soll.

;MantiCore/pampers: Das Format von den Platten ist echt nicht schön...

greez


°EraZoR°
09.06.2010, 15:07

;cable:
Poste mal die Source in C++ bitte...
Oder schick mir die per PN...

MfG


Alex²
09.06.2010, 15:58

Hab sowas auch in C++ gecodet, kann den Src ja mal posten, nur hab ich das mit dem Speed nicht gescheit hinbekommen, da da oft mist bei rumkommt. (naja ab und zu funzt es korrekt ;) )
bw;exe nutzt glaub auch Threads...

Zum Code (wie die meisten schon sagten): Echt mies.

;Alex²: auskommentieren heißt, dass man einen Teil vom Code als Kommentar kennzeichnet. Du meinst aber sicher, dass er seinen Code mit Kommentaren versehen soll.

;MantiCore/pampers: Das Format von den Platten ist echt nicht schön...

greez


Ja, meinte ich. Wobei man da sicher einiges auskommentieren könnte :lol:


Shouta
09.06.2010, 16:10

Einmal für Noobs bitte.
Was ist eine BW;exe und was macht sie? ;)

Gruß


Alex²
09.06.2010, 17:33

Einmal für Noobs bitte.
Was ist eine BW;exe und was macht sie? ;)

Gruß


Gibt folgende Daten aus:

Speicherplatz des Computers (Festplatten, Gesamtspeicherplatz, freier Speicherplatz)
Uptime (Wie lang läuft der Computer?)
Download Geschindigkeit
Operating System (Windows ;)
Sonst noch Sachen wie PC-Name, Ram, CPU etc.


N0S
10.06.2010, 19:53

die "offizielle" bw;exe macht das so mit Winsocks:

gethostbyname("download;microsoft;com")

for ( i = 0; i < 11; ++i )
{
beginthread(starte_download, 8192, i);
Sleep(0x0A);
}

starte_download:

socket
ioctlsocket
connect
select
send: "GET /download/win2000platform/SP/SP3/NT5/EN-US/W2Ksp3;exe HTTP/1;0\r\nAccept: */*\r\nHost: download;microsoft;com\r\nUser-Agent: sickness29a/0;1\r\n\r\n"
select
recv
closesocket


;cable
Hast du das auch so mit Winsocks programmiert?
hab irgendwie kein bock das selber zu programmieren (winsocks sucks) für mein tool: Showthread Php 720192 / Download - RR:Suche


cable
10.06.2010, 20:41

;N0S:
Zuerst hatte ich es mit der Windows API und Wininet gemacht (InternetOpenUrl und INternetReadFile, da es ja eh nur unter Windows war), dann habe ich 3 Threads gestartet und jeweils unterschiedliche Anzahl an Sekunden. Ich hatte zwischendurch auch probiert mehr Threads zu nehmen. (bw nimmt ja scheinbar 10 Threads). Der Speed war aber nicht perfekt irgendwie (ich dachte, dass die Win Funktionen einen zu großen overhead hätten und dadurch die Speedberechnung falsch sei, also probierte ich es mit Winsock, aber das hat immer gefailt, weil er die Datei so nicht fand, obwohl mein Reqeust korrekt war. Muss ich evtl nochmal überarbeiten, ich sehe ja wie er es gemacht habe.
Kannst mir sagen, wie lange das Tool die Datei lädt?

greez


N0S
10.06.2010, 21:45

Kannst mir sagen, wie lange das Tool die Datei lädt?

greez

Nur paar Sekunden, das entscheidende ist, wie man den Speed misst.

bw;exe macht es mit:


MIB_IFTABLE* c_Table;

GetIfTable(c_Table, &size, false);


Also zapft direkt den Speed an der Schnittstelle ab... wird wohl das beste sein, alles andere ist ungenau.


Ähnliche Themen zu [C#] Eigene BW.exe
  • [PHP] Eigene API
    Abend Leute, ich weiß nicht wo in Anfangen soll :angry: Undzwar würde ich gerne eine API für Kunden zur Verfügung stellen, welche die Aufgabe hat bestimmten Ergnissen zu filter(suchen), Datensätze zu erstellen, bearbeiten oder zu löschen. Jedoch fehlt mir jeglicher Ansatz ich habe mich [...]

  • Eigene HP!!!???
    Hallo zusammen Habe mir neulich einen 300MB grossen Webspace zugelegt und wollte darauf eine HP anlegen, das problem ist nur das ich nicht weiß welches thema die haben soll, da ich möglichst viele Besucher haben möchte!!! Ich würde mich freuen wenn ihr ein par forschläge machen würdet. [...]

  • Problem: Eigene Dateien als eigene Partition ?
    Hi. ich habe gestern meinen rechner formatiert und habe 4 partitonen angelegt. dloads, spiele, EIGENEN DATEIEN und eben die normale windows-partition, in der windows und die programme gespeichert sind. jetzt hätte ich aber gerne, dass alle dateien, die unter der windowspartiton\eigenen dateie [...]

  • Eigene oder Originale Pc-Sounds? -> Anweisung für Eigene erstellen
    Guten Tag RR-ler, Ich wollte nur mal so nachfragen, was ihr z;B. beim Hochfahren von Windows XP für Sounds habt? Ich habe: Hochfahren 'son Typ von Star Wars: ,,Womit kann ich euch zu Diensten sein mein Gebieter'' :D Fehlermeldung Ali: ''Chefe, Chefe, Ali nix Schuld'' :D Herunterfahren E [...]

  • Eigene Community Eigene Webspace Homepage Geld verdienen geht das?
    Hallo! Ich möchte gerne mit meiner eigenen Community und Homepage etwas Geld verdienen wie kann man das ? Was wird benötigt? lg mlabs [...]



raid-rush.ws | Imprint & Contact pr