AGB  ·  Datenschutz  ·  Impressum  







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

Über Programm eine exe verändern!?

Offene Frage von "neo_polo"
Ein Thema von neo_polo · begonnen am 21. Mär 2007 · letzter Beitrag vom 23. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
neo_polo

Registriert seit: 21. Mär 2007
5 Beiträge
 
#1

Über Programm eine exe verändern!?

  Alt 21. Mär 2007, 16:52
hallo miteinander,

Ich habe vor ca einer woche zum ersten mal delphi ausprobiert und bin jetzt ziemlich fasziniert davon.
Hab mir schon unzählige informationen von hier geholt, mal ein herzliches dankeschön dafür.

Eigentlich wäre mein Programm soweit voll funktionsfähig, aber ich würde es trotzdem gerne ein wenig erweitern.

Meine Frage:

Ist es möglich einzelne Zeilen in einer exe Datei zu verändern?
So ähnlich wie es mit ini's möglich ist.


Bevor antworten kommen wie ich wollte etwas cracken oder so, erkläre ich wieso ich das benötige.

In der Firma wo ich arbeite stehen einige CNC Maschinen.
Bei allen CNC Programmen ist es möglich einzelne Benutzerkonten einzurichten, damit sich die Arbeiter nicht gegenseitig die CNC Programme verändern.
Bis auf dieses eine nervige Programm für das ich mein Programm geschrieben habe.
Bis jetzt habe ich die exe von Hand mit einen Debuger verändert.
Das heisst in der Exe steht in ca 10 Zeilen wo die CNC Programme gespeichert und abgerufen werden sollen, und diese habe ich nun verändert und für jeden eine eigene exe erstellt.
Mein programm schreibt jetzt nur ein paar ini's um, verschiebt eine exe und startet dann das programm.

Ich gehe mal davon aus, das diese veränderung nicht wirklich gegen das urheberrecht verstösst, oder so?

Egal, ich möchte jetzt mein programm so erweitern, das ich keine exe mehr verschieben muss, sondern sie an Ort und Stelle bearbeiten kann.


Vielen Dank schonmal für eure hinweise.


Grüsse
neo_polo
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#2

Re: Über Programm eine exe verändern!?

  Alt 21. Mär 2007, 17:58
EDIT Jelly: Quote entfernt. Den ganzen ersten Beitrag nochmals zu zitieren macht nun wirklich keinen Sinn.

Hallo,

soweit ich das verstehe, willst du String-Konstanten ändern. Ich habe zwar auch schon mit dem Debugger Software "eingedeutscht", wenn es keine andere Möglichkeit gab, aber die Technik ist heute doch etwas weiter fortgeschritten und es gibt zahlreiche Gründe, Parametrisierungen nicht direkt in der EXE vorzunehmen, ich führe bloss mal Verständlichkeit und Wartbarkeit auf. Das Urheberrecht käme nur ins Spiel, wenn es sich um Strings handelt, die jemand anders geschrieben hat.

Ich würde das Problem unter allen Umständen im Sourcefile lösen. Wenn du die Unterschiede schon nicht in eine Ini-Datei auslagern, sondern im Programm selbst verankern willst, dann mach eben eine Reihe von Konstanten und jage das Ganze für jeden User durch den Compiler. Eine von zahlreichen Möglichkeiten ist bedingte Kompilierung:

Delphi-Quellcode:
{$DEFINE User1}
...
const
{$IFDEF User1}
  UserPath = 'C:\CNC\USER1';
{$ENDIF}
{$IFDEF User2}
  UserPath = 'C:\CNC\USER2';
{$ENDIF}
Damit kommt dann auch jemand klar, der dein Programm in 20 Jahren pflegen muss.

Gruss Reinhard

[edit=Jelly] Mfg, Jelly[/edit]
  Mit Zitat antworten Zitat
neo_polo

Registriert seit: 21. Mär 2007
5 Beiträge
 
#3

Re: Über Programm eine exe verändern!?

  Alt 21. Mär 2007, 18:13
das programm ist ja auch nicht von mir, das Programm ist speziell für diesen Maschinentyp und gibts dazu.
Das heisst es ist auf einem Win98 PC der an der maschine angeschlossen ist.

Leider ist es nicht möglich das irgendwie anders zu lösen.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Über Programm eine exe verändern!?

  Alt 21. Mär 2007, 18:58
Hallo,

mit einem TFileStream könntest du andere Dateien editieren.

Delphi-Quellcode:
Type TText= record
  Text1, Text2: string[10];//Beispiel
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  FileStream: TFileStream;
  Text: TText;
  Pfad: AnsiString;
begin
  Pfad:= 'C:\Project1.exe';
  ZeroMemory(@Text, SizeOf(Text));
  if FileExists(Pfad) then
  begin
    FileStream:= TFileStream.Create(Pfad, fmOpenReadWrite);
    try
      FileStream.Position:= 100;//Beispiel Leseposition
      FileStream.Read(Text, SizeOf(Text));
       // Text.Text1:= .... weiterverarbeiten
      FileStream.Position:= 100;//Leseposition
      if FileStream.Write(Text, SizeOf(Text))= SizeOf(Text) then
        Showmessage('fertig');
    finally
      FileStream.Free;
    end;
  end;
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#5

Re: Über Programm eine exe verändern!?

  Alt 21. Mär 2007, 22:13
geht klassisch mit seek und 'ner typsierten datei. ich leg mal 'n beispiel dazu... den rest solltest du aus der hilfe bekommenn..
Delphi-Quellcode:
var
 f: file of byte;
 i: integer;
 c: byte;
begin
 assign(f, 'test.txt');
 rewrite(f); //datei erstellen
 c := byte('i');
 for i := 0 to 100 do //was zum test reinschreiben
  write(f,c);

 //ab hier fängts an
 seek(f,30);
 c := byte('X');
 for i := 0 to 3 do
  write(f,c);
 close(f);
end.
  Mit Zitat antworten Zitat
neo_polo

Registriert seit: 21. Mär 2007
5 Beiträge
 
#6

Re: Über Programm eine exe verändern!?

  Alt 21. Mär 2007, 22:52
danke für die hilfe, werde es sobald ich dazu komme ausprobieren.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Über Programm eine exe verändern!?

  Alt 22. Mär 2007, 06:51
Wenn er die EXE verändert will, würde sich da nicht ein Resourcen-Editor anbieten? Also: Resourcen extrahieren, bearbeiten, wieder einbinden?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Über Programm eine exe verändern!?

  Alt 22. Mär 2007, 06:58
Ich würde auch vorschlagen die Ressourcen in eine Dll auszulagern, deren Inhalt man dann einfach austaucshen/erweitern kann.
Markus Kinzler
  Mit Zitat antworten Zitat
Vjay

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

Re: Über Programm eine exe verändern!?

  Alt 22. Mär 2007, 09:46
Die Exe ist doch nicht von ihm, wie soll er die da in eine DLL auslagern...

Also bei den letzten zwei Posts frage ich mich, ob ihr die Anforderungen überhaupt gelesen habt . Nicht böse gemeint, vielleicht auch falsch verstanden.

Ich habe es so verstanden, er möchte eine bestehende EXE durch sein Programm patchen und ausführen, da dieses Programm keine Profile unterstützt, sondern nur mit default-Werten arbeitet. Er hat nun vor eine art Profil-Wrapper zu basteln, welcher das Programm an den User anpasst.
Wenn diese Strings sich von der Länge nicht verändern sollte es kein Problem sein, diese per Filestream zu modifizieren. Wenn nicht, wird es etwas kniffliger.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
neo_polo

Registriert seit: 21. Mär 2007
5 Beiträge
 
#10

Re: Über Programm eine exe verändern!?

  Alt 22. Mär 2007, 10:14
Zitat von Vjay:
Ich habe es so verstanden, er möchte eine bestehende EXE durch sein Programm patchen und ausführen, da dieses Programm keine Profile unterstützt, sondern nur mit default-Werten arbeitet. Er hat nun vor eine art Profil-Wrapper zu basteln, welcher das Programm an den User anpasst.
Wenn diese Strings sich von der Länge nicht verändern sollte es kein Problem sein, diese per Filestream zu modifizieren. Wenn nicht, wird es etwas kniffliger.
Du hast den nagel vollkommen auf den kopf getroffen
Genau das will ich.

Nein die länge muss ich nicht verändern, die länge des ordnernamens auf den zugegriffen wird, muss einfach (DATA_P) 6 Zeichen betragen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:26 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