Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Wie kann man die Delphi Version in exe erkennen?
speckstein - Do 21.06.07 15:33
Titel: Wie kann man die Delphi Version in exe erkennen?
Hallo,
ich habe schon lange nichts mehr mit Delphi gemacht und jetzt eine Anfrage bekommen an einem bestehenden Programm etwas zu ändern. Sie können mir aber nicht sagen wie das Programm erstellt wurde und wollen den Quellkode natürlich auch nicht so einfach herausgeben.
Weiß jemand ob man an der EXE die Version der Compilers ablesen kann?
Grüße
Michael
Moderiert von
Christian S.: Überflüssige Zeilenumbrüche entfernt
BenBE - So 24.06.07 21:24
Die Compiler-Version wird in einem String mit in die EXE geschrieben und ist dort mit Hilfe eines HEX-Editors einfach auslesbar.
Ohne Source wirst Du da aber reichlich wenig ändern können ...
speckstein - Mo 25.06.07 00:19
Hallo Benny,
aber das war ja genau meine Frage. Ich habe mir die EXE angesehen und
nicht die Stelle gefunden woran ich ersehen kann mit welchem Compiler
der Source übersetzt wurde.
In der Exe stehen öfter die Pfadangaben Delphi4, aber kann ich mir sicher sein,
dass nicht nur der Pfad nicht geändert wurde?
Kann irgendwo Delphi4 kostenlos bekommen, es ist ja schließlich fast 8 Jahre alt.
Also es wäre schön, wenn Du oder die anderen mir einen Hinweis geben könnten.
Gruß Michael
matze - Mo 25.06.07 08:48
mit der Software PE Explorer kannst du sehr viel über die EXE Datei herausbekommen. Die gibts auch als 30 Tage Testversion. Schaus dir einfach mal an.
Chatfix - Mo 25.06.07 10:37
Das is ja interesannt.
PE Explorer liest ja sogar die Komplette DFM Datei aus wenn ich das richtig sehe.
Ich sehe grad sogar eine komplette Liste der verwendeten Units...
Gibt es Möglichkeiten die EXE davor ein bischen zu schützen?
BenBE - Mo 25.06.07 17:24
Jain ... Man kann einen EXE-Crypter nutzen, der die EXE verschlüsselt ... Allerdings springen auf die meisten EXE-Crypter heutige Virenscanner an, wodurch du nix gewonnen hast ...
Chatfix - Mo 25.06.07 17:46
Hmm, und gibt es Programme die den Quelltext vor dem Compilieren "verwirren"?
So das man Praktisch nicht mehr die Orignal-Namen sieht sondern halt nur wirre Buchstaben?
Ähnlich wie beim DotFusCator für VB.Net?
Nilan - Mo 25.06.07 18:30
Was hat das eigentlich mit dem Thema zu tun ;)
Delete - Mo 25.06.07 20:38
Chatfix hat folgendes geschrieben: |
Hmm, und gibt es Programme die den Quelltext vor dem Compilieren "verwirren"? |
Bitte ERST nachdenken und dann schreiben. Wie soll der Compiler den "verwirrten" Quelltext verstehen und compilieren können?
hui1991 - Mo 25.06.07 20:50
Ich denke er meint das beim erstellen die ganzen Variablen und Units einen anderen Namen haben, damit man nicht nachweisen kann das wirklich was geklaut wurde. ^^
alias5000 - Mo 25.06.07 21:00
Weil du eine .NET Sprache ansprichst (VB.NET): dabei handelt es sich um
OBFUSCATOREN, die die CIL nach dem Vorkompilieren (oder wie nennt man das eigentlich?) so verbasteln, dass diese nicht mehr leicht lesbar ist.
Die hat aber
nichts mit einer Kompilierten Exe Datei zu tun, bei der man höchstens noch Assembler gut herstellen kann (von weiteren Möglichkeiten, was dfm und so betrifft abgesehen).
Wichtig ist hier einfach der Unterschied zwischen verwalteten (.NET) und nativen Sprachen!
gruß
alias5000
Delete - Mo 25.06.07 21:29
hui1991 hat folgendes geschrieben: |
Ich denke er meint das beim erstellen die ganzen Variablen und Units einen anderen Namen haben, damit man nicht nachweisen kann das wirklich was geklaut wurde. ^^ |
Variablen sind im Kompilat nachher sowieso nur noch Schall und Adressen. Und was nutzen mir die Namen der Units? Und ob geklaut wurde oder nicht, wird im Zeweifel vor gericht geklärt und dann müssen die Quellen offen gelgt werden. Einen sicheren Schutz vor Reverseengeneering gibt es nicht, man kann es nur erschweren, aber ob der Aufand die Müh wert ist, sei mal dahingestellt.
Was soll eiegntlich der Quatsch, dass etwas an dem Programm geändert werden soll, aber der Quellcode nicht zur Verfügung gestellt wird, um den Aufwand und die Kosten abzuschätzen? Entweder wid uns hier was vorgemacht, oder die involvierten Personen habe keine Ahnung, was ein Computerprogramm ist udn wie ein Computer funktioniert.
Chatfix - Mo 25.06.07 23:12
Erstens, ich habe nix geklaut.
Es ging mir auch mehr oder weniger nur ums Interesse...
Wenn man ein Problem löst, und sich z.B. irgendwas zukauft, muss der Konkurent ja nich unbedingt wissen was ich gekauft habe.
Das die Variablen am Ende Schall und Rauch sind ist mir klar. Es ging lediglich um die Benennung, es muss ja nich jeder wissen wie ich was benenne.
Man könnte es eventuell soweit treiben das man die Variablen und Typen schon in den Herkunfts-Units umbenennt, so das dann nicht mehr dasteht TButton sondern z.b. XYZ.
Das es keinen 100%igen Schutz gibt ist mir klar, aber deswegen ist es ja kein Grund es nicht etwas zu erschweren. Ich dachte ja jetzt nicht an kleine Lichter wie mich, sondern an große kommerzielle Projekte.
Aber sorry das ich eine Frage gestellt habe, wird nicht wieder vorkommen :roll:
Tilman - Mo 25.06.07 23:37
Chatfix hat folgendes geschrieben: |
Aber sorry das ich eine Frage gestellt habe, wird nicht wieder vorkommen :roll: |
verständliche Reaktion.
Luckie hat folgendes geschrieben: |
Bitte ERST nachdenken und dann schreiben. Wie soll der Compiler den "verwirrten" Quelltext verstehen und compilieren können? |
Mann mann mann, wer hat eigentlich diesen rüden Ton ins DF gebracht? War doch früher mal ganz nett hier :?
Delete - Mo 25.06.07 23:53
Chatfix hat folgendes geschrieben: |
Erstens, ich habe nix geklaut. |
Hat auch niemand behauptet.
Zitat: |
Es ging mir auch mehr oder weniger nur ums Interesse... |
Und was soll dann die komische Geschichte mit dem Programm, was geändert werden soll?
Zitat: |
Wenn man ein Problem löst, und sich z.B. irgendwas zukauft, muss der Konkurent ja nich unbedingt wissen was ich gekauft habe. |
Das spielt keine Rolle. Wenn es ein sehr spezielles Problem ist, wird es nicht sehr viele Anbiter geben. Ist ein ein alltägliches Problem, ist es ziemlich egal, da die angeboteten Lösungen sich kaum qualitativ unterscheiden werden.
Zitat: |
Das die Variablen am Ende Schall und Rauch sind ist mir klar. Es ging lediglich um die Benennung, es muss ja nich jeder wissen wie ich was benenne. |
Vergleich mal die Aussage des ersten Satzes mit der Aussage deines zweiten Satzes.Noch mal. Im Kompilat gibt es keine Variablennamen mehr! Du kannst sie im Quellcode benennen, wie du lustig bist. Wegen mir auch mit kryptischen Namen, aber damit machst du dir nur selber das Leben schwer und nicht dem jenigen, der dein Programm analysiert.
Zitat: |
Man könnte es eventuell soweit treiben das man die Variablen und Typen schon in den Herkunfts-Units umbenennt, so das dann nicht mehr dasteht TButton sondern z.b. XYZ. |
Ja und? Zum einem sehe ich die chaltfläche auf der Oberfläche, da ist es so ziemlich egal, wie die Klasse heißt. Und zum anderen so lange nur Windows Steuerelemente gekapselt werden, kan ich ich die Windowsfensterklasse rausfinden. Aber warum der Umstand? ich sehe ja was es ist oder willst du die Oberfläche auch noch "unkenntlich" machen?
Zitat: |
Ich dachte ja jetzt nicht an kleine Lichter wie mich, sondern an große kommerzielle Projekte. |
Kommerzielle Projekte stecken ihre Energie in die Vermarktung und in die Entwicklung und Umsetzung von neuen Ideen. Das ist wesentlich effektiver als zu versuchen irgendeinen Schutz des Quellcodes zu entwickeln, der eh nichts taugt. Denn je interessanter das Produkt, desto größer die Energien es zu knacken. Und meist beseht auch gar nicht der Bedarf etwas klauen zu wollen. Ich entwickele gerade für meine Firma eine Soiftware, die es auch schon auf den Markt gibt von anderen Anbietern. Ich hatte aber bisher noch nicht das Bedürfnis gehabt irgend was zu klauen oder mir im Code abzugucken. Nehmen wir als Beispiel eine GRafik, die du in beliebiger Größe ausdrucken willst. Jetzt kann man dem Anwender Feedback geben, wie die Qualität des Bildes geeigent ist für die und die Größe. Ich könnte jetzt versuchen eine Anwendung von der Konkurrenz zu disassemblieren und versuchen ihren Algorithmus rauszufinden. Aber was geht wohl schneller? Reversengeneering oder sich selber einen Algorithmus auszudenken?
Wenn du nicht willst, dass man dir was klauen könnte, dann veröffentliche dein Programm nicht.
Aber sorry das ich eine Frage gestellt habe, wird nicht wieder vorkommen :roll:[/quote]
COMMANDER86 - Di 26.06.07 00:50
Um mal auf die eigentliche Frage zurück zu kommen. Die Pfadangaben halte ich schon mal für eine sinnige Sache. Wenn der Vorgänger kein alzu Detailbesessener Mensch war, hat er vielleicht das Logo der Anwendung in irgendwelchen anderen Versionen übergelassen. Die Reportdateien, sofern es welche gibt, könnten auch Aufschluss geben; Problem: Ohne Source lässt sich das wohl schwierig feststellen.
Achja... solltest Du die Source haben, sind vielleicht einige Forms und Units seit der Erstellung nicht geändert worden und die Jahreszahl gibt Aufschluss.
Noch was... ;) Vielleicht hat sich der Entwickler irgendwo verewigt... kontaktieren.
Viel Glück!
Chatfix - Di 26.06.07 08:03
Luckie hat folgendes geschrieben: |
Und was soll dann die komische Geschichte mit dem Programm, was geändert werden soll?
|
Ich weis nicht was du meinst.
Danke für deine Ausführliche Aufklärung, wie gesagt ich weis nich warum dich meine Frage so gereizt hat, eine Antwort in normalem Ton hätte mir weit aus mehr geholfen.
Entschuldige bitte das ich nicht gleich von vorherein so weit gedacht habe wie du....
Mir ging es nie meine Programme in irgendeinerweise zu Verschleiern, es hat mich halt nur interessiert, weil ich es erstaunlich fand das man sogar die DFU im Klartext sieht.
alias5000 - Di 26.06.07 13:56
Also mal ganz kurzer Einwurf...
Ihr müsst hier aufpassen, dass
Chatfix nicht der Threadersteller ist. Die Sache mit dem Ändern ohne Source kommt von
Speckstein!
Gruß
alias5000
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!