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