Laden...

Zugriff auf Quellcode des Programms

Erstellt von Gh0st21 vor 9 Jahren Letzter Beitrag vor 9 Jahren 2.115 Views
G
Gh0st21 Themenstarter:in
26 Beiträge seit 2014
vor 9 Jahren
Zugriff auf Quellcode des Programms

Schönen guten Tag.

Ich habe vor kurzem einen Auftrag von einem Bekannten bekommen, der sich eine Software für die Datenverwaltung anfertigen ließ.
Das Problem ist jetzt, dass er nur das fertige Programm/Installtions-datei hat, der Programmierer leider verstorben ist und das Programm fehler aufweißt.
Ich wurde darum gebeten, das Probgram sozusgane (Decodieren), bzw den quellcode hervorzuheben
um Fehler im Programm beheben zu können.

Meine Frage nun, ist das überhaupt möglich ?
Wenn ja - welche ansetzmöglichkeiten habe ich ?
Wenn Nein - Welche möglichkeiten gibt es, den bekannten da weiter zu helfen, da wie gesagt der Programmierer der Software verstorben ist ?

B
357 Beiträge seit 2010
vor 9 Jahren

Ist es ein .NET Projekt? Wenn ja, dann gibt es mit Reflector, DotPeek und dergleichen genügend Tools, um an den Code zu kommen.

Bei nativem Code wird das ungleich schwieriger, eher sogar unmöglich.

G
Gh0st21 Themenstarter:in
26 Beiträge seit 2014
vor 9 Jahren

Ja, ich vermute schon. Das Programm wurde seines wissens nach in c / c++ geschrieben.
Ich auf der Festplatte nun nur das Fertige Programm mit den ganzen Franmes, daten ect.

G
Gh0st21 Themenstarter:in
26 Beiträge seit 2014
vor 9 Jahren

Wie kann ich herraus finden ob das Programm in .Net geschrieben wurde oder nicht ?

G
Gh0st21 Themenstarter:in
26 Beiträge seit 2014
vor 9 Jahren

7716984E  outs        dx,byte ptr [esi]  
7716984F  jbe         771698BA  
77169851  jb          771698C2  
77169853  outs        dx,byte ptr [esi]  
77169854  ins         dword ptr es:[edi],dx  
77169855  outs        dx,byte ptr gs:[esi]  
77169857  je          771698AC  
77169859  je          771698CD  
7716985B  imul        ebp,dword ptr [esi+67h],74520073h  
77169862  ins         byte ptr es:[edi],dx  
77169863  inc         ebp  
77169864  js          771698D6  
77169866  popad  
77169867  outs        dx,byte ptr [esi]  
77169868  inc         ebp  
7716986A  outs        dx,byte ptr [esi]  
7716986B  jbe         771698D6  
7716986D  jb          771698DE  
7716986F  outs        dx,byte ptr [esi]  
77169870  ins         dword ptr es:[edi],dx  
77169871  outs        dx,byte ptr gs:[esi]  

So ein Code wird mir nun angezeigt <.<

Nun weiß ich nicht, wie ich das in den normalen Quellcode umwandeln kann.

jemand eventuell einige Tipps.
Mit .NET REFLECTOR geht das leider nicht, da die Anwendung kein .NET datei is.
"The following file is not a .NET assembly and cannot be decompiled"

Welche möglichkeiten habe ich noch an das Quellcode herran zu kommen ?

Was ich vergessen hab zu sagen. die DLL dateien habe ich ebenfalls. Wobei ich schätze mal ich damit nicht viel anfnagen kann, da dies ja nur Bibliotheken sind.

P
1.090 Beiträge seit 2011
vor 9 Jahren

Hi Gh0st21,

öffne mal eine dll mit einem TextEditor eine Datei und Schau mal ob du für einen hinweise auf die Sprache findest. Microsoft dll starten z.B. mit MZ. Wenn du die Sprache hast findest du vielleicht einen Decompiler. Ansonsten einfach mal ausprobieren ob du einen passenden findest.

Grundlegend wirst du aber wohl erst mal klären müssen unter welcher Lizenz dein Bekannter die Software gekauft hat. Wenn er nur eine Nutzungslizenz hat ist das was du versuchst Illegal.

MFG
Björn

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

16.842 Beiträge seit 2008
vor 9 Jahren

Ihr solltet den Threadstarter darauf hinweisen, dass - trotz des Todes des Entwicklers - das hier zumindest in Deutschland eine verbotene Handlung wäre, wenn dies nicht ausdrücklich durch den Entwickler gestattet wird bzw. wurde-
Das Urheberrecht liegt beim Entwickler bzw. nun in diesem Falle bei dessen Erben.

Selbst wenn es nicht nur eine Nutzungslizenz wäre wird der Verkauf - jedenfalls wäre das üblich - "wie sie ist" erfolgen.
Eine Fehlerbehebung wäre damit in den normalen Fällen nicht eigenständig erlaubt.

N
135 Beiträge seit 2006
vor 9 Jahren

Ein ganzes Projekt anhand des Programmcodes herzustellen ist selbst unter .Net fast unmöglich.
Bei einem nativen Programm den Maschinencode in ein c/c++ Projekt umzuwandeln werdet Ihr mit Sicherheit scheitern.

Je nachdem wie umfangreich die Anwendung ist wäre eine Neuentwicklung anzuraten.

16.842 Beiträge seit 2008
vor 9 Jahren

Neidhard, eine in .NET entwickelte Anwendung bekommste problemlos in 100% C# Code.
Der C# Code, insbesondere zB Conditions werden aber nicht dem Original entsprechen.

Auch fuer C++ bzw. Native Code gibts mittlerweile Tools, die aber nur ganz selten wirklich funktionieren; wenn dann nur bei ganz wenigen, kleinen Anwendungen.
Der kann man auch immer noch davon sagen, dass Native Code nicht zurueckverfolgbar ist.

G
Gh0st21 Themenstarter:in
26 Beiträge seit 2014
vor 9 Jahren

Vielen dank schonmal für die zahlreichen Antworten und Informationen.
Ich konnte mein Bekannten nun davon überzeugen, aufgrund der Lizensvereinbarung und schwierigkeit das Code wieder herzustellen ich Ihnen anbiete eine neue Software in C# zu erstellen was viele Vorteile mit sich bringen würde. Da so die Lizens an niemanden gebunden wäre und auch der Code jederzeit zugreifbar ist.

Ich bedanke mich nochmals für die vielen Antworten.

16.842 Beiträge seit 2008
vor 9 Jahren

Wenn Dein Bekannter schlau ist, dann macht er dieses mal eine Vereinbarung, dass er uneingeschränkte Rechte am Code erhält.
Um meinen anderen Beitrag zu verbessern: das Urheberrecht in Deutschland ist nämlich nicht übertragbar.
Trotzdem liegt das (Verwertungs)Recht des Verstorbenen bei zB den Erben.

Wenn er also ein zweites Mal die jetzige Situation vermeiden will, dann muss er sich ausgiebig Rechte einräumen und den Code aushändigen lassen (was übrigens bei Freelancern/Auftragsarbeiten gar nicht so selten ist).
Trotzdem braucht es was schriftliches (damit beide Seiten abgesichert sind).