Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.

Re: Jammer-Thread

Beitragvon joggel » 11.01.2018, 14:43

:D
Ja, die Idee ist sehr...naja..."besonders" :D

Na ich schaue mir mal dieses Tiled an. Danke trotzdem :)
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1202
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: Jammer-Thread

Beitragvon Essex20 » 11.01.2018, 18:38

Mich nervt an den neueren TileEd-Versionen das Verhalten, dass ich nicht mehr "adhoc" ein Tileset testen kann mit ner kleinen Map und ich nun gezwungen bin, vorher eine Datei anlegen und mich durch den Speicher-Dialog wurschteln zu müssen. Newer is not always better :-/

Edit: Analog zu IDE's ist das so, als ob man ein Projekt anlegen muss, nur um eine Code-Datei anzulegen und zu testen.
Benutzeravatar
Essex20
 
Beiträge: 33
Registriert: 18.04.2015, 13:45
Wohnort: Alzey (Rheinhessen)

Re: Jammer-Thread

Beitragvon MasterQ32 » 12.01.2018, 09:59

Was mich an Tiled immer so genervt hat waren eher die fehlenden "intelligenten" Tools. Ich krieg z.B. die Krise, wenn ich eine Straße male und diese "Randtiles" immer noch händisch setzen muss. Oder man immer nur ein Tile auswählen kann, so das man z.B. "Rauschen" in großen Flächen immer händisch gestalten muss. Aber ich glaub da hat sich das Ding in den letzten Jahren auch schon verbessert.

Mittlerweile kann Tiled Autotiles und das "fülle mit einem element zufällig aus mehr als einer tile", aber ich hab mittlerweile auch so eine halb-aversion gegen tiled. viele features sind schon geil, aber das programm ist mal wieder ein fall von "so generisch, das es weh tut"
Duct tape is like the force. It has a light side, a dark side, and it holds the world together.
Benutzeravatar
MasterQ32
Felix Queißner
Establishment
 
Beiträge: 1005
Registriert: 07.10.2012, 14:56

Re: Jammer-Thread

Beitragvon Krishty » 13.01.2018, 01:27

Ooooh, diese Ficker bei Microsoft.

Wenn man in den Projekteinstellungen von Visual Studio nicht das XP-kompatible Toolset auswählt, startet die Anwendung nicht mehr unter XP.

Das ist überraschender, als es klingt: Selbst eine komplett leere Anwendung, die nichts tut und keine Abhängigkeiten hat, schmeißt den Fehler Best STL Viewer.exe is not a valid Win32 application bzw. Best STL Viewer.exe ist keine gültige Win32-Anwendung. – WTF?! Warum sollte die nicht laufen können?!

Es gibt keinen Grund. Die Schweinepriester setzen schlicht und einfach im Optional Header der PE die Felder Major/MinorSubsystemVersion auf 6.0 statt 5.1. Ohne weitere Not.

Und das scheiß Windows sagt nicht etwa „Zu neu für mich!“ oder „Mach erstmal Vorspiel!“, sondern schmeißt diesen bekackten kryptischen Win32-Fehler.

Ich kann die EXE also einfach im Hex-Editor öffnen, die vier Bytes überschreiben, und schon läuft wieder alles unter XP.

*spuck*

Nachtrag: Ich kann in den Projekteinstellungen → Linker → System → Minimal Required Version den Wert 5.01 eingeben, dann landet der im PE-Header und das Programm startet noch unter XP. Immerhin bleibt mir damit das Hex-Editing erspart. Ist vielleicht auch besser; Standardprogramme nutzen die CRT und starten wirklich nicht mehr unter XP, sobald man das nicht-XP-Toolset auswählt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6123
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 15.01.2018, 12:07

Weil ich gefragt wurde, was überhaupt der Unterschied zwischen dem normalen Toolset und dem XP-kompatiblen Toolset ist:

  • Man kann das Verhalten der CRT einstellen (set_terminate(), _set_purecall_handler(), usw.)

  • Damit das funktioniert, muss die CRT an globalen Adressen Funktionszeiger speichern.

  • Wenn es ein Angreifer schafft, durch eine kleine Sicherheitslücke einen der Zeiger zu überschreiben, wird daraus eine große Sicherheitslücke (Remote Code Execution).

  • Als Mitigation werden globale Zeiger seit der 2010er CRT verschlüsselt gespeichert und bei Benutzung wieder entschlüsselt. Die Schlüssel werden bei Prozessstart zufällig gewählt. Ein Angreifer, der die Zeiger überschreiben kann, müsste also zusätzlich die richtige Ver- und Entschlüsselung erraten.

  • Das würde nichts bringen, wenn die Schlüssel im User Mode Address Space herumliegen (auf den der Angreifer ja schon Zugriff hat). Daher wurde diese Funktionalität in den Kernel geschoben – in die Funktionen EncodePointer() und DecodePointer() (hier übrigens wieder Grüße von Meltdown/Spectre!).

  • Diese Funktionen wurden während der Entwicklung von Windows XP intern genutzt, und ab Windows Vista öffentlich gemacht.

  • Dummerweise hat sich dabei die Importbibliothek geändert (Kernel32.dll vs KernelBase.dll).

  • Die 2010er-CRT produziert deshalb auf Windows XP Fehler à DecodePointer konnte nicht in Kernel32.dll gefunden werden.

  • Das XP-kompatible Toolset linkt eine spezielle Version der MSVCRT, die noch die XP-kompatiblen Einsprungspunkte für EncodePointer() und DecodePointer() unterstützt. (AFAIK unabhängig davon, ob man statisch oder dynamisch linkt.)

Stand 2013 war das der einzige Unterschied. Es kann aber natürlich gut sein, dass inzwischen mehr dazugekommen ist.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6123
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 15.01.2018, 16:02

