Autor Beitrag
detke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WIN XP
Delphi 5
BeitragVerfasst: Mo 30.05.11 16:49 
Hey,

Lange lange ist es her, da habe ich mich mit Delphi beschäftigt, jetzt habe ich das ganze mal wieder ausgegraben!

Meine Frage ist, wie kann ich die PID eines Prozesses in Delphi auslesen ?

Ich habe es schön über den Window Handel versucht, allerdings ist das ganze für einen DLL Injector und wenn ich das ganze über den WindowHandel mache ist es zu langsam und das Hackshield hat bereits geladen, gibt es eine andere Möglichkeit die PID auszulesen in Delphi ?

Nehmen wir als Beispiel einfach notepad.exe :)

danke euch,

Gruß
detke


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 30.05.2011 um 17:34
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 30.05.11 17:07 
Erstens: Hackshield hört sich nicht gerade danach an, als sei dein Vorhaben legal...
Was hast du denn genau vor?

Beim Versuch ein Onlinespiel zu hacken werden wir dir natürlich nicht helfen...

Zweitens: Startest du den Prozess selbst? Dann hast du die Prozess-ID doch bereits.
Und wenn nicht? Woher weißt du denn den Zeitpunkt, an dem du die ID wissen willst? Und was willst du damit machen?
detke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WIN XP
Delphi 5
BeitragVerfasst: Mo 30.05.11 17:09 
Das Hackshield eines Games zu umgehen ist nicht verboten! ;)

Das hackshield läd am anfang, sprich, wenn der Prozess noch kein Fenster hat, deswegen geht es mit dem WindowHandel nicht.

Nein, den Prozess kann ich nicht selbst starten.

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Habe es nun geschafft!

Für alle es geht so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
function GetProcID(sProcName: String): Integer;
var
  hProcSnap: THandle;
  pe32: TProcessEntry32;
begin
  result := -1;
  hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
  if hProcSnap = INVALID_HANDLE_VALUE then exit;

  pe32.dwSize := SizeOf(ProcessEntry32);

  { wenn es geklappt hat } 
  if Process32First(hProcSnap, pe32) = true then
    { und los geht's: Prozess suchen} 
    while Process32Next(hProcSnap, pe32) = true do
    begin
      if pos(sProcName, pe32.szExeFile) <> 0then
        result := pe32.th32ProcessID;
    end;
CloseHandle(hProcSnap);
end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 30.05.11 17:28 
user profile icondetke hat folgendes geschrieben Zum zitierten Posting springen:
Das Hackshield eines Games zu umgehen ist nicht verboten! ;)
Bist du sicher? Hast du einmal in die AGB / Nutzungsbedingungen geschaut? In der Regel steht dort drin, dass du es nicht darfst.
detke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WIN XP
Delphi 5
BeitragVerfasst: Mo 30.05.11 17:30 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile icondetke hat folgendes geschrieben Zum zitierten Posting springen:
Das Hackshield eines Games zu umgehen ist nicht verboten! ;)
Bist du sicher? Hast du einmal in die AGB / Nutzungsbedingungen geschaut? In der Regel steht dort drin, dass du es nicht darfst.


AGB != Gesetzt, ich darf doch wohl auf meinem RAM machen was ich will es ist ja nicht gesagt, dass ich etwas böses mache, wenn ich das HS umgehe.

Die Spiele Publisher können den Account bannen, allerdings sind das nur AGBs keine Gesetze ;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 30.05.11 17:57 
Wie du meinst, aber dennoch wird das hier im Forum nicht unterstützt. Das nur als Hinweis für ggf. kommende Fragen. ;-)
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Mo 30.05.11 19:24 
user profile icondetke hat folgendes geschrieben Zum zitierten Posting springen:
Für alle es geht so:

Wenn ich die nachfolgenden Delphizeilen so lese, wage ich das doch sehr zu bezweifeln ...
ausblenden Delphi-Quelltext
1:
2:
3:
if Process32First(hProcSnap, pe32) = true then
[ ... ]
while Process32Next(hProcSnap, pe32) = true do
finalizat0r
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 24
Erhaltene Danke: 1



BeitragVerfasst: Mo 30.05.11 23:44 
user profile iconGerd Kayser hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich die nachfolgenden Delphizeilen so lese, wage ich das doch sehr zu bezweifeln ...
ausblenden Delphi-Quelltext
1:
2:
3:
if Process32First(hProcSnap, pe32) = true then
[ ... ]
while Process32Next(hProcSnap, pe32) = true do
Das ist zwar kein "perfekter" Quellcode, aber auch kein Weltuntergang :!:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 30.05.11 23:45 
user profile iconfinalizat0r hat folgendes geschrieben Zum zitierten Posting springen:
Das ist zwar kein "perfekter" Quellcode, aber auch kein Weltuntergang :!:
Um genau zu sein nicht "nicht perfekt", sondern schlicht falsch. ;-)

Hier habe ich mal ein kleines Beispiel gebastelt, wann so ein Vergleich mit True schief geht:
www.delphi-forum.de/....php?p=548760#548760
Mehr dazu steht hier unter Anfängerfehler:
www.delphi-treff.de/...olean-werten/page/4/
Und warum das auch vollkommen unlogisch ist:
www.delphi-forum.de/....php?p=560637#560637

Für diesen Beitrag haben gedankt: finalizat0r
finalizat0r
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 24
Erhaltene Danke: 1



BeitragVerfasst: Fr 03.06.11 16:12 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Um genau zu sein nicht "nicht perfekt", sondern schlicht falsch. ;-)


Danke für diese Information, so hab ich das noch garnicht betrachtet :!:

Gruß
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 03.06.11 16:24 
Die AG- und/oder Nutzungsbedingungen sind fast immer unwirksam bzw. null und nichtig, da pauschal und oft sogar überraschend.

Mir ist völlig schleierhaft, warum in den Delphiforen den Programmherstellern diesbezüglich ständig so auffällig einseitig, ja willfährig nach dem Munde geredet wird.

Allerdings ist das Urheberrecht in jedem Falle wirksam und mithin zu beachten.