Wie fetten Fenster-Rahmen auf 1 Pixel Breite verdünnen (ohne Source code)? Patch *.exe möglich?

ftenn2

Cadet 4th Year
Registriert
Okt. 2022
Beiträge
77
Selten, aber doch gelegentlich sieht man interessante Programme deren Programmierer es für nötig halten einen dicken fetten FensterRahmen zu programmieren.
Das ist aus meiner Sicht Desktoplatzverschwendung und unästhetisch.

Nachfragen beim Developer bleiben unbeantwortet.
Da ich nicht den SourceCode des Programmes habe suche ich nach Wegen das nachträglich zu ändern.

Kann man irgendwie den *.exe Binary Code patchen?
Gibt es sonst irgendwelche Utilities die den Rahmen eines Fensters nach dem Start des Programmes irgendwie im Speicher nachträglich (auf 1 Pixel verdünnen)?

Danke
Frank
 
Was hier wichtig ist zu wissen: Welches UI Framework verwendet wird. Bei Desktopanwendungen wird dadurch insbesondere Fensterrahmen und Breite vorgegeben und selbst der Programmierer kann das nicht direkt ändern, außer auf das Framwork zu verzichten - was quatsch ist.
Wenn jedes Programm in Windows ein eigenes Desighn bei Fenstern und Rahmen benutzen würde, das wäre ein Problem.

Ohne den Quellcode es zu ändern ist sehr schwierig (insbesondere wenn es von dem Framwork festgeleght wird) und kann auch illegal sein (Reverse engineering ist nötig)
 
Hi

Meinst du das hier ?


Mfg.
 
Schauen, was bei CreateWindowEx o.ä. auf den Stack gepushed wird und die Parameter entsprechend patchen. Radare2 und Hexeditor sollten reichen.
 
  • Gefällt mir
Reaktionen: BAGZZlash
@TP555 Das Video ist halt 7 Jahre alt.
Bei Windows 10 ist die Standard Rahmenbreite doch schon 1 Pixel. Aber sowieso erstmal abwarten was ftenn2 für Negativbeispiele zeigt.
 
Uridium schrieb:
Schauen, was bei CreateWindowEx
Auch das wird nicht funktionieren. Der Standard in Windows ist ja, wie bereits gesagt, schmal. Wenn aber nicht die Windowseigenen Funktionen zum Zeichnen des Fensterinhaltes verwendet werden, sondern Z.B. JAVA, dann gibt es zumindest keine allgemeingueltige Loesung. Bestenfalls gibt es einen Patcher, der die gaengigsten Faelle abdeckt.

Und selbst wenn es so einfach waere: Auf Assambler-Ebene wird es wahrscheinlich keine Variable "Rahmenbreite" geben, welche denn auch noch entsprechend im Rest der Fensterzeichnung beruecksichtigt wird. Sprich, die Sachen im Fenster wie Buttons werden dann ggf. ueberlagern oder andere Abstaende werden nicht mehr passen. Wuerde denn ywar die Platzausnutzung korrigieren, aber die Aesthetik schmaelern.
 
Also ok, hier ein Beispiel Snapshot:
 

Anhänge

  • fat border.png
    fat border.png
    88,4 KB · Aufrufe: 253
Im Vollbild kannst du zumindest bei HDMI im Treiber einen Oversan durch HDMI Scaling provozieren.
 
Minimale Rahmen gibt es in allen Frameworks.
Nimm einen 'PE Info' Analyzer, um das Framework zu ermitteln und dann suche dir entsprechend Decompilermöglichkeiten raus.
Vielleicht auch mal nach 'Resource Hacker' suchen. Da gibt es unzählige mit unterschiedlichen Fähigkeiten. Vielleicht können die das schon von Haus aus.
 
Ich sehe im linken Fenster deines Screenshots keinen Rahmen, da ist nur der Canvas zu sehen mit Elementen, die nicht ganz an den Canvas-Rand platziert sind.

Was erhoffst du dir denn durch das wegpatchen von 10 Pixeln? Die Liste hat dann max. ein sichtbares Element mehr. Eine "völlig neue" User Experience erschließt sich mir für das Beispiel nicht wirklich.
 
  • Gefällt mir
Reaktionen: mental.dIseASe, Der Lord und sh.
ftenn2 schrieb:
Kann man irgendwie den *.exe Binary Code patchen?
Ja, das ist möglich. Internetrecherche kannst du mit "Reverse Engineering" beginnen. @Uridium hat zwei Programme genannt, die helfen können; auch wenn es für Anfänger bei Weitem nicht so einfach ist, wie sein Post impliziert.
Bevor du so etwas jedoch tust (und ggf. irgendwo veröffentlichst): EULA genau lesen. Patchen von Binärdateien und schon Disassemblieren ist meistens verboten.
 
Zurück
Oben