Mein Thumbnail-Handler zwingt manchmal das ganze System in die Knie. Obwohl er so irre schnell ist und so wenig Speicher verbraucht. Bei einem GB Arbeitssatz sollte doch mein Rechner nicht mit Paging anfangen?!

Nun habe ich es mal geschafft, einen Debugger anzuhängen, und … der Explorer lädt meinen Thumbnail Handler für die selbe Datei fünf Mal gleichzeitig mit identischen Parametern. WTF! Bei fünf GB Arbeitssatz sieht die Sache natürlich schon ganz anders aus.

Jetzt darf ich erstmal herausfinden, wo die vier überflüssigen Aufrufe herkommen und ob ich die irgendwie loswerde.

Nachtrag: Der Call Stack ist immer identisch:

  Krishty.dll!Thumbnails::GetThumbnail(unsigned int maximalDimension, OS::Win32::GDI::Bitmap * * result, OS::Win32::Shell::ThumbnailAlphaType * alpha)
  thumbcache.dll!RunExtractor(struct IUnknown *,unsigned int,struct HBITMAP__ * *,enum WTS_ALPHATYPE *,unsigned long *)
  thumbcache.dll!CThumbnailCache::_PerformFullExtraction(struct IShellItem *,unsigned int,unsigned int,int,struct HBITMAP__ * *,enum WTS_ALPHATYPE *,int *,int *)
  thumbcache.dll!CThumbnailCache::_GetThumbnailImpl(class CThumbnailMoniker &,struct IShellItem *,unsigned int,enum WTS_FLAGS,int,struct ISharedBitmap * *,int *,int *)
  thumbcache.dll!CThumbnailCache::GetThumbnail(struct IShellItem *,unsigned int,enum WTS_FLAGS,struct ISharedBitmap * *,enum WTS_CACHEFLAGS *,struct WTS_THUMBNAILID *)
  shell32.dll!CShellItem::_GetThumbnail(struct tagSIZE,int,struct ISharedBitmap * *)
  shell32.dll!CShellItem::GetSharedBitmap(struct tagSIZE,int,struct ISharedBitmap * *)
  shell32.dll!CImagePrefetchWorkItem::_LoadThumbnail(int,struct IShellFolder2 *,struct _ITEMID_CHILD const *,struct IItem *,struct ISharedBitmap * *)
  shell32.dll!CImagePrefetchWorkItem::_PrefetchImages(int,struct IShellFolder2 *,unsigned int,int)
  shell32.dll!CImagePrefetchWorkItem::DoWork()


Die einzigen Ergebnisse für CImagePrefetchWorkItem sind drei automatisch erzeugte Crash Reports und eine chinesische Seite. I’m so sick of this shit
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6123
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 15.01.2018, 19:25

Darum schreibt niemand Thumbnail Handler für 3D-Dateien, Teil 25: Wenn beim Rendern ein GPU-Timeout auftritt und nicht richtig behandelt wird, zerfetzt es den Kernel.

Nachtrag: Oh, das ist sogar gewollt!
https://docs.microsoft.com/en-us/windows-hardware/drivers/display/limiting-repetitive-gpu-hangs-and-recoveries hat geschrieben:If the operating system detects that six or more GPU hangs and subsequent recoveries occur within 1 minute, the operating system bug-checks the computer on the next GPU hang.
Warum landet dann kein Eintrag in meinem Event Log? Warum muss das Dateisystem auf meiner Platte repariert werden? Warum sind alle gefeuert?

Die Situation ist also: Explorer will ein Thumbnail für eine Datei haben. Explorer ruft sechsfach parallel (wirklich!) meinen Thumbnail Handler für die selbe Datei auf. Die Systemressourcen gehen nicht sofort in die Knie, weil ich den Fall schon serialisiere. Weil die Datei knifflig ist, hagelt es GPU Timeouts. Als der sechste Thumbnail-Handler seinen Timeout erreicht, schaltet der Kernel auf Bluescreen. Ich habe NICHTS verkehrt gemacht, aber der User ist bluescreen’d. I CAN'T EVEN
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6123
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 15.01.2018, 20:10

Soooo; ich bin auf Software-Rendering umgestiegen, wie Albi schonmal empfohlen hatte (via WARP).

  • Abstürze durch GPU-Timeouts: Nicht mehr möglich.

  • Ewige Ladezeit wegen schlecht optimierten Nvidia-Treibern: Weg. Alles initialisiert um die zehn Mal schneller als vorher.

  • Abstürze wegen Problemen mit Intel-Treibern: Kein Problem mehr.

  • Geschwindigkeit: Bei kleinen und mittleren Dateien schneller als vorher; nur bei richtig großen Dateien langsamer als Hardware.
Ob das auch bei den Usern gut funktioniert, bleibt abzuwarten (ich weiß nicht, ob WARP überall so ordentlich installiert ist, wie Microsoft es verspricht.) Mal gucken …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6123
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon joggel » Gestern, 14:12

Ich weiß nicht was ich von dieser Studie halten soll...
https://www.kaspersky.de/blog/chip-unte ... nein/7303/

Okay... sehe gerade, dass ca die Hälfte der in Deutschland lebenden sich so etwas implantieren lassen würde.
Mir persönlich wirkt das etwas....."befremdlich"
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1202
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: Jammer-Thread

Beitragvon Krishty » Gestern, 19:28

Visual C++ kompiliert alle Shader mit Reflection (falls man das FX-Framework nutzt) und bietet keine UI-Möglichkeit, das abzuschalten. Daher immer als zusätzliche Kommandozeilenoption angeben:

/Qstrip_debug /Qstrip_priv /Qstrip_reflect
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6123
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Vorherige

Zurück zu Allgemeines Talk-Brett

Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 1 Gast