f:tstream=openfile(appfile)

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

sinjin

Betreff: f:tstream=openfile(appfile)

BeitragFr, Apr 22, 2016 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist es möglich die eigene EXE-Datei zum Schreiben zu öffnen? Bzw welcher Handle da auch immer offen ist, den zu schliessen. Ich wollte Informationen direkt an die EXE schreiben.

Jan_

Ehemaliger Admin

BeitragFr, Apr 22, 2016 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
WTF?

Normalerweiße geht umbennen und dann eine neue hinschreiben.
Aber dass eine Exe in sich selbst schreibt, klingt etwas komisch
between angels and insects

Thunder

BeitragSa, Apr 23, 2016 1:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Also BB konnte das. Wie das bei BlitzMax aussieht weiß ich nicht genau, aber ich glaube, dass es bei Windows executables auch auf den PE Header ankommt. Ich glaub da gibt es ein Flag ("removable media" oder so), was dem OS sagt, dass die exe von einem externen Medium ausgeführt wird und das Betriebssystem keinen Handle offen lassen soll (was bei Windows afaik standardmäßig der Fall ist).

btw: du zerstörst dir damit vermutlich komplett die plattformunabhängigkeit von BlitzMax (und eventuell die ausführbare Datei), wenn du einfach anfängst in die executable zu schreiben.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

DAK

BeitragMi, Apr 27, 2016 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum willst du sowas Abartiges denn tun?
Gewinner der 6. und der 68. BlitzCodeCompo
 

sinjin

BeitragDo, Apr 28, 2016 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Anstatt einer CFG-Datei will ich die Programmeinstellungen einfach an die EXE hängen. Ich weiss dass es geht denn selbst bei manchen grossen Spielen kann man die EXE zu Laufzeiten löschen. Zu DOS-Zeiten war es nicht unethisch sowas zu machen Smile

Xeres

Moderator

BeitragDo, Apr 28, 2016 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist unnötig und macht debugging extra schwer.
Der Appdata Ordner von Windows ist für sowas der richtige Ort.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

sinjin

BeitragFr, Apr 29, 2016 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Das würde gar nicht im Debugger auftauchen, zumindest nicht die angehangenen Daten. Die Größe des eigentlichen Programms, die auch der Debugger nutzt, stehen im Header, die wollte ich nie ändern.

Xeres

Moderator

BeitragSa, Apr 30, 2016 1:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich dachte eher an Bugs, nicht den Debugger.
Was passiert, wenn du die Grafikeinstellungen da speicherst, jemand verschiebt die exe auf einen anderen Rechner, der mit den Werten nichts anfangen kann und abschmiert/hängt?
Es gibt keine Konfigurationsdateien die ein Nutzer selber editieren oder einfach löschen könnte, um den Standard wieder her zu stellen.

Wenn man's aus Spaß mal programmieren will: nur zu. Ansonsten ist das eine sinnlose Fehlerquelle.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Thunder

BeitragSa, Apr 30, 2016 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Xeres hat einen guten Punkt. Mir ist das schon Mal passiert. Hatte ein Spiel installiert und eine Grafikoption
gesetzt, die es abstürzen ließ. Auch Deinstallieren und wieder Installieren brachte nichts, weil die
Konfigurationsdatei nicht gelöscht wurde.

Glücklicherweise habe ich die dann im AppData-Ordner gefunden und da sie in einem einfachen INI-Format
war, konnte ich sie editieren.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
 

sinjin

BeitragSa, Okt 29, 2016 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ist mir gerade ein gutes Beispiel vor die Augen gekommen, Adobe Flashplayer, man downloaded eine EXE startet die, und weg ist 'se Very Happy Dh, die hat sich selbst gelöscht, ein gutes Beispiel oder?

Jolinah

BeitragSo, Okt 30, 2016 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich persönlich finde das auch nicht wirklich gut. Als Benutzer erwartet man doch das sich ein bestimmter Vorgang immer gleich verhält. D.h. wenn ich was runterlade und es danach automatisch ausführen lasse, dann ist die Datei im Normalfall noch dort. Dann mach ich das gleiche mit Flash, will die Datei evtl. noch auf ein USB-Medium kopieren, aber sie ist nicht mehr aufzufinden... (nicht was man erwartet, und das wirft dann mehr Fragen auf, als es jemandem was nützt).

Nur meine Meinung Very Happy
 

ohaz

BeitragSo, Okt 30, 2016 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest die alternate data streams von windows verwenden. Allerdings gilt es als extrem uncool die settings mit in die exe zu speichern

DAK

BeitragMo, Okt 31, 2016 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist eigentlich vor allem schon mit dem Windows-Sicherheitskonzept eine echt blöde Idee.
Um in den Programme-Ordner schreiben zu können braucht dein Program Admin-Rechte. Auf diese Weise sorgt Windows dafür, dass es für Malware schwerer ist, Programme zu editieren/zu ersetzen.

Auf diese Weise darf dein Programm nicht mehr im vergleichsweise sicheren Programme-Ordner gespeichert werden oder verlangt bei jedem Start unnötigerweise nach Admin-Rechten. Wäre für mich als Nutzer ein großes Minus, muss ich sagen.

Dazu sind dann, wie schon erwähnt, die Settings in der Datei und damit nicht mehr löschbar. Von wegen Abstürzen, da muss es noch gar nicht sein, dass die Datei auf einen anderen Computer kopiert wird. Da genügt es, dass man es auf einem Laptop am Full-HD-externen Bildschirm startet, und beim nächsten Mal auf dem internen Bildschirm mit geringerer Auflösung.

Würde stark davon abraten.

Dass etwas auf einem völlig anderen Betriebssystem vor 20-30 Jahren Gang und Gebe war, ist keine gute Ausrede um es heutzutage noch zu tun. Auf DOS war es auch noch normal den Prozessor im Real-Mode ohne Speicherschutz zu verwenden, und auf Win95 war es auch normal, dass ein Spiel Windows verwendet, um in eben jenen Real-Mode zu kommen.
Wenn mir heutzutage ein Spiel den Computer ungefragt in Real-Mode umbootet, dann war es das letzte Mal, dass ich irgendwas von diesem Hersteller ausgeführt habe. Gleiches gilt für selbstmodifizierende EXEs. Die einzige Art Programm, die heutzutage noch sinnvollerweise die eigene EXE umschreibt, sind selbstmodifizierende Viren.

Behalte bitte deine Malware-Techniken auf deinem PC Wink
Gewinner der 6. und der 68. BlitzCodeCompo

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group