AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

String in Exe ändern

Ein Thema von jacky213 · begonnen am 19. Feb 2019 · letzter Beitrag vom 26. Feb 2019
Antwort Antwort
Seite 2 von 3     12 3   
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
6.782 Beiträge
 
Delphi XE4 Professional
 
#11

AW: String in Exe ändern

  Alt 20. Feb 2019, 14:09
Hallo,
Zitat:
Da könnte sonst ja jede Malware dran basteln.
Nicht, wenn die Exe signiert ist und die Signatur auch geprüft wird.
Heiko
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
80 Beiträge
 
#12

AW: String in Exe ändern

  Alt 20. Feb 2019, 22:10
In dem String befindet sich ein verschlüsselter Text. Der Text wird beim starten des Programms via Passwort abfrage entschlüsselt, sollte der Nutzer das Passwort nicht kennen, kommt er nicht weiter. Die Idee dahinter ist Simpel, wer das Passwort nicht kennt, der wird das Passwort auch nicht im Quelltext finden.

Ich wollte eine Funktion einbauen welche es dem Nutzer ermöglicht das Passwort zu ändern (Natürlich nur wenn er das alte Passwort kennt) und hierfür muss dieser String dann auch geändert werden.

Das mit der Signierung klingt sehr interessant. Danke für die ganze Ansätze ich mach mich mal an die Arbeit.
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.246 Beiträge
 
Delphi XE7 Professional
 
#13

AW: String in Exe ändern

  Alt 21. Feb 2019, 06:45
.. ist ja schön und gut wenn das Passwort verschlüsselt abgelegt wird.
Nur bei einer Passwort Authentifizierung wird normalerweise nicht das Passwort verglichen
sondern nur ein Hash (sha1, sha256 o.ä.) davon.
Natürlich muss auch der Hash geändert werden, wenn das Password geändert wird.

Vorteil des Hashes ist, dass man vom Hash nicht auf das Passwort rückschliessen kann.
Es spricht also erstmal nicht viel dagegen den Hash in der Registry oder in einer Datei abzulegen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
913 Beiträge
 
Delphi 7 Professional
 
#14

AW: String in Exe ändern

  Alt 21. Feb 2019, 08:18
Man kann an eine Exe beliebig viele Daten anhängen.

Nach dem Erstellen der Exe diese zum Schreiben öffenen. Ans Ende der Exe gehen und dort den Hash (z. B. MD5) des Passwortes ablegen. Die Exe wird dadurch um die Länge des Hashes größer.

Soll das Passwort geprüft werden, so öffnet man die Exe zum Lesen geht ans Ende minus Länge des Hashes Byte und liest der Länge des Hashes entsprechend viele Bytes. Der gelesene Wert muss mit dem Hash des Passwortes übereinstimmen.
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.246 Beiträge
 
Delphi XE7 Professional
 
#15

AW: String in Exe ändern

  Alt 21. Feb 2019, 08:22
.. nun wenn der User aber selber ein Passwort ändern will,
an die laufende EXE kann es nicht angehangen werden.
Dazu würde dann ein Hilfsprogramm benötigt, welches die EXE schließt
den Hash ändert und die EXE wieder startet.
Ob Virescanner von dem Vorgang begeistert sein werden - wage ich zu bezweifeln.

Wir wären damit dann wieder am Anfang des Threads
mit dem Unterschied das wir nun den Zweck wissen.

Grüße
Klaus
Klaus

