| |
|
|
- Seite 1 - |
|
| Meldung: Microsoft hat ab Windows2000 die Meldepflicht für Prozesse eingeführt! Jeder User-Prozess hat gefälligst auf Anfrage seinen genauen Aufenthaltsort unverzüglichst anzugeben! Bei Bedarf können sämtliche Rechte entzogen und der Aufenthaltsort polizeilich festgesetzt werden!
Im Anhang befindet sich zu diesem Thema ein kleines Polizeiprogramm.
Meine Frage: Wie geht das?
Als Belohnung fürs Raten gibt es schönen leckeren Quelltext... |
| 609 kB | | Kurzbeschreibung: | Big Brother - Meldepflicht für Prozesse Version 3 | | Hochgeladen: | 10.10.2006 | | Ladeanzahl: | | | | Herunterladen |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
| Hinweis 2: Wenn du Toolhelp meinst, bist du da wohl auf dem falschen Dampfer. Es geht hier um die Current Directory, also das, was man unter Profan mit CHDIR einstellen kann.. |
|
|
| |
|
|
|
Frank Abbing | Nene, da meinte ich ganz was anderes. Ok, für die Hälfte der Prozesse habe ich schon eine Lösung, aber dein Programm war ja auch nicht perfekt Mal sehen, ob ich heute abend noch mal weiter bastle. |
|
|
| |
|
|
|
| Hallo Frank...
Das sieht schon ganz gut aus - bloß mir geht es nicht um den Pfad sondern um die Current Directory. Vielleicht falsche API? |
|
|
| |
|
|
|
Sebastian König | Hallo Andreas,
ich habe mal ein bischen experimentiert und könnte folgende Variante anbieten:
hook,prf KompilierenMarkierenSeparieren!$DLL
$H windows.ph
if %DLLInit
FileMapping öffnen:
declare hFileMap&,pMem#
hFileMap& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS,0,"$__skgetcurrentdir_1_")
pMem# = ~MapViewOfFile(hFileMap&,~FILE_MAP_ALL_ACCESS,0,0,0)
Daten auslesen:
declare id&,window&
id& = long(pMem#,0)
window& = long(pMem#,4)
if id& = ~GetCurrentProcessId() Bin ich gemeint?
Verzeichnis ermitteln und in FileMapping schreiben:
~GetCurrentDirectory(~MAX_PATH,pMem#)
Event-Objekt öffnen und signalisieren:
declare hEvent&
hEvent& = ~OpenEvent(~EVENT_ALL_ACCESS,0,"$__skgetcurrentdir_2_")
~SetEvent(hEvent&)
~CloseHandle(hEvent&)
endif
Aufräumen:
~UnmapViewOfFile(pMem#)
~CloseHandle(hFileMap&)
endif
declare g_hHook&
dllproc StartHook,0
g_hHook& = ~SetWindowsHookEx(~WH_GETMESSAGE,ProcAddr("DummyHookProc",3),%hInstance,0)
return g_hHook&
endproc
proc DummyHookProc Tut gar nichts...
parameters nCode&,wParam&,lParam&
return ~CallNextHookEx(g_hHook&,nCode&,wParam&,lParam&)
endproc
getdir.prf KompilierenMarkierenSeparieren!$H windows.ph
$H messages.ph
$I hook.inc
WindowStyle 520
WindowTitle "Aktuelles Verzeichnis fremder Prozesse auslesen"
Cls
declare hFileMap&,pMem#
hFileMap& = ~CreateFileMapping($FFFFFFFF,0,~PAGE_READWRITE,0,512,"$__skgetcurrentdir_1_")
pMem# = ~MapViewOfFile(hFileMap&,~FILE_MAP_ALL_ACCESS,0,0,0)
print "hFileMap&:",hFileMap&
declare hEvent&
hEvent& = ~CreateEvent(0,1,0,"$__skgetcurrentdir_2_")
print "hEvent&:",hEvent&
declare hDLL&
hDLL& = UseDLL("hook.dll")
print "hDLL&:",hDLL&
declare id&
id& = Val(Input$("Eingabe","Bitte Prozess-ID angeben",""))
long pMem#,0 = id&,%hwnd
declare hHook&
hHook& = starthook()
print "hHook&:",hHook&
Sollte harmlos sein und dafür sorgen, dass alles mit einer Nachrichtenschleife die Hook-DLL lädt:
~BroadcastSystemMessage(~BSF_POSTMESSAGE,0,~WM_COMMAND,0,0)
if ~WaitForSingleObject(hEvent&,2000) = ~WAIT_OBJECT_0
print "Verzeichnis ausgelesen:",string$(pMem#,0)
else
print "Keine Rückmeldung erhalten :-("
endif
~UnHookWindowsHookEx(hHook&)
~UnmapViewOfFile(pMem#)
~CloseHandle(hFileMap&)
FreeDLL hDLL&
print "Taste zum Beenden!"
WaitKey
end
Funktioniert aber leider längst nicht mit allen Prozessen, sondern nur mit denen, die sich irgendwie dazu überreden lassen, die Hook-DLL zu laden. Ich vermute mal, dass Du die Daten irgendwie anders (direkter) ermittelst...
MfG
Sebastian
P.S.: @iF: Wieso werden eigentlich bei abgeschalteter Code-Autoformatierung einzelne führende Leerzeichen nicht angezeigt? |
|
|
| |
|
|
|
Jörg Sellmeyer | <offtopic>Wenn Du direkt hinter [_code_] ein Ausrufezeichen setzt behältst Du Deine Formatierung. So [_code_]!</offtopic> |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 10.10.2006 ▲ |
|
|
|
|
| [quote:67096e4b87]P.S.: @iF: Wieso werden eigentlich bei abgeschalteter Code-Autoformatierung einzelne führende Leerzeichen nicht angezeigt?[/quote:67096e4b87] Das liegt an den Browsern - die canceln die Dopplungen. |
|
|
| |
|
|
|
Sebastian König | [quote:3df4846fcf] <offtopic>Wenn Du direkt hinter [_code_] ein Ausrufezeichen setzt behältst Du Deine Formatierung. So [_code_]!</offtopic> [/quote:3df4846fcf] Das habe ich auch gemacht (bin kein großer Fan der Autoformatierung *duck* ), aber einzelne Leerzeichen am Zeilenanfang werden trotzdem nicht angezeigt, zwei und mehr hingegen schon... Naja, wenn es am Browser liegt, kann man da wohl nichts machen... |
|
|
| |
|
|
|
| Hallo Sebastian...
So gehts natürlich auch - so hab ichs aber nicht gemacht. Keine DLL-Injektion, es gibt nur einen Quelltext! Dein Quelltext sieht sehr interessant aus - den nehme ich mir noch genauer vor, besten Dank.
P.S. : Ja, die ermittele ich direkter! |
|
|
| |
|
|
|
| Ich geb mal noch ein paar Tipps:
Hinweis 3: Wird das Proggi im System Account gestartet, liest es mehr Current Directories aus. Wer gar keine andere Möglichkeit hat, könnte das z.B. über PrivAktivate tun: - PrivAktivate als Service starten (über Menü) - Auf der ersten Registrierkarte dann Anwendung auswählen klicken
Hinweis 4: Wer Treiber programmieren kann, kommt wohl am schnellsten auf die Lösung des Rätsels |
|
|
| |
|
|
|
Frank Abbing | [quote:a144e540f8]Hinweis 3: Wird das Proggi im System Account gestartet, liest es mehr Current Directories aus.
Hinweis 4: Wer Treiber programmieren kann, kommt wohl am schnellsten auf die Lösung des Rätsels[/quote:a144e540f8] Ok, da brauch ich gar nicht weiter zu rätseln. Ist nicht mein Thema. Einen Treiber zu schreiben, um ein Rätsel zu lösen, halte ich zudem für übertrieben... |
|
|
| |
|
|
|
| Nein, falsch verstanden - mein Programm ist kein Treiber. Das geht auch mit Profan nicht. Bloß wer Treiber schreiben kann, hats einfacher mit der Lösung. Genauer gesagt ist das ein Hinweis auf die DLL, in der sich die API befindet, die ich da verwende...ein sehr guter Hinweis, mit dem sich das Rätsel wohl ohne Probleme lösen läßt . |
|
|
| |
|
|
|
Michael Wodrich | Etwas die ZW...(irgendwas)-Funktionen mit Kernel-Mode Rechten? |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 10.10.2006 ▲ |
|
|
|