Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi In Process nach bestimmten Wert suchen (https://www.delphipraxis.net/109121-process-nach-bestimmten-wert-suchen.html)

napsterxx 24. Feb 2008 20:39


In Process nach bestimmten Wert suchen
 
So nochmal ich,
Ich möchte in einem Prozess, ich habe den name und die Prozess ID nach einm Wert suchen, um genau zu sein nach 87713. Kann ich das mit Delphi überhaupt realisiern? greez

Neotracer64 24. Feb 2008 21:27

Re: In Process nach bestimmten Wert suchen
 
Kommt mir doch bekannt vor ;)

http://www.delphipraxis.net/internal...highlight=wert

napsterxx 25. Feb 2008 13:29

Re: In Process nach bestimmten Wert suchen
 
Habe es endlich geschafft, das er sucht aber es dauert so wahnsinnig lange ... bei CE oder TSearch geht das alles schneller
ICh mache es derzeit so:
Delphi-Quellcode:
procedure TCrossXSearch.Suche(Sender: TObject);
var
  hprocess: Thandle;
  address: Pointer;
  LetzteZifer : Char;
  LI : TListItem;
  I: Integer;
begin
  hProcess := OpenProcess(PROCESS_VM_READ,False,ProzessID);
  address := FindValueInProcess(hProcess,StrToInt('$'+( DezToHexa1(Edit1.Text) )),StrToInt('$00401000'),$+ProzessSize);
  if address <> nil then
  begin
    LI := ListView1.Items.Insert(ListView1.Items.Count);
    LI.Caption := Format('%x',[DWORD(address)]);
    LI.SubItems.Add(Edit1.Text);

    for I := 1 to ProzessSize do
    begin
      address := FindValueInProcess(hProcess,$1, StrToInt('$00' + Format('%x',[DWORD(address)])) +$1,$+ProzessSize);
      if address <> nil then
      begin
        Listbox1.Items.Add(Format('%x',[DWORD(address)]));
        LI := ListView1.Items.Insert(ListView1.Items.Count);
        LI.Caption := Format('%x',[DWORD(address)]);
        LI.SubItems.Add(Edit1.Text);
        Edit2.Text := IntToStr(ListView1.Items.Count);
      end else
      begin
          CloseHandle(hProcess);
        Exit;
      end;
    end;
  end;
end;

napsterxx 9. Mär 2008 10:35

Re: In Process nach bestimmten Wert suchen
 
Ich suche halt in allen Adressen, und glaube deshalb dauert das so lang. Kann jemand helfen?

thkerkmann 9. Mär 2008 10:44

Re: In Process nach bestimmten Wert suchen
 
Moin,

was ist denn das
Delphi-Quellcode:
StrToInt('$00' + Format('%x',[DWORD(address)])
für eine Konstruktion ?

Also wenn ich nicht ganz daneben liege machst du hier aus einem DWORD ein DWORD mit genau dem gleichen Inhalt über den Umweg vom Format und StrToInt ?
Könnte das dein Performanceproblem sein ?

Dann kann man doch gleich
Delphi-Quellcode:
DWORD(address)
schreiben ?

Gruss

napsterxx 9. Mär 2008 11:08

Re: In Process nach bestimmten Wert suchen
 
Öhm joa :) Aber das beschleunigt trotzdem nicht die Suche, die funktioniert ja, nur eben mega langsam

Neotracer64 14. Mär 2008 02:52

Re: In Process nach bestimmten Wert suchen
 
Schau dir mal VirtualQueryEx an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 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