Geändert von Klaus01 (21. Feb 2019 um 08:32 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
913 Beiträge
 
Delphi 7 Professional
 
#16

AW: String in Exe ändern

  Alt 21. Feb 2019, 08:36
Threadersteller sagt ja schon im Eingangspost, dass klar ist, dass eine derartige Lösung nicht zur Laufzeit funktioniert. Somit sehe ich da zuerst mal kein Problem.

Meine Exen erhalten alle (mit Hilfe eines AfterCompile-Experten) bei der Erstellung 'nen Hash verpasst und prüfen diesen beim Programmstart. Das funktioniert seit Jahren und Virenscanner haben da nix einzuwenden. In extrem seltenen Fällen scheitert diese Prüfung. Dann ist garantiert die Exe kaputt. Passiert bei Laufwerksfehlern oder fehlerhafter Datenübertragung im Netz. (In zwanzig Jahren so zwei- oder dreimal.)

Und ja: Virenscanner könnten bei soeiner Lösung durchaus Einwand erheben.
  Mit Zitat antworten Zitat
dummzeuch
Online

Registriert seit: 11. Aug 2012
Ort: Essen
380 Beiträge
 
Delphi 2007 Professional
 
#17

AW: String in Exe ändern

  Alt 21. Feb 2019, 14:36
Man kann an eine Exe beliebig viele Daten anhängen.

Nach dem Erstellen der Exe diese zum Schreiben öffenen. Ans Ende der Exe gehen und dort den Hash (z. B. MD5) des Passwortes ablegen. Die Exe wird dadurch um die Länge des Hashes größer.

Soll das Passwort geprüft werden, so öffnet man die Exe zum Lesen geht ans Ende minus Länge des Hashes Byte und liest der Länge des Hashes entsprechend viele Bytes. Der gelesene Wert muss mit dem Hash des Passwortes übereinstimmen.
Nur, falls das jemand so implementieren will:
Man sollte zusätzlich zu den Nutzdaten einen möglichst eindeutigen Marker (vor und hinter den Daten) schreiben und diesen auch jedes Mal vor dem Zugriff überprüfen. Eine einfache Prüfsumme über diese Daten hat auch was. Sonst kommt nämlich irgendwann ein anderes Programm und hängt ebenfalls Daten an (z.B. gnugettext oder jcldebug) und schon knallt es und man sucht ewig den Fehler an der falschen Stelle.
Thomas Mueller
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
913 Beiträge
 
Delphi 7 Professional
 
#18

AW: String in Exe ändern

  Alt 21. Feb 2019, 14:47
Ja, stimmt schon irgendwie. Mein Intention war halt mal 'ne Prüfsumme für meine Programme zu haben, die ich selbst verifizieren kann.

Da kam dann die Idee mit dem AfterCompile-Experten, der die MD5-Checksumme an die Exe hängt. Das lässt sich einfach überprüfen. Sinn war es ja, jede Änderung der Exe zu erkennen.

Wenn nun andere Routinen ebenfalls Daten an die Exe hängen kann das so nicht mehr funktionieren. In meinem Fall soll es auch nicht funktionieren
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Duisburg
424 Beiträge
 
Delphi 10 Seattle Architect
 
#19

AW: String in Exe ändern

  Alt 21. Feb 2019, 17:13
Irgendwie erschließt sich mir der Sinn nicht ganz...
Solche Sachen wurden früher mal gerne eingesetzt um die Server diverser Trojaner nachträglich komfortable zu editieren...

Ansonsten würde ich wie Lucky schon schrieb eine zusätzliche Datei oder eben den Weg über die Registry nehmen.

Eine weitere Möglichkeit die ich mal genutzt habe, wäre der Windows Credential Manager.
Die Vorgehensweise war da z.B. mittels BCrypt (gibt es für Delphi, siehe Github MD5 kann ich nicht empfehlen...) das Passwort quasi Pre-hashed dort zu speichern.

Später im Hauptprogramm dann über einen Login Dialog das eingegebene Passwort hashen und diesen Hash mit dem aus dem Windows Credential Manager vergleichen, wäre der meiner Meinung nach eleganterer Weg.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
913 Beiträge
 
Delphi 7 Professional
 
#20

AW: String in Exe ändern

  Alt 21. Feb 2019, 17:21
Irgendwas an 'ne Exe zu hängen oder gar 'ne Exe zu patchen ist für mich nix weiter als Spielerei.

Für 'nen professionellen Einsatz vollkommen ungeeignet.

Ein Passwort verschlüsselt in der Exe und die dann bei 'ner Passwortänderung (ohne sie neu zu kompilieren) zu ändern, ist schon etwas außergewöhnlich.

Aber es geht
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf