Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Security Software (https://www.delphipraxis.net/115830-security-software.html)

Der.Kaktus 24. Jun 2008 15:49

Re: Security Software
 
Zitat:

Zitat von Tyrael Y.
Zitat:

Zitat von RavenIV
/Zum Thema
<Ironie on>
Mülltonne auf, "Security1Beta" rein, Mülltonne zu.
&lt;Ironie off&gt;

-.- dein Post ist völliger Müll

Der junge Mann ist 13.
13 Jahre alt Mann, er versucht sich an Delphi und du
schreibst so einen Mist.

Schreib doch einfach nix, wenn du nix zu sagen hast oder
beantworte seine Frage.

voll zustimme :thumb: ..Dachte, dieses "sommerlochgeschnatter" waere nun endlich genug nach ca. 800 Beitraegen *kobbschuettel*


Nun noch zum Thema:

versuch mal Deinem Quelltext bissl Form zugeben.."einruecken Begin End etc." macht es uebersichtlicher
und Fehler lassen sich auch besser finden.

blender 24. Jun 2008 16:17

Re: Security Software
 
Die Batch soll ja laufend nach dem Taskmanager suchen und ihn beenden.

Code:
:anfang
taskkill /im taskmgr.exe
GoTo anfang
Was ist an GoTo´s eigentlich so schlimm?

NormanNG 24. Jun 2008 16:42

Re: Security Software
 
Hi,

ich hab´dir mal den Code etwas formatiert...
Dann hat man bessere Übersicht, weiß wo ein
begin anfängt und wo das dazugehörige end steht etc.

Das mit dem goto ist ein no-go :lol:
Wird im allgemeinen als schlechter Programmierstil angesehen,
weil der Programmfluss nicht mehr so einfach zu durchschauen ist.

Versuch doch mal, das Programm in einzelne Prozeduren/Funktionen zu
unterteilen. Dann wird der Hauptteil übersichtlicher und du brauchst
(hoffentlich) keine goto´s mehr :wink:

Delphi-Quellcode:
program Security1Beta;

{$APPTYPE CONSOLE}

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls,
  shellapi;

var Passwort, compname, test: String;
    Wrongcount: Integer = 0;
label anfang, ende, EnterComputerName;
begin
  if DirectoryExists(test+'_Desktop') then WrongCount := 4;
anfang:
  Write('Please enter Password to access: ');
  ReadLn(Passwort);
  writeln;
  if (passwort = 'passwort1') and (wrongcount < 4) then
  begin
    writeln('Access...');
    goto ende;
  end else if wrongcount < 4 then
  begin
    writeln('Access denied!!! You can try one more.');
    inc(wrongcount);
  end else begin
    writeln('Access to all functions of the program will be blocked...');
    writeln('Another entering the password is no longer possible.');
    EnterComputerName:
    CreateDir(test+'_Desktop');
    writeln('Please identify yourself as the owner of this computer.');
    writeln;
    write('Please enter the computer name: ');
    ReadLn(compname);
    if compname = GetEnvironmentVariable('USERDOMAIN') then
    begin
      writeln;
      writeln('Computer name is checked...');
      writeln;
      writeln('Computer name confirmed.');
      RemoveDir(test+'_Desktop');
      wrongcount:= 0;
      writeln;
      goto anfang;
    end else begin
      writeln;
      writeln('Computer name is checked...');
      writeln;
      writeln('Wrong input.');
      writeln('Full closure is initialized...');
      writeln('Full closure in Progress...');
      CreateDir(test+'_Lokale Einstellungen');
      writeln('Full closure complete.');
      goto EnterComputerName
    end;
  end;
  writeln;
  goto anfang;
ende:
  writeln;
  write('To end the program press enter.');
  ReadLn;
end.

lbccaleb 24. Jun 2008 17:50

Re: Security Software
 
du kannst auch ne menge units aus deinem programm verbannen, um die datei grösse zu reduzieren...
du verwendest eh keine befehle aus diesen units...

hab sie mal markiert:

Delphi-Quellcode:
program Security1Beta;

{$APPTYPE CONSOLE}

uses
  Windows,
  SysUtils; // das sind die einzigen verwendeten units, der rest ist nicht in verwendung
             // das verringert deine dateigrösse von rund 361kb auf rund 43kb
//  Messages,
//  Variants,
//  Classes,
//  Graphics,
//  Controls,
//  Forms,
//  Dialogs,
//  StdCtrls,
//  shellapi;

var
  Passwort,
  compname,
  test: String;
  Wrongcount: Integer = 0;

label anfang, ende, EnterComputerName;

begin
  if DirectoryExists(test+'_Desktop') then WrongCount := 4;
anfang:
  Write('Please enter Password to access: ');
  ReadLn(Passwort);
  writeln;
  if (passwort = 'passwort1') and (wrongcount < 4) then
    begin
      writeln('Access...');
      goto ende;
    end
  else if wrongcount < 4 then
    begin
      writeln('Access denied!!! You can try one more.');
      inc(wrongcount);
    end
  else
    begin
      writeln('Access to all functions of the program will be blocked...');
      writeln('Another entering the password is no longer possible.');
      EnterComputerName:
      CreateDir(test+'_Desktop');
      writeln('Please identify yourself as the owner of this computer.');
      writeln;
      write('Please enter the computer name: ');
      ReadLn(compname);
      if compname = GetEnvironmentVariable('USERDOMAIN') then
        begin
          writeln;
          writeln('Computer name is checked...');
          writeln;
          writeln('Computer name confirmed.');
          RemoveDir(test+'_Desktop');
          wrongcount:= 0;
          writeln;
          goto anfang;
        end
      else
        begin
          writeln;
          writeln('Computer name is checked...');
          writeln;
          writeln('Wrong input.');
          writeln('Full closure is initialized...');
          writeln('Full closure in Progress...');
          CreateDir(test+'_Lokale Einstellungen');
          writeln('Full closure complete.');
          goto EnterComputerName
        end;
    end;
    writeln;
    goto anfang;
ende:
  writeln;
  write('To end the program press enter.');
  ReadLn;
end.

eine frage aber noch:
wozu soll dieses programm genau sein, und was hat das mit sicherheit zu tun??

fLaSh11 24. Jun 2008 18:17

Re: Security Software
 
Außerdem solltest du bedenken, dass man die Zeile

Delphi-Quellcode:
{...} if (passwort = 'passwort1') {...}
mit jedem guten Disassembler auslesen kann und somit das Passwort in Null Komma nichts herausfinden kann!

smallsmoker 24. Jun 2008 19:01

Re: Security Software
 
Zitat:

mit jedem guten Disassembler auslesen kann und somit das Passwort in Null Komma nichts herausfinden kann!
stichwort: dec 5.1

lbccaleb 24. Jun 2008 19:08

Re: Security Software
 
Zitat:

Zitat von fLaSh11
Außerdem solltest du bedenken, dass man die Zeile

Delphi-Quellcode:
{...} if (passwort = 'passwort1') {...}
mit jedem guten Disassembler auslesen kann und somit das Passwort in Null Komma nichts herausfinden kann!

sicher ist das so, aber ich glaube er fängt gerade erst an, da ist das vllt erstmal ausreichend für den anfang ;-)

mit disasm kann er sich dann später einfriemeln ...

fLaSh11 24. Jun 2008 19:39

Re: Security Software
 
@ lbccaleb:
Haste natürlich recht! Klar muss man nicht alles perfekt sein. Mein Vorschlag war für die weiterführende Arbeit. Sozusagen für Version 2 :-D

blender 26. Jun 2008 15:34

Re: Security Software
 
Wie kann man es denn Verhindern, dass das Passwort eingelesen werden kann?

DeddyH 26. Jun 2008 15:35

Re: Security Software
 
Du müsstest es verschlüsseln oder irgendwie außerhalb des Kompilats ablegen oder besser beides.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz