AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

exe zur lauzeit ändern...

Ein Thema von the_seed · begonnen am 19. Jun 2004 · letzter Beitrag vom 16. Jul 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#11

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 15:55
öhm nö das ist ne ganz andere baustelle. konstanten werden via const deklariert und lassen sich nie ändern, es sei denn eben über einen hexeditor.
  Mit Zitat antworten Zitat
Rackergen2

Registriert seit: 13. Jul 2004
99 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 15:58
Zitat von Meflin:
konstanten werden via const deklariert und lassen sich nie ändern, es sei denn eben über einen hexeditor.
const Variable: string = 'Text'; Die lässt sich zur Laufzeit sehr wohl ändern... Habe den text oben editiert, lies!
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#13

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 15:59
ja und? beim nächsten start ists wieder der alte wert und darum gehts wohl hier.
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 30. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#14

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 16:00
Zitat von Rackergen2:
Texte, die aber durch Programmcode geschrieben werden, lassen sich nur per Disassembler/Debugger (Ich bevorzuge letzteres) oder Hexeditor verändern...
mit einem DisAssembler/Debugger kannst du höchstens rasufinden wo diese Texte generiert werden, ändern aber im Normalfall nicht, jedenfalls ist mir kein Programm bekannt mit dem das möglich ist...

mit dem Debugger kannst du unter Umständen während der Laufzeit stellen im Code ändern

Alle Angaben ohne Gewähr

