Italia
Stammtisch & Caffè

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

 
- Page 1 -


Meldung: Microsoft hat ab Windows2000 die Meldepflicht per 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 è 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 per Prozesse Version 3
Hochgeladen:10.10.2006
Downloadcounter88
Download
 
09.10.2006  
 



 
- Page 3 -



Sebastian
König
[quote:80e778690a]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 è, die ich da verwende...ein sehr guter Hinweis, mit dem sich das Rätsel wohl ohne Probleme lösen läßt . [/quote:80e778690a]Ok, dann tippe ich mal auf eine der Nt... oder Zw... Funktionen in der NTDLL - aber da gibt es wirklich sehr viele...

Oder steht das Verzeichnis womöglich an einer festen Adresse und kann einfach mit ReadProcessMemory() ausgelesen werden?

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
10.10.2006  
 



[quote:32d5ba0af9=Sebastian König][quote:32d5ba0af9]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 è, die ich da verwende...ein sehr guter Hinweis, mit dem sich das Rätsel wohl ohne Probleme lösen läßt . [/quote:32d5ba0af9]Ok, dann tippe ich mal auf eine der Nt... oder Zw... Funktionen in der NTDLL - aber da gibt es wirklich sehr viele...

Oder steht das Verzeichnis womöglich an einer festen Adresse und kann einfach mit ReadProcessMemory() ausgelesen werden?

MfG

Sebastian[/quote:32d5ba0af9]
Zu 1: 100 Punkte.

Zu 2: 50% richtig!

Es wird!
 
10.10.2006  
 




Sebastian
König
Ok, ich habe gerade mal folgendes gemacht:

- Big Brother.exe gestartet
- Visual Studio-Debugger mit dem Big Brother-Prozess verbunden
- Prozess per Debugger angehalten
- Nachgeschaut, wo das Modul NTDLL im Speicher steht
- Breakpoint auf genau diese Adresse gesetzt
- Prozess fortgesetzt
- Im Programm Button angeklickt, dann OK, usw...

Ergebnis siehe Bild im Anhang

Ich bin nicht ganz sicher, warum das gerade diesen Effekt hat . Schätze mal, dass das Hinzufügen des Breakpoints irgendwie Speicher verschiebt oder überschreibt und dann alles nicht mehr stimmt.

Wie auch immer - mal gucken, was man mit der Funktion so anfangen kann...

MfG

Sebastian

31 kB
Hochgeladen:10.10.2006
Downloadcounter61
Download
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
10.10.2006  
 



Ich sag ja, es wird!

Mal schauen, was du da findest...
 
10.10.2006  
 




Sebastian
König
Für eine Art Brute-Force-Methode habe ich jetzt folgenden Code erstellt:
KompilierenMarkierenSeparieren
!$H windows.ph
Cls
declare id&
print "ID:",
input id&
declare hProcess&
let hProcess& = ~OpenProcess(~PROCESS_ALL_ACCESS,0,id&)
print hProcess&
declare pMem#,size&
dim pMem#,2048
clear pMem#

whileloop 0,50

    if External("NTDLL.DLL","ZwQueryInformationProcess",hProcess&,&loop,pMem#,SizeOf(pMem#),Addr(size&)) = 0

        print "OK:",&loop,"-",size&,"Bytes gültig"

        whileloop 0,150,2 Vielleicht Unicode-String?

            print chr$(byte(pMem#,&loop));

        wend

        print

    endif

wend

dispose pMem#
case hProcess& <> 0 : ~CloseHandle(hProcess&)
WaitKey
end

Bei zwei Werten von &loop schlägt die Funktion bei mir nicht fehl: 10 (= ProcessLdtInformation) und 27 (= ProcessImageFileName).

Das Ergebnis bei 27 ist zwar nett, aber hier nicht interessant, denke ich mal.

Bleibt also noch die 10: Aber was è ProcessLdtInformation? Und was steht in diesen 8 Byte, die er da lesen kann?



P.S.: Die Namen per die Werte habe ich aus ntddk.h
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
10.10.2006  
 



Schon nicht schlecht - du liegst mit beiden InformationClasses aber auf dem falschen Dampfer.

[quote:8e53af89cf]
ProcessLdtInformation Based on the name, this enum should cause NtQueryInformationProcess to return information about LDT entries for the specified process. Since most Win32 processes dont use the LDT, this enum is of limited use. In my testing, I was unable to get the API to return any LDT-related information for any process (even NTVDM).
[/quote:8e53af89cf]
 
10.10.2006  
 



Da das ein Rätsel ist, an dem sich wohl mancher Informatikprofessor die Zähne ausbeißen würde, mache ich es noch einmal etwas einfacher:

Hinweis 5: Dir fehlt ein Stichwort - ein Stichwort, das ich in einem Posting hier in den letzten Tagen gebraucht habe.

Hinweis 6: Die Lösung liegt innerhalb der ersten 9 InformationClasses.
 
10.10.2006  
 




Sebastian
König
[quote:0251cbd18c]Schon nicht schlecht - du liegst mit beiden InformationClasses aber auf dem falschen Dampfer.[/quote:0251cbd18c]
Hmm, seltsam... Bei allen anderen InformationClasses schlägt der Aufruf aber fehl, selbst wenn ich id& = ~GetCurrentProcessId() setze. Ich habe alle Werte bis 100 probiert...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
10.10.2006  
 



[quote:493c1cb96b=Sebastian König]Hmm, seltsam... Bei allen anderen InformationClasses schlägt der Aufruf aber fehl, selbst wenn ich id& = ~GetCurrentProcessId() setze. Ich habe alle Werte bis 100 probiert...[/quote:493c1cb96b]
Das liegt daran, das dein Ansatz etwas falsch ist. ZwQueryInformationProcess ist eine äußerst fiese Funktion - die in Parameter 4 angegebene Dimensione der Struktur muß genau stimmen, sonst gejts in die Hose.
 
10.10.2006  
 




Sebastian
König
[quote:6ce9c31e7f]Das liegt daran, das dein Ansatz etwas falsch ist. ZwQueryInformationProcess ist eine äußerst fiese Funktion - die in Parameter 4 angegebene Dimensione der Struktur muß genau stimmen, sonst gejts in die Hose.[/quote:6ce9c31e7f]
Aaah - ja, danke! Ich hatte jetzt gedacht, man muss nur genügend Platz bereitstellen und bekommt den benötigten durch den 5. Parameter zurückgeliefert (was offenbar bei 10 und 27 auch der Fall ist).

Mit Platz per gerade mal einen einzelnen LongInt sieht das Bild jedenfalls schon ganz anders aus: 11 funktionierende Werte. Mal gucken, ob da etwas dabei ist...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
10.10.2006  
 



Nein, leider nichts dabei, kann ich so schon sagen.
 
10.10.2006  
 



So, ich wollte nur noch mal sagen:
Das Mitraten lohnt sich! Für jeden der hier miträt (egal ob er total danebentippt), wird es nicht nur den Quelltext geben, sonder viele, viele weiter Infos zur API ZwQueryInformationProcess, die man unter NT-Systemen gut gebrauchen kann.
 
10.10.2006  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

4.594 Views

Untitledvor 0 min.
Ernst12.05.2014
iF07.07.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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