AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi (Zugriffs-)Probleme mit "Trainer"
Thema durchsuchen
Ansicht
Themen-Optionen

(Zugriffs-)Probleme mit "Trainer"

Ein Thema von SnuffMaster23 · begonnen am 25. Mai 2007 · letzter Beitrag vom 13. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#1

(Zugriffs-)Probleme mit "Trainer"

  Alt 25. Mai 2007, 23:12
Moin!
Ich versuch grad ein Tool zu schreiben um mit einem Addon für WoW zu kommunizieren.
Hab mir gedacht, ich kann da munter im Speicher von WoW lesen und schreiben, aber ich kann scheinbar garnicht darauf zugreifen. ReadProcessMemory liefert schon beim ersten Zugriff false

Dann hab ich versucht, WoW damit erst zu starten und mich als Debugger einzuschleusen:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  SecAttr: SECURITY_ATTRIBUTES;
  SecDesc: SECURITY_DESCRIPTOR;
  StartInf: STARTUPINFO;
begin
  InitializeSecurityDescriptor(@SecDesc, SECURITY_DESCRIPTOR_REVISION);
  with SecAttr do
  begin
    nLength := SizeOf(SECURITY_ATTRIBUTES);
    lpSecurityDescriptor := @SecDesc;
    bInheritHandle := false;
  end;

  FillChar(StartInf, SizeOf(StartInf), 0);
  StartInf.cb := SizeOf(StartInf);
  StartInf.wShowWindow := SW_SHOW;
  StartInf.dwFlags := STARTF_USESHOWWINDOW;

  if CreateProcess(PChar(Pfad), '', @SecAttr, nil, false, DEBUG_PROCESS, nil, PChar(ExtractFilePath(Pfad)), StartInf, ProcInfo) then
  begin
    Button1.Enabled := true;
  end;
end;
Es geht jedoch nichtmal auf bzw. ist nicht zu sehen und belegt nur ca. 80k Speicher.

Damit wollte ich erstmal versuchen, die Variable vom Addon-Script zu finden, das ist natürlich noch nicht endgültig
Zu erkennen sollte die Variable daran sein dass 255 Bytes voll mit 'edgar' drin stehen.
Da sin jetzt noch einige Debug-Features drin wie z.B. das mit dem Richedit.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  c, num: Cardinal;
  buf1,
  buf2: PChar;
  i, Flag: Integer;
  Reslt: Boolean;
begin
  c := FindWindow(nil, 'World of Warcraft');
  if c > 0 then
  begin
    GetWindowThreadProcessId(c, @c);
    c := OpenProcess(PROCESS_ALL_ACCESS, False, ProcInfo.dwProcessId);

    for i := 0 to 51 do
    begin
      buf2 := PChar(buf2 + 'edgar');
    end;

    i := 0;
    Reslt := true;
    while Reslt do
    begin
      while ReadProcessMemory(c, Ptr(i), buf1, 5, num) do
      begin
        RichEdit1.Lines.Add(IntToStr(i));
        inc(i);
        if buf1 = 'edgarthen break;
      end;
      Reslt := ReadProcessMemory(c, Ptr(i), buf1, 255, num);
      if buf1 = buf2 then
      begin
        Flag := -1;
        break;
      end;
    end;

    RichEdit1.Lines.Add(IntToStr(Flag));

    CloseHandle(c);

    Timer1.Enabled := false;
  end;
end;
Was mach ich falsch, wie mach ichs richtig - und - hab ich überhaupt ne Chance die Daten von dem Script zu finden und zu manipulieren?
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: (Zugriffs-)Probleme mit "Trainer"

  Alt 26. Mai 2007, 07:54
Deine SSuchschleife ist ein wenig komisch. Wer garantiert dir denn das in den gelesenen
5 Chars "edgar" steht sondern zB. "öÂedg". du solltest den Tähler nur un eins erhöhen.
QAuserdem dind die Abbruchbedingungen nicht klar def.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#3

Re: (Zugriffs-)Probleme mit "Trainer"

  Alt 26. Mai 2007, 10:56
Hmmm... also da Du ein WoW installiert hast, hast Du auch die Benutzungsbedingungen durchgelesen ( ), deswegen ist mir reichlich unklar, woher Deine Vermutung kommt, Du könntest da "munter" im Speicher lesen oder schreiben. Dummerweise bekommt man die nachträglich so gut wie nicht mehr angezeigt, wirst Du beim nächsten Patch nochmal schauen müssen, wenn Dein Account dann noch nicht gesperrt ist

Kurz gesagt, das liest Du wahrscheinlich schon aus obigen Zeilen, die mögen keine Cheats, überwachen dementsprechend durchaus auch im Client selber, was da so mit unerlaubten Methoden (und ein ReadProcessMemory ist definitiv untersagt) passiert, und reagieren dann empfindlich.
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#4

Re: (Zugriffs-)Probleme mit "Trainer"

  Alt 26. Mai 2007, 12:36
Was du vorhast, ist nicht nur verboten, wie CCRDude anmerkte, sondern auch nicht gerade einfach, weil WoW einen relativ umfangreichen Cheatschutz mitbringt. Als Spieler würde ich außerdem an dich appellieren, das gar nicht erst weiterzuverfolgen. Falls doch, sind die Chancen realistisch, dass du zu der nächsten "100000 Cheater gebannt"-Meldung auf der Startseite gehörst.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
BBG
(Gast)

n/a Beiträge
 
#5

Re: (Zugriffs-)Probleme mit "Trainer"

  Alt 26. Mai 2007, 12:45
Siehe auch hier.
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#6

Re: (Zugriffs-)Probleme mit "Trainer"

  Alt 26. Mai 2007, 12:52
Ohne eine gültige Rechtsberatung geben zu können, behaupte ich, dass es irrelevant ist, ob der Speicher unter Copyright steht. Das AUslesen und das Verändern desselben im Spiel verstößt gegen die AGB des Accounts.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#7

Re: (Zugriffs-)Probleme mit "Trainer"

  Alt 26. Mai 2007, 13:24
@turboPASCAL: inc(i) erhöht doch nur um eins
Und die Abbruchbedingungen, naja, ich les halt so weit bis ReadProcessMemory aus irgend einem Grund nichts mehr lesen kann, also false zurückgibt. Das war auch nur der erste Versuch, ich kann ja sowieso nichts lesen...

Nein, das soll kein Cheat werden sondern nur ein Ingame-IRC-Client. Und da man mit (Blizzards) LUA nicht direkt auf den Server verbinden kann wollte ich das so machen.
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: (Zugriffs-)Probleme mit "Trainer"

  Alt 26. Mai 2007, 13:27
Naja es soll vielleicht kein Cheat werden aber ob dir Blizzard das abnimmt ist die andere Frage. Außerdem schätze ich ist es allgemein verboten im Speicher von WoW rumzuwühlen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#9

Re: (Zugriffs-)Probleme mit "Trainer"

  Alt 26. Mai 2007, 15:05
Zitat von SnuffMaster23:
@turboPASCAL: inc(i) erhöht doch nur um eins
[...]
Ja, das machst du... ich habe mich total verguckt und zuDDem noch zahlreich Vertippt.
Ist wohl nicht mein Tag heute.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: (Zugriffs-)Probleme mit "Trainer"

  Alt 26. Mai 2007, 16:14
Moin Snuffmaster,

warum überprüfst Du eigentlich nicht mal das von OpenProcess zurückgegebene Handle auf Gültigkeit?
Ich möchte fast wetten, dass OpenProcess fehlschlägt, und GetLastError Dir 5 (ACCESS_DENIED) zurückgibt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:17 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