AGB  ·  Datenschutz  ·  Impressum  







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

Verständnisproblem need help

Ein Thema von wadimwadim · begonnen am 24. Mai 2008 · letzter Beitrag vom 24. Mai 2008
Antwort Antwort
wadimwadim

Registriert seit: 22. Mai 2008
45 Beiträge
 
#1

Verständnisproblem need help

  Alt 24. Mai 2008, 19:01
Hallo DP,
ich kenne mich leider noch nicht sehr gut mir delphi aus.
Ich habe ein Code hier im Forum gesehen und ihn übernommen, doch ich verstehe ihn nicht und kann ihn deshalb schlecht umschreiben.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  ProcessHandle,WindowHandle: THandle;
  StartMem: DWord;
  lpBuffer: TMemoryBasicInformation;
  myMem: Pointer;
  dwRead: DWord;
  dwOld: DWord;
  processID,pidi : Integer;
begin
  WindowHandle :=FindWindow(nil,'Guild Wars');
  ProcessID:= GetWindowThreadProcessId(WindowHandle ,@Pidi);
  ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, false, pidi);

  if (ProcessHandle <> 0) then
  begin
    StartMem := $00400000;
    while (StartMem <> $7FFFFFFF) do
    begin
      if VirtualQueryEx(ProcessHandle, Pointer(StartMem), lpBuffer, SizeOf(lpBuffer)) = SizeOf(lpBuffer) then
      begin
        if VirtualProtectEx(ProcessHandle, lpBuffer.AllocationBase, lpBuffer.RegionSize, PAGE_EXECUTE_READWRITE, dwOld) then
        begin
          myMem := VirtualAlloc(nil, lpBuffer.RegionSize, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
          if (myMem <> nil) then
          begin
            if ReadProcessMemory(ProcessHandle, lpBuffer.AllocationBase, myMem, lpBuffer.RegionSize, dwRead) and (lpBuffer.RegionSize = dwRead) then
            begin
              Form1.ListBox1.Items.Add('Speicher gelesen: '+IntTohex(DWord(lpBuffer.AllocationBase),8)+', '+
                                        'Größe: '+IntToHex(lpBuffer.RegionSize,8)+', '+
                                        'gespeichert in: '+InttoHex(DWord(myMem),8));
            end;
            VirtualFree(myMem, 0, MEM_RELEASE);
          end;
          VirtualProtectEx(ProcessHandle, lpBuffer.AllocationBase, lpBuffer.RegionSize, dwOld, dwOld);
        end;
        if (lpBuffer.RegionSize <> 0) then
          inc(startMem, lpBuffer.RegionSize) else
          startMem := startMem+$1000;
      end else
        inc(StartMem,$1000);
    end;

  end;

end;
procedure TForm1.Button2Click(Sender: TObject);
begin
listbox1.Clear;
end;

end.
Könntet Ihr mir vielleicht diesen Code ein wenig erläutern und mir bei meinem Problem helfen.
Mein Problem ist, dass ich alle Speicheradressen($00400000-$7FFFFFFF) mit dem Wert '100' in einer .txt Datei, oder auf Arrays speicher möchte; Aber das nicht hinbekomme.

Das jetztige Script versteh ich kaum, ich vermute, dass er all diese Adressen im Arbeitsspeicher speichert.



MfG

wadimwadim
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Verständnisproblem need help

  Alt 24. Mai 2008, 19:19
sehe ich das richtig das das ein Trainer oÄ für Guild Wars wird?
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Verständnisproblem need help

  Alt 24. Mai 2008, 19:26
Zitat von wadimwadim:
ich kenne mich leider noch nicht sehr gut mir delphi aus.
Ich habe ein Code hier im Forum gesehen und ihn übernommen, doch ich verstehe ihn nicht und kann ihn deshalb schlecht umschreiben.
... Das Verstehen können wir Dir nicht abnehmen. Als Copy&Paste-Entwickler wirst Du auch nicht weit kommen. Wenn Du konkrete Fragen hast, hilft hier jeder gern - aber dieses allgemeine "ich habe das was an Code zusammenkopiert, macht mal bitte was draus" wird hier nichts. Garantiert nicht.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
wadimwadim

Registriert seit: 22. Mai 2008
45 Beiträge
 
#4

Re: Verständnisproblem need help

  Alt 24. Mai 2008, 19:30
Nein, ich möchte kein Trainer oder ähnliches erstellen, Alle diese Werte sind bei Guild Wars serverside und können deshalb nicht geändert werden.
Nein, ich möchte auch kein BOT für Guild Wars schreiben.
Ich möchte nur alle Adressen rausfinden und lediglich mit ihnen arbeiten, auslesen und nicht sie manipulieren.

Ich will nur wissen, wie ich diese Daten in einer txt datei speicher kann.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Verständnisproblem need help

  Alt 24. Mai 2008, 19:33
Versuche einmal den Code wenigstens grob zu verstehen. Es gibt da eine Stelle, an der ganz offensichtlich die Speicheradress-Daten in Variablen vorhanden sind.
  Mit Zitat antworten Zitat
wadimwadim

Registriert seit: 22. Mai 2008
45 Beiträge
 
#6

Re: Verständnisproblem need help

  Alt 24. Mai 2008, 19:41
ich schätze mal die werden in mymem gespeichert, aber ich verstehe nicht was dieses "VirtualAlloc" ist..
Und ich weiss auch nicht wie ich nach einem ganz bestimmten wert suchen kann, und nicht alle .
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Verständnisproblem need help

  Alt 24. Mai 2008, 20:54
Dir ist hoffentlich bekannt, dass man die Bedeutung von Funktionen in der Delphi-Hilfe oder der MSDN Library nachschlagen kann.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  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 13:21 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