AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Execute Hook

Offene Frage von "Sanguis"
Ein Thema von Sanguis · begonnen am 27. Feb 2007 · letzter Beitrag vom 21. Dez 2007
Antwort Antwort
Seite 1 von 2  1 2      
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#1

Execute Hook

  Alt 27. Feb 2007, 10:14
Guten Morgen,

ich hoffe ich schreibe hier ins richtige Forum. Falls nicht, bitte verschieben.

Es geht mir um einen execute Hook. Und zwar um einen bestimmten. Gefunden habe ich ein Beispiel heir: http://www.michael-puff.de/dirindex..../Importe/toms/

Dies gucke ich mir auch schon seit ca. einer Woche an. Was ich da sehe gefällt mir, das sind schöne Möglichkeiten. Ein Problem habe ich allerdings. In dem Beispiel wird, wenn man ein Programm öffnet, ein kleines Abfragefenster als popup geöffnet. Dies zeigt den Namen/Pfad der Anwendung an, die versucht sich zu öffnen und fragt ob man das wirklich zulassen will.
Soweit so gut.
Ich habe mir jetzt eine kleine Funktion geschrieben die diesen Teil abändern soll. Diese Funktion ( if isOnWhitList(string) = '1' then ) öffnet eine Datei und guckt ob in dieser das Programm gelistet ist, welches starten will. Falls ja, gibt es eben '1' zurück.
Das Problem ist jetzt, das mir dabei der explorer abstürzt und ich einfach den Grund dafür nicht finde.
Ich habe erst vermutet das es irgendwie am Zugriff auf die Datei liegt, in der ich die erlaubten Programme festlege. Dann ist mir aber aufgefallen das, wenn der explorer nicht im Hintergrund läuft, der Hook einwandfrei funktioniert, wie ich es gern hätte.

Woran kann das liegen? Ich bräuchte halt den explorer weiterhin im Hintergrund.

Hoffe das mir hier jemand helfen kann.

Gruß,
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#2

Re: Execute Hook

  Alt 21. Mai 2007, 21:31
hallo,
ich hab mit den gleichen hook mal angeschaut, siehe anhang.
Aber ich begreif ihn nicht
Wo wird da festgestellt, welche anwendung gestartet wird?
Und ob sie "notpad" ist ?

MfG - Ghost007
Angehängte Dateien
Dateityp: zip executehook_134.zip (280,7 KB, 30x aufgerufen)
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Execute Hook

  Alt 21. Mai 2007, 21:48
Ich vermute mal es wird CreateProcess, ShellExecute und WinExec gehookt. Vielleicht nocht NtCreateProcess .. all dieses APIs besitzen einen Parameter der die Befehlszeile übergibt.
Daraus kannst du den Dateinamen ermitteln ..
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#4

Re: Execute Hook

  Alt 21. Mai 2007, 22:31
öhm, ok und weiter? könntest du dich vll etwas auf das beispiel aus dem anhang beziehen?

danke

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#5

Re: Execute Hook

  Alt 21. Mai 2007, 23:00
In der HookUnit.pas:

Delphi-Quellcode:
function NewShellExecute(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST; stdcall;
begin
  Result := 0;
  if Windows.MessageBox(0, PChar('Soll ' + Directory + FileName + ' ausgeführt werden?'), '[ShellExecute Hooked]', MB_OKCANCEL) = IDOK then
    Result := OldShellExecute(hwnd, Operation, FileName, Parameters, Directory, ShowCmd);
end;
Alle Funktionen, deren Namen dort mit "New" anfangen, sind die, die anstelle der "richtigen" Funktionen aufgerufen werden. Und da sind ja die Argumente bei, z.B. FileName und Directory..
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#6

Re: Execute Hook

  Alt 22. Mai 2007, 12:41
ah,
ok. danke werd mir des mal anschaun.

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#7

Re: Execute Hook

  Alt 22. Mai 2007, 19:35
du hattest recht

noch ne kleine frage, hab hier im forum schonmal gesucht, aber leider nichts gefunden.
Gibts auch sowas wie nen close/terminate hook?

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#8

Re: Execute Hook

  Alt 23. Mai 2007, 21:14
*PUSH*
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#9

Re: Execute Hook

  Alt 28. Mai 2007, 21:44
Klar, du Hookst "einfach" Terminate Process

mfG
Markus

PS: Ich kämpfe gerade mit der selben Materie
Markus
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#10

Re: Execute Hook

  Alt 21. Dez 2007, 21:09
Zitat von markusj:
Klar, du Hookst "einfach" Terminate Process

mfG
Markus

PS: Ich kämpfe gerade mit der selben Materie

Hi,
hab mich nach langer zeit mal wieder hingesetzt und den execute hook für meine bedürfnisse perfektioniert
Jetzt ist aber wieder die frage nach einem terminate hook aufgetaucht. Ich habs auch schon versucht indem ich den execute hook mit terminate "nachbau" ... aber ich hab, denk ich, schlicht zu wenig ahnung von dem terminate befehl ... bist du evtl schon weiter gekommen? oder hat irgend jmd ne idee?

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 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