AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sicherheit im Spiel!

Ein Thema von sonic2000 · begonnen am 15. Apr 2006 · letzter Beitrag vom 15. Apr 2006
Antwort Antwort
sonic2000

Registriert seit: 15. Apr 2006
Ort: Hailbronn
24 Beiträge
 
Delphi 2005 Architect
 
#1

Sicherheit im Spiel!

  Alt 15. Apr 2006, 21:04
Hallo Leute!

Vieleicht könnt ihr mir ja helfen?!
Also ich gehe demnächst auf eine lan Party wo ich denn Server mache!
Und wir brauchen eine gewiesse sicherheit das KEINER Cheatet!

Ich brauch einen Code, das mein Programm nach einem bestimmten Programm auf der Festplatte sucht,
und wenn er die Datei mit einem bestimmten Namen findet, ein OK in einer *.log speichert...

Ich hoffe ihr wiesst was ich meine...
Bitte helft mir...

MfG: Sonic2000
André
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Sicherheit im Spiel!

  Alt 15. Apr 2006, 21:06
Wie wäre es mit FindFirst und FindNext?

Aber bedenke: Man kann ein solches Programm ohne Probleme umbenennen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Sicherheit im Spiel!

  Alt 15. Apr 2006, 21:09
Zitat von 3_of_8:
Aber bedenke: Man kann ein solches Programm ohne Probleme umbenennen.
oder selber schreiben...

du kannst schon die Festplatte nach einem bestimmten Dateinamen oder gar einer bestimmten Datei (nach Inhalt) durchsuchen, aber ersteres dauert schon gut 1-10 Minuten, während letzteres in die Stunden gehen kann. Ich würde den RAM nach dem Programm durchsuchen. Hier in der DP gibts massig Code mit dem du eine Prozessliste kriegst.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
sonic2000

Registriert seit: 15. Apr 2006
Ort: Hailbronn
24 Beiträge
 
Delphi 2005 Architect
 
#4

Re: Sicherheit im Spiel!

  Alt 15. Apr 2006, 21:21
Achso... Man kann auch Dateien nach dem inhalt überprüfen??
OK! Wenn das geht...
Ich kenne mich noch nicht sorichtig Gut mit Delphi aus! Ich hab
vorkurzen erst mit Telnet Programme angefangen!

Könntet ihr mir vieleicht denn Code hier in die Forum Schreiben?
André
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Sicherheit im Spiel!

  Alt 15. Apr 2006, 22:50
ne. kompletten code gibts hier nicht.

Außer in der Codelib

Prozesse auflistenProzesse auflisten

Da findest du einige Programme, mit denen du herausfinden kannst, welche Prozesse auf einem PC laufen.
Du kannst die auch gezielt abschießen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Sicherheit im Spiel!

  Alt 15. Apr 2006, 23:57
Mit Delphi kannst du jede beliebige Windows-Anwendung schreiben. Nur für z.B. einen Grafiktreiber wirst du wohl recht viel Assembler brauchen

Dateien nach Inhalt überprüfen geht am besten über Hashes. Ich häng mal eine Hash-Unit an. Die musst du ins Lib-Verzeichniss von Delphi kopieren und dann in der Uses-Liste von Unit1 hinzufügen. Dann kannst du Hashes (ähnlich wie Quersummen) von Dateien erstellen. Dann brauchst du nur noch die Hashes der verbreitesten Trainer/Cheat-Programmen und liest dann von jeder einzelne Datei auf dem Computer ein, ob sie den selben Hash hat.
Wenn ja --> dann ist ein Trainer gefunden, du musst also die Log-Datei schreiben.


Alle Dateien auf der Festplatte kannst du mit diesen drei Funktionen finden:
Delphi-Quellcode:
procedure getdirsindir(const verzeichniss:string;var dirs:tstringlist);
var
  sd:string;
  s:tsearchrec;
  i:integer;
begin
  dirs:=tstringlist.Create;
  sd:=dirup(verzeichniss);
  if findfirst(sd+'*.*',faanyfile,s)<>0 then begin
    sysutils.findclose(s);
    exit;
  end;
  dirs.add(s.Name);
  while findnext(s)=0 do
    dirs.Add(s.name);
  i:=0;
  while i<dirs.count do begin
    if ((dirs[i]='..') or (dirs[i]='.')) then begin
      dirs.Delete(i);
      i:=i-1;
    end else
      if not directoryexists(sd+dirs[i]) then begin
        dirs.Delete(i);
        i:=i-1;
      end;
    inc(i);
  end;
  sysutils.findclose(s);
end;

function getfilesindir(const verzeichniss,filter:string;var files:tstringlist):extended;
var
  sd:string;
  s:tsearchrec;
  i:integer;
  e:extended;
  flt:string;
begin
  if filter='then
    flt:='*.*'
  else
    flt:=filter;
  e:=0;
  sd:=dirup(verzeichniss);
  result:=0;
  files:=tstringlist.Create;
  if findfirst(sd+flt,faanyfile,s)<>0 then begin
    sysutils.findclose(s);
    exit;
  end;
  files.add(s.Name);
  while findnext(s)=0 do begin
    files.Add(s.name);
    e:=e+s.Size;
  end;
  i:=0;
  while i<files.count do begin
    if ((files[i]='..') or (files[i]='.')) then begin
      files.Delete(i);
      i:=i-1;
    end else
      if directoryexists(sd+files[i]) then begin
        files.Delete(i);
        i:=i-1;
      end;
    inc(i);
  end;
  result:=e;
  sysutils.findclose(s);
end;

function gettreeindir(const root:string;var files,dirs:tstringlist;filter:string):extended;
var
  sd:string;
  i,j:integer;
  fls,unterverzeichnisse:tstringlist;
  flt:string;
  groesse:extended;
begin
  groesse:=0;
  if filter='then
    flt:='*.*'
  else
    flt:=filter;
  sd:=dirup(root);
  files:=tstringlist.Create;
  dirs:=tstringlist.Create;
  dirs.Add(sd);
  i:=0;
  while i<dirs.Count do begin
    getdirsindir(dirs[i],unterverzeichnisse);
    for j:=0 to unterverzeichnisse.Count-1 do
      dirs.Add(dirup(dirs[i])+unterverzeichnisse.Strings[j]);
    inc(i);
  end;
  for i:=0 to dirs.Count-1 do begin
    groesse:=groesse+getfilesindir(dirs[i],flt,fls);
    for j:=0 to fls.Count-1 do
      files.Add(dirup(dirs[i])+fls.strings[j]);
  end;
  result:=groesse;
end;
Angehängte Dateien
Dateityp: pas md5_186.pas (9,4 KB, 7x aufgerufen)
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr.
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