Deutsch
Stammtisch & Café

Was sind denn das für Module???

 
- Seite 1 -


Ausgelesen mit ModHunter unter Windows98:



Windowsversion: Windows98 ( A )

Prozessdaten:
Prozessname=C:WINDOWSSYSTEMMSGSRV32.EXE
Prozess-ID=-56225
Prozesserzeuger=

Modulname=C:WINDOWSSYSTEMMPR.DLL
Ladeadresse=2143223808
Ladestatus=geladen
Hersteller=Microsoft Corporation

Modulname=C:WINDOWSSYSTEMUSER32.DLL
Ladeadresse=-1074462720
Ladestatus=geladen
Hersteller=Microsoft Corporation

Modulname=C:WINDOWSSYSTEMGDI32.DLL
Ladeadresse=-1074659328
Ladestatus=geladen
Hersteller=Microsoft Corporation

Modulname=C:WINDOWSSYSTEMADVAPI32.DLL
Ladeadresse=-1075314688
Ladestatus=geladen
Hersteller=Microsoft Corporation

Modulname=C:WINDOWSSYSTEMKERNEL32.DLL
Ladeadresse=-1074331648
Ladestatus=geladen
Hersteller=Microsoft Corporation

Modulname=unbekannt
Ladeadresse=-1341456384
Ladestatus=Memory-Modul
Hersteller=

Modulname=unbekannt
Ladeadresse=-1163264000
Ladestatus=Memory-Modul
Hersteller=

Modulname=unbekannt
Ladeadresse=-1078525952
Ladestatus=Memory-Modul
Hersteller=

Modulname=unbekannt
Ladeadresse=-1075904512
Ladestatus=Memory-Modul
Hersteller=

Modulname=unbekannt
Ladeadresse=-1075707904
Ladestatus=Memory-Modul
Hersteller=

Modulname=unbekannt
Ladeadresse=-1075445760
Ladestatus=Memory-Modul
Hersteller=

Modulname=unbekannt
Ladeadresse=-1075380224
Ladestatus=Memory-Modul
Hersteller=

Modulname=unbekannt
Ladeadresse=-1074921472
Ladestatus=Memory-Modul
Hersteller=


Könnten die hier als Memory-Module Dinge wohl Treiber sein .
 
20.03.2007  
 



 
- Seite 2 -


Habs gerade noch einmal heruntergeladen - bei mir ist die EXE da. Kann das mal jemand anders nochmal kontrollieren?
 
23.03.2007  
 




Nico
Madysa
Aargh, ich nehm alles zurück. Ich hab die EXE beim In-einen-Extra-Ordner-Verschieben übersehen, da der Explorer die EXE gleich eingeordnet hat, sorry!
 
Nico Madysa
23.03.2007  
 



So, stelle jetzt mal folgende Behauptung auf:

1.) Speicherbereiche oberhalb von 2GB verhalten sich unter Wiondows95/98/ME genauso wie unter NT-basierenden System.
a) Virtuelle Adressen in unterschiedlichen Prozessen verweisen auf die gleichen realen Speicheradressen.
b) Der Speicher wird in jeden Prozess gleichermaßen gemappt. Wird ein Speicherbereich in einem Prozess zugewiesen, erscheint dieser auch in allen anderen Prozessen.


Das bedeutet: Wird in DLL unter Windows95/98/ME von einem Prozess in Speicherbereiche oberhalb von 2GB geladen, sind deren Exportfunktionen nicht nur im aktuellen Prozess, sondern auch in allen anderen laufenden Prozessen über Call aufrufbar, obwohl dort kein Handle auf die DLL besteht.
=>
Unter NT-basierenden Systemen gilt für Speicherbereiche oberhalb von 2GB:
Alle dort durchgeführten Schreibaktionen erscheinen auch im virtuellen Adressbereich aller anderen Prozesse des Systems.


So richtig?
 
29.03.2007  
 




Nico
Madysa
Moment, heißt das, wenn ich Arbeitsspeicher über 2 GB habe, kann ich unter bestimmten Bedingungen eine DLL aufrufen, oghne sie geöffnet zu haben?
 
Nico Madysa
30.03.2007  
 



Nein das hat nichts mit der Größe des physikalisch zur Verfügung stehenden Rams zu tun.
 
30.03.2007  
 



Hallo Nico...

Mal ganz einfach:
Windows verschafft jedem Prozess quasi einen eigenen Speicherbereich mit einer Größe von in der Regel 4GB. Der obere Bereich dieses virtuellen Speichers wird vom Betriebsystem genutzt (dorthin werden zum Beispiel Treiber geladen); der User hat normalerweise keinen Zugriff darauf, damit das Betriebsystem sicher läuft.
Der untere Bereich ist dem User zugänglich (Module laden, Variablen speicher etc.) und kann ausgelesen und bearbeitet werden.
Unter Windows95/98/ME sind 3GB dem User zugänglich, unter NT basierenden Systemen (NT/2000/XP/Vista) in der Regel 2GB.

Läd nun Windows unter Windows95/98/ME ein Modul in diesen Bereich von 1GB Größe, der dem User dort mehr zusteht als unter NT, steht das geladene Modul (DLL) auch den Prozessen zur Verfügung, die sie gar nicht geladen haben!

Der Sachverhalt ist extrem einfach über ModHunter und TNT nachzuvollziehen - witzige Geschichte .
 
30.03.2007  
 



Wenn ich recht habe, dürfte dort auch die größte Fehlerquelle von Windows95/98/ME liegen.
.
Schreibt ein Prozesse versehentlich in diesen Bereich, würde dies dann auch unter Umständen zum Absturz oder hängen des WindowsExplores und damit des Betriebsystems führen .
 
30.03.2007  
 




Nico
Madysa
OK, danke für die Erläuterung.

P.S.: Wegen deiner Anfrage im RGH-Forum: Bei mir läuft der Code ohne Probleme durch, was deine Vermutung zustätzlich stützen dürfte.
 
Nico Madysa
02.04.2007  
 



Mal zum Abschluss hier der Beweis, dass das wirklich so ist. Nur Windows95/98/ME!

Code 1:
Der im Downlod enthaldene Code Modul laden.prf  enthalt die von mir etwas modifizierte Include von Sebastian König MemoryModule.Inc . Modifiziert habe ich hier die Funktion LoadLibraryM und habe dort unter anderem den undokumentierten Flag $8000000, den es nur unter Windows95/98/ME gibt, eingefügt. Dieser Flag bewirkt, das der Virtuelle Speicher für das Modul im Bereich zwischen 2GB und 3GB bereitgestellt wird.

Code 2:
Der Code der DLL, die von Code 1 geladen werden soll (Testmodul.dll), findet man in der Datei Testmodul.prf . Hier wird einfach eine Variable um 1 erhöht und der Wert in der Datei C:TEST.INI  gespeichert, wenn die Funktion _increase@0 aufgerufen wird..

Code 3:
Der Code Increase_Variable.prf :
In das Inputfeld muss hier die Adresse der Funktion _increase@0 eingegeben werden. Danach erfolgt einfach ein Call auf diese Adresse.

Voila: Variable erhöht sich, obwohl Code 3 die DLL Testmodul.dll  gar nicht läd!
... und die erhöht sich natürlich auch, wenn Increase_Variable.prf  mit dieser Adresse aufgerufen wird und Modul laden.prf  nicht läuft.

Fazit:
1.) Die beste Möglichkeit, um in ein Windows9x/ME System eine DLL zu injizieren, ist über ein Memory-Modul das in denSpeicherbereich zwischen 2GB und 3GB geladen wird.

2.) Eine in diesen Bereich geladene DLL taucht mitsammt ihrem Datenbereich genau so in jedem anderen Prozess auf, ist dort aber unsichtbar, da kein Handle auf diese DLL besteht.

3.) In Speicherbereiche von 2GB bis 3GB werden unter Windows9x/ME in der Regel wichtige Systemdlls und Systemstrukturen (wohl auch die TEBs) geladen. Schreibt ein fehlerhaftes Programm in diese Bereiche, sind schwere Systemabstürze vorprogrammiert!
Unter NT-basierenden Systemen wird dieser Bereich komplett von Treibern genutzt - d.h. der User kann nicht in diese Bereiche schreiben - was das System ingesammt stabiler macht.

4.) Der User kann unter Windows9x/ME bei VIrtualAlloc bei Parameter 3 den Flag $8000000 verwenden, um Daten speziell in diesen geteilten Speicherbereich zu laden.

652 kB
Kurzbeschreibung: Testcodes
Hochgeladen:06.05.2007
Ladeanzahl123
Herunterladen
 
06.05.2007  
 




Frank
Abbing
Alles interessant, aber leider Schnee von gestern. Diese Betriebssysteme riechen bereits etwas streng...
 
06.05.2007  
 



 
- Seite 3 -


Frank Abbing
Alles interessant, aber leider Schnee von gestern. Diese Betriebssysteme riechen bereits etwas streng...


Ob das kalter Kaffe ist oder nicht, hängt zum einen davon ab, mit welchem Betriebsystem man arbeitet - zum anderen aber auch davon, was man tun möchte. Ich persönlich brauche das als Grundlage für eine Sache unter 2000/XP.
Ich wollte diese Sache hier nur noch abschließen und behaltet soetwas demnächst sowieso für mich.

Will hoffen, dich nicht alzusehr damit genervt zu haben.

Tschau.
 
06.05.2007  
 




Frank
Abbing

Ich wollte diese Sache hier nur noch abschließen und behaltet soetwas demnächst sowieso für mich.


Wenn du meinst.

In anderen Threads bist du nicht so begierig, sie abzuschliessen. Eine PM wartet auch schon seit Tagen, bislang unbeachtet. Aber mir ist das mittlererweile auch schon egal. Ich habe dir oft und lange genug geholfen, während du mir nur immer mit seltsamen, nichtssagenden Andeutungen weitergeholfen hast. Aber - wie gesagt - pfeiff drauf...
 
06.05.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.765 Betrachtungen

Unbenanntvor 0 min.
Christian Hahn14.12.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