Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dll eines Prozesses nach Strings durchsuchen (https://www.delphipraxis.net/112687-dll-eines-prozesses-nach-strings-durchsuchen.html)

Metal_Snake2 25. Apr 2008 11:18


Dll eines Prozesses nach Strings durchsuchen
 
hi,

ich möchte gerne die Module eines Ausgeführten Prozesses nach Strings durchsuchen, jeoch möchte ich nicht über den Dateipfad die Datei durchsuchen sondern würde ich gerne den Speicher des Modules nach Strings durchsuchen.

Mit dieser Methode aus diesem Link kann man einen Stream nach Strings durchsuchen : Klack

Meine Frage ist jetzt: Wie kann ich den Speicherbereich einer DLL Datei die im Speicher eines Prozesses liegt jetzt öffnen und mit der Obigen Methode nach Strings durchsuchen.

Mit folgenden code durchsuche ich einen Ausgeführten Process nach einer Dll:
Delphi-Quellcode:
function TUtils.GetModuleStrings(const modulefilename: string): TStringlist;
var
  hProcSnap : THandle;
  hModuleSnap: THandle;
  pe32       : TProcessEntry32;
  me32       : TModuleEntry32;
  str       : TStringlist;
begin
  hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS or TH32CS_SNAPTHREAD, 0);
  if hProcSnap = INVALID_HANDLE_VALUE then exit;

  pe32.dwSize := SizeOf(ProcessEntry32);

  if Process32First(hProcSnap, pe32) = true then
    begin
      while Process32Next(hProcSnap, pe32) = true do
        begin
          hModuleSnap := CreateToolHelp32SnapShot(TH32CS_SNAPMODULE, pe32.th32ProcessID);
          if hModuleSnap = INVALID_HANDLE_VALUE then continue;

          me32.dwSize := SizeOf(ModuleEntry32);
          if Module32First(hModuleSnap, me32) = true then
            begin
              while Module32Next(hModuleSnap, me32) = true do
                begin
                  if (trim(lowercase(me32.szModule)) = trim(lowercase(modulefilename))) then
                    begin
                      str := TStringlist.create;
                      try
                      //TODO Speicher des Modules nach Strings durchsuchen und in die Stringliste Hinzufügen
                      finally
                        str.free;
                      end;
                      break;
                  end;
              end;
          end;
      end;
  end;
end;
Ich hoffe mir kann jemand weiterhelfen

Danke fürs lesen


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