Deutsch
Stammtisch & Café

Rätsel: Big Brother is watching you...

 
- 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
Ladeanzahl88
Herunterladen
 
09.10.2006  
 



 
- 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..
 
10.10.2006  
 




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.

ss.jpg  
82 kB
Hochgeladen:10.10.2006
Ladeanzahl57
Herunterladen
 
10.10.2006  
 



Hallo Frank...

Das sieht schon ganz gut aus - bloß mir geht es nicht um den Pfad sondern um die Current Directory.
Vielleicht falsche API?
 
10.10.2006  
 




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?
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
10.10.2006  
 




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.
 
10.10.2006  
 




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...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
10.10.2006  
 



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!
 
10.10.2006  
 



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
 
10.10.2006  
 




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...
 
10.10.2006  
 



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 .
 
10.10.2006  
 




Michael
Wodrich
Etwas die ZW...(irgendwas)-Funktionen mit Kernel-Mode Rechten?
 
Programmieren, das spannendste Detektivspiel der Welt.
10.10.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.545 Betrachtungen

Unbenanntvor 0 min.
Ernst12.05.2014
iF07.07.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie