AGB  ·  Datenschutz  ·  Impressum  







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

Wie BlueScreens erzeugen?

Ein Thema von Morcsch · begonnen am 26. Okt 2005 · letzter Beitrag vom 1. Jul 2007
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#21

Re: Wie BlueScreens erzeugen?

  Alt 26. Okt 2005, 21:53
ich hab mal mit der api NtCreateProcess einen BlueScreen erzeugt auf WinXP, einfach aufrufen mit keinen paramentern (zb. einfach 0, nil usw übergeben)
NtCreateProcess( OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ParentProcess, IN BOOLEAN InheritObjectTable, IN HANDLE SectionHandle OPTIONAL, IN HANDLE DebugPort OPTIONAL, IN HANDLE ExceptionPort OPTIONAL );
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#22

Re: Wie BlueScreens erzeugen?

  Alt 26. Okt 2005, 21:55
Bedenke Olli:

Der Unterschied zwischen Ich und Er! Ich muss ja nicht immer dabei gewesen sein, wenn Er einen BSOD hatte....

Es sei denn, Morcsch ist schizophren.
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#23

Re: Wie BlueScreens erzeugen?

  Alt 26. Okt 2005, 21:57
Zitat von ErazerZ:
ich hab mal mit der api NtCreateProcess einen BlueScreen erzeugt auf WinXP, einfach aufrufen mit keinen paramentern (zb. einfach 0, nil usw übergeben)
Halte ich fuer ein Geruecht. Unter NT4 vielleicht moeglich, aber ab 2000 sollte das der vergangenheit angehoeren.
  Mit Zitat antworten Zitat
Morcsch

Registriert seit: 19. Mai 2004
10 Beiträge
 
Delphi 7 Enterprise
 
#24

Re: Wie BlueScreens erzeugen?

  Alt 26. Okt 2005, 22:00
Daniel G, danke für die Erklärung.

Bin nicht schizophren.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#25

Re: Wie BlueScreens erzeugen?

  Alt 26. Okt 2005, 22:01
Zitat von Morcsch:
Bin nicht schizophren.
Siehste, habe ich mir doch gedacht.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#26

Re: Wie BlueScreens erzeugen?

  Alt 26. Okt 2005, 22:18
Zitat von w3seek:
Halte ich fuer ein Geruecht. Unter NT4 vielleicht moeglich, aber ab 2000 sollte das der vergangenheit angehoeren.
Dito!
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#27

Re: Wie BlueScreens erzeugen?

  Alt 26. Okt 2005, 22:39
Zitat von w3seek:
Zitat von ErazerZ:
ich hab mal mit der api NtCreateProcess einen BlueScreen erzeugt auf WinXP, einfach aufrufen mit keinen paramentern (zb. einfach 0, nil usw übergeben)
Halte ich fuer ein Geruecht. Unter NT4 vielleicht moeglich, aber ab 2000 sollte das der vergangenheit angehoeren.
ja .. sollte, ist es aber nicht, kannst ja testen, bei mir hats funktioniert unter WinXP SP2
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#28

Re: Wie BlueScreens erzeugen?

  Alt 26. Okt 2005, 23:18
Zitat von ErazerZ:
ja .. sollte, ist es aber nicht, kannst ja testen, bei mir hats funktioniert unter WinXP SP2
Auf 2003 SP0 kracht nix. Auf XP SP1 ebenfalls nicht. Windows 2000 SP4 auch nicht. Das ist ein ziemlich repräsentativer Querschnitt durch die Systeme seit NT 4.0 - und die SPs dürften aufgrund der Konsistenz des Ergebnisses nichts daran ändern.

Keine Ahnung was ihr dort übergeben habt, aber ich habe folgendes kleine C-Programm:

Code:
#define _X86_
#define WIN32_LEAN_AND_MEAN
#define UNICODE

#include <windows.h>

#pragma optimize("gsy",on)

#pragma comment(lib,"kernel32.lib")
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"ntdll.lib")

#pragma comment(linker, "/opt:nowin98")
#pragma comment(linker, "/entry:Main")
#pragma comment(linker, "/opt:ref")
#pragma comment(linker, "/align:512")
#pragma comment(linker, "/fixed")
#pragma comment(linker, "/subsystem:windows")

#define NTSTATUS LONG

NTSYSAPI
NTSTATUS
NTAPI
NtCreateProcess(
    PHANDLE ProcessHandle,
    ACCESS_MASK DesiredAccess,
    PVOID ObjectAttributes, // POBJECT_ATTRIBUTES
    HANDLE InheritFromProcessHandle,
    BOOLEAN InheritHandles,
    HANDLE SectionHandle,
    HANDLE DebugPort,
    HANDLE ExceptionPort
  );

__declspec(naked) void __cdecl Main(void)
{
  NtCreateProcess(0, 0, 0, 0, 0, 0, 0, 0);
  MessageBox(0, L"This should never be seen! *booom*", 0, 0);
  ExitProcess(0);
}
Vielleicht solltet ihr mal die Software, die ihr benutzt, besser überprüfen. Ich ahne schon, was da abgeht ... ich denke mal, daß ihr eine Menge Progrämmchen ala Firewalls, AVs usw. oben habt. Ich habe eine saubere Installation all dieser OS. Lernt einfach mal einen BSOD zu entziffern, dann werdet ihr sehen, daß ihr mit euren Usermode-Progrämmchen das OS schwerlich crashen könnt (es gibt Ausnahmen, die aber auf falscher Parameterbearbeitung im KM beruhen und in NT 4.0 gehäuft auftraten, siehe w3seek's Kommentar). Wenn ihr im KM das OS crasht, dann seid ihr natürlich echte Helden. Weil das ist ach so schwer

So, und jetzt kommt ihr.

Nachtrag: Für alle die mir nicht glauben, hier das Disassemblat des Kompilats:
Code:
.text:00400400 start:
[color=red].text:00400400                 push   0
.text:00400402                 push   0
.text:00400404                 push   0
.text:00400406                 push   0
.text:00400408                 push   0
.text:0040040A                push   0
.text:0040040C                push   0
.text:0040040E                push   0
.text:00400410                 call   ds:NtCreateProcess[/color]
.text:00400416                 push   0
.text:00400418                 push   0
.text:0040041A                push   offset aThisShouldNeve ; "This should never be seen! *booom*"
.text:0040041F                push   0
.text:00400421                 call   ds:MessageBoxW
.text:00400427                 push   0
.text:00400429                 call   ds:ExitProcess
Noch'n Nachtrag: Ich habe das Programm aktualisiert, so daß es eine MessageBox anzeigt. Sollte ja nicht passieren bei einem BSOD. Außerdem habe ich es getestet auf Windows NT 4.0 ohne SP, auf Windows NT 3.51 (mit erstem "SP") und es kam in keinem Fall zu einem BSOD.
Ich lach mich jetzt voraussichtlich erstmal in den Schlaf und schaue mir morgen dann die Ausreden an

Im Anhang das Kompilat! Benutzung erfolgt auf eigene Gefahr!

Fazit: Weder auf NT 3.51, NT 4.0, 2000, XP noch 2003 kam es zu einem BSOD. Alle diese Systeme sind "sauber" (also keine wirklich ins System eingreifende Software).
Angehängte Dateien
Dateityp: rar bsodtest_408.rar (534 Bytes, 16x aufgerufen)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#29

Re: Wie BlueScreens erzeugen?

  Alt 27. Okt 2005, 10:53
Och *schnief* keine Ausreden
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#30

Re: Wie BlueScreens erzeugen?

  Alt 27. Okt 2005, 14:48
oh ne ausrede moment mal

Mein Code:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{
NtCreateProcess( OUT PHANDLE ProcessHandle,
                IN ACCESS_MASK DesiredAccess,
                IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
                IN HANDLE ParentProcess,
                IN BOOLEAN InheritObjectTable,
                IN HANDLE SectionHandle OPTIONAL,
                IN HANDLE DebugPort OPTIONAL,
                 IN HANDLE ExceptionPort OPTIONAL );   }


procedure TForm1.Button1Click(Sender: TObject);
var
  h: THandle;
  ntx: function(ProcessHandle: PChar; DesiredAccess: PChar; ObjectAttributes: PChar; ParentProcess: PChar; InheritObjectTable: BOOL; SectionHandle:PChar; DebugPort: PChar; ExceptionPort: PChar): Integer;
begin
  h := GetModuleHandle('ntdll.dll');
  ntx := GetProcAddress(h, 'NtCreateProcess');
  ntx(nil, nil, nil, nil, FALSE, nil, nil, nil);
end;

end.
Mein OS:
Windows XP SP2

Meine CPU:
3600 MHZ, 1 GB RAM

und noch ein kleines bild als beweis
Miniaturansicht angehängter Grafiken
pict0027_851.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 23:02 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