Main Process... ImageBase
spacer
Autor Nachricht
Don Krawallo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win 7 x64
Delphi 2010
BeitragVerfasst: Mi 24.08.11 18:34 
Guten Tag...

Für all diejenigen die's interessiert... Es gibt eine Möglichkeit das man auch über CreateToolHelp... an die Basis Adresse der Main Executable rankommt.
Folgendes beschreibt die Möglichkeit wie man die Basis eines geladenen Moduls bekommt.
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
Var
ProcID: Integer;
FindDLLBase: Boolean;
SnapMod: THandle;
ModuleEntry: TModuleEntry32;
DLLBaseAddy: PByte;
Begin
SnapMod:= CreateToolhelp32Snapshot(TH32CS_Snapmodule, ProcID);
ModuleEntry.dwSize := Sizeof(ModuleEntry);
FindDLLBase:= Module32First (SnapMod, ModuleEntry);
while FindDLLBase do begin
if (CompareText(Moduleentry.szModule, 'Game.dll')=0) then
DLLBaseAddy:= ModuleEntry.modBaseAddr;
FindDLLBase:= Module32Next(SnapMod, ModuleEntry);
end;
CloseHandle(SnapMod);
end;


Bei einer EXE Datei funktioniert das mit obigen Beispiel nur in abgewandelter Form. Nämlich so...
ausblenden Delphi-Quelltext markieren
1:
if CompareText(Moduleentry.szModule, 'Game.exe')=0 then

Nun werden einige sagen - Logisch, da steht ja jetz auch 'Game.exe' anstatt 'Game.dll'. Aber worauf es hierbei ankommt ist der Unterschied zum obigen Sourcecode das hier die 2 Klammern fehlen. Als da wären zum Einen die Klammer Auf vor "CompareText" und zum Anderen die Klammer Zu nach dem "=0". Zum anderen könnte man diese Zeile auch noch mit "lstrcmp/lstrcmpi" realisieren, würde ja genau so gehen.

Was mich jetzt aber mal interessieren würde ist, warum das so ist? Oder vielmehr die Frage - Welche Bedeutung/Funktion haben diese beiden Klammern?

MFG
Don Krawallo
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1808
Erhaltene Danke: 6

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mi 24.08.11 20:53 
Diese kann man auch weglassen.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Moderator
Beiträge: 3722
Erhaltene Danke: 133

Arch Linux, Win 7
F#, C# (VS2010)
BeitragVerfasst: Mi 24.08.11 21:42 
Anders gesagt: Am Verhalten sollten die natürlich nichts ändern. Kannst du das mit Assembler-Auszügen belegen?

_________________
>λ=
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home