Und Stringkonstanten können über die ResourceString direktive (wie der Name schon sagt) in den Resourcen abgelegt werden, sonstige Konstanten werden AFAIK im Speicher im sog. Stackgegment gelagert und in der Exe itself zwischen Header und dem Programmeinsprungspukt gespeichert... bzw je nach Kompiler auch nach dem Code.
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 16:00
Aber nur, wenn du
Zitat:
Assignable typed constant Enable this for backward compatibility with Delphi 1.0. When enabled, the compiler allows assignments to typed constants. Corresponds to
aktiviert hast. Diese Option führt aber meiner Meinung nach den Sinn von Konstanten ad adsurdum.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 30. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#16

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 16:02
Zitat von Luckie:
Diese Option führt aber meiner Meinung nach den Sinn von Konstanten ad adsurdum.
Sind auch eigentlich somit keine Konstanten mehr, sondern Variablen mit einem vordefinierten Wert
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#17

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 16:04
jaja aber Rackergen2 will uns hier nur das prinzip beweisen scheint mir auch wenns darum garnicht geht
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#18

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 17:08
hier mal die logs ...
nachdem ich das problem gschildert habe...
Zitat:
[4:20] (the_seed) so
[4:20] (...) das erste strück hätt ich fertig - das ist zum anhängen - hoffe es geht - getestet hab ich nix
[4:20] (...) Type THead=Record
[4:20] (...) Ident:String[67];
[4:20] (...) <pack hier einfach deine konfigdaten rein - achte darauf das du strings immer begrenzt
[4:20] (...) du kannst strings auch unbegrenzt lassen - aber dann würde ich dir empfehlen
[4:20] (...) alle daten einzeln zu schreiben>
[4:20] (...) End;
[4:20] (...) Procedure TForm1.Modify(First,New:String);
[4:20] (...) Var F:TFileStream;
[4:20] (...) I:Integer;
[4:21] (...) Read:String;
[4:21] (...) Head:THead;
[4:21] (...) FileDef:Array Of TFileDef;
[4:21] (...) var
[4:21] (...) NumRead, NumWritten: Integer;
[4:21] (...) Buf: array[1..2048] of Char;
[4:21] (...) Buf2:String;
[4:21] (...) FromF,ToF:TFileStream;
[4:21] (...) begin
[4:21] (...) FromF:=TFileStream.Create(First,fmOpenRead or fmShareDenyNone);//der blanke server ohne cfg infos
[4:21] (...) ToF:=TFileStream.Create(New,fmCreate or fmShareDenyNone);//die neue datei (server+config)
[4:21] (...) ToF.CopyFrom(FromF,0);
[4:21] (...) begin
[4:21] (...) FromF:=TFileStream.Create(First,fmOpenRead or fmShareDenyNone);//der blanke server ohne cfg infos
[4:21] (...) ToF:=TFileStream.Create(New,fmCreate or fmShareDenyNone);//die neue datei (server+config)
[4:21] (...) ToF.CopyFrom(FromF,0);
[4:21] (...) Head.Ident:='Head Signatur';//wichtig damit du das ding wieder findest
[4:21] (...) Head.RunFirst:=Edit3.Text;
[4:21] (...) Head.RunSecond:=ExtractFileName(ComboBox1.Text);
[4:21] (...) Head.FileCount:=Form1.ListBox1.Items.Count;
[4:21] (...) ToF.Seek(0, soFromEnd);
[4:21] (...) ToF.Write(Head,SizeOf(Head));
[4:21] (...) ToF.Free;
[4:21] (...) FromF.Free;
[4:21] (...) end;
[4:24] (...) Procedure ReadConfig;
[4:24] (...) Var F:TFileStream;
[4:24] (...) Head:THead;
[4:24] (...) Begin
[4:24] (...) F:=TFileStream.Create(application.ExeName,fmShareD enyRead);//wie du siehst wird hier der server geöffnet
[4:24] (...) F.Seek(0,SoFromEnd);
[4:24] (...) F.Position:=F.Position-SizeOf(Head);//thead muss auch im server bekannt sein
[4:24] (...) F.Read(Head,SizeOf(Head));//fertig - die daten müssten nun zur verfügung stehen
[4:24] (...) F.Free;
[4:24] (...) End;
[4:24] (...) so
[4:24] (...) das ist für den server
[4:24] (...) zum auslesen der daten
[4:24] (...) das andere ist zum schreiben der daten
[4:25] (the_seed) wie kann ich aber auf die einzelnen werte zugreifenß
[4:25] (...) also hm du hast das dann ja in nem array
.[4:25] (the_seed) ok
[4:26] (the_seed) ich werds irgendwie hinkriegen... thx
[4:26] (...) ich hab hier das array head genannt - kannst du auch anders nennen - du kannst in den head array alles reinpacken was du willst
[4:26] (...) ich habs in der erste routine schon geschreiben wie du mit strings umgehen musst
[4:26] (...) weil strings ohne echtes ende sind nicht gut ^^
[4:27] (...) die musst du begrenzen mit [zahl] - oder du schreibst sie halt mit ner längenangabe rein - das ist aber aufwändig
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#19

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 17:20
ssed was du da machst hat mit dem was du in deinem ersten post beschrieben hast NICHTS zu tun.

du hängst daten an die exe dran, genausogut kannst du die daten an eine jpeg-datei anhängen das das geht ist doch logisch.

*edit: Und wie das geht dürfte den meisten auch geläufig sein.

PS strings mit unbegrenzter länge kannst du ganz einfach in streams schreiben indem du 4 byte mit der länge des strings vorweg schreibst und beim einlesen ausliest + mit setlength den string vorher setzt.

Allet klar?
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#20

Re: exe zur lauzeit ändern...

  Alt 15. Jul 2004, 17:25
Zitat von Vjay:
ssed was du da machst hat mit dem was du in deinem ersten post beschrieben hast NICHTS zu tun.

du hängst daten an die exe dran, genausogut kannst du die daten an eine jpeg-datei anhängen das das geht ist doch logisch.

*edit: Und wie das geht dürfte den meisten auch geläufig sein.

PS strings mit unbegrenzter länge kannst du ganz einfach in streams schreiben indem du 4 byte mit der länge des strings vorweg schreibst und beim einlesen ausliest + mit setlength den string vorher setzt.

Allet klar?
warum? wenn ich die daten "in eine exe" schreibe, und sie verändern bzw. lesen kann ... kommt es doch auf das hinuas was ich anfnags wollte...
eine "zur laufzeit änderbare exe" wie bei den vielzähligen trojaner ... man benötigt nur noch einen "edit server".
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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