Einzelnen Beitrag anzeigen

Metal_Snake2

Registriert seit: 19. Nov 2004
134 Beiträge
 
Delphi 7 Personal
 
#1

Dll eines Prozesses nach Strings durchsuchen

  Alt 25. Apr 2008, 11:18
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
  Mit Zitat antworten Zitat