![]() |
Re: "Login" für eigenes Programm realisieren
Hi
@Sharky: das sollte keineswegs abwertend wirken...:? tipp von mir: 1. die Inidatei noch simpel verschlüsseln (zB XOR) 2. Die Inidatei komplett hinter die Main-Exe oder eine andere datei deines Programms schreiben (Code dazu weiter unten) 3. Die Checksumme der Main-Exe (incl. Ini-datei) gesondert speichern und bei programmstart überprüfen... Damit hängt man eine Datei hinter eine andere (besser gesagt einen MemoryStream hinter eine datei)
Delphi-Quellcode:
function AttachToFile(const AFileName: String; MemoryStream: TMemoryStream): Boolean;
var aStream: TFileStream; iSize: Integer; begin Result := False; if not FileExists(AFileName) then Exit; try aStream := TFileStream.Create(AFileName, fmOpenWrite or fmShareDenyWrite); MemoryStream.Seek(0, soFromBeginning); // seek to end of File // ans Ende der Datei Seeken aStream.Seek(0, soFromEnd); // copy data from MemoryStream // Daten vom MemoryStream kopieren aStream.CopyFrom(MemoryStream, 0); // save Stream-Size // die Streamgröße speichern iSize := MemoryStream.Size + SizeOf(Integer); aStream.Write(iSize, SizeOf(iSize)); finally aStream.Free; end; Result := True; end; Und damit bekommt man seinen Stream aus der Datei zurück:
Delphi-Quellcode:
function TForm1.LoadFromFile(const AFileName: String; MemoryStream: TMemoryStream): Boolean;
var aStream: TFileStream; iSize: Integer; begin Result := False; if not FileExists(AFileName) then Exit; try aStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite); // seek to position where Stream-Size is saved // zur Position seeken wo Streamgröße gespeichert aStream.Seek( - SizeOf(Integer), soFromEnd); aStream.Read(iSize, SizeOf(iSize)); if iSize > aStream.Size then begin aStream.Free; Exit; end; // seek to position where data is saved // zur Position seeken an der die Daten abgelegt sind aStream.Seek( - iSize, soFromEnd); MemoryStream.SetSize(iSize - SizeOf(Integer)); MemoryStream.CopyFrom(aStream, iSize - SizeOf(iSize)); MemoryStream.Seek(0, soFromBeginning); finally aStream.Free; end; Result := True; end; MfG Boombuler |
Re: "Login" für eigenes Programm realisieren
Zitat:
|
Re: "Login" für eigenes Programm realisieren
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!
Wenn ich die Ini verschlüssele muss ich sie doch auch wieder entschlüsseln um sie einlesen zu können. Kann man dann nicht in dem Moment wo sie entschlüsselt ist, eh darauf zugreifen? Wenn ich sowas an die Exe dranhänge, ändert sich dann nicht auch die Größe der Exe-Datei immer wieder, sodass da Virenscanner Alarm schlagen? (Oder z.B. meine Firewall Kerio). Ciao fkerber @S2B :wall: :wall: , ich hängs grad hier dran |
Re: "Login" für eigenes Programm realisieren
Hi
Zitat:
unter diesem aspekt gesehn würde ich alle strings(usw.) in der ini verschlüsseln. (sorry dumme idee von mir *einsicht*) zu zweitem: hab mit der function recht gute erfahrungen gemacht nur solltest du die schreib-function noch ein wenig editieren damit man nicht immer eine neue datei anhängt sondern die alte immer überschreibt... Greetz Boombuler |
Re: "Login" für eigenes Programm realisieren
HI!
Ich werde es mal testen. Was ist mit deinem "Crack"? Ciao fkerber |
Re: "Login" für eigenes Programm realisieren
Der sagt dir Filesize missmach...
würde sagen deine exe datei ist nicht so groß wie meine deswegen blockt das patch programm... einfach mal mit hex-editor die beiden oben angegebenen offsets ändern ... Greetz Boombuler |
Re: "Login" für eigenes Programm realisieren
Hi!
Habe es jetzt in mein Programm eingebaut und es funktioniert super. :thuimb: Herzlichen Dank, Sharky, bekommst ein extra :cheers: Ciao fkerber